Ключевое слово в защите информации
ключевое слово
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline MrSource  
#1 Оставлено : 6 марта 2023 г. 7:14:50(UTC)
MrSource

Статус: Новичок

Группы: Участники
Зарегистрирован: 01.03.2023(UTC)
Сообщений: 4

Сказал(а) «Спасибо»: 1 раз
Приветствую. Прошу помощи.
Задача: получить версию КриптоПро CSP с помощью dll и AutoIt.
Как это можно сделать?
Нужен способ на вроде получения даты окончания лицензии >>>
Код:

Local $obj, $oObjects, $date
$obj = ObjCreate("CPCSPLicense.CPCSPLicense")
$date = $obj.GetExpireDate("{407E5BA7-6406-40BF-A4DC-3654B8F584C1}")
If Not @error Then
    MsgBox(0, "CSP", $date)
Else
    MsgBox(4096, "Тест ObjCreat", "Не удалось открыть объект. Код ошибки: " & Hex(@error, 8))
EndIf

Отредактировано пользователем 6 марта 2023 г. 7:16:15(UTC)  | Причина: Не указана

Offline Андрей *  
#2 Оставлено : 6 марта 2023 г. 10:54:02(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 14,139
Мужчина
Российская Федерация

Сказал «Спасибо»: 617 раз
Поблагодарили: 2384 раз в 1875 постах
Здравствуйте.

можно посмотреть, как на демостранице выполняется анализ:

https://www.cryptopro.ru...s/cades/demopage/Code.js
Цитата:

..
var oAbout = cadesplugin.CreateObject("CAdESCOM.About");
..
var ver = oAbout.CSPVersion("", 80);
ver.MajorVersion + "." + ver.MinorVersion + "." + ver.BuildVersion;




или через реестр:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Crypto Pro\Settings\
параметр: Version

Техническую поддержку оказываем тут
Наша база знаний
thanks 1 пользователь поблагодарил Андрей * за этот пост.
nickm оставлено 06.03.2023(UTC)
Offline MrSource  
#3 Оставлено : 7 марта 2023 г. 9:16:43(UTC)
MrSource

Статус: Новичок

Группы: Участники
Зарегистрирован: 01.03.2023(UTC)
Сообщений: 4

Сказал(а) «Спасибо»: 1 раз
Автор: Андрей * Перейти к цитате
CAdESCOM.About


CAdESCOM.About - это от КриптоПро ЭЦП Browser plug-in на сколько я понял. Его на компе нет. Есть только КриптоПро CSP 4.0.9944.
Пока решил получать версию из файла cpconfig.cpl

Offline Русев Андрей  
#4 Оставлено : 7 марта 2023 г. 16:01:45(UTC)
Русев Андрей

Статус: Сотрудник

Группы: Администраторы, Участники
Зарегистрирован: 16.04.2008(UTC)
Сообщений: 1,636

Сказал(а) «Спасибо»: 49 раз
Поблагодарили: 699 раз в 482 постах
Автор: MrSource Перейти к цитате
Приветствую. Задача: получить версию КриптоПро CSP с помощью dll
Здравствуйте.
Это делается с помощью CryptGetProvParam(PP_VERSION) и CryptGetProvParam(PP_VERSION_EX).
Официальная техподдержка. Официальная база знаний.
Offline TolikTipaTut1  
#5 Оставлено : 7 марта 2023 г. 20:27:23(UTC)
TolikTipaTut1

Статус: Активный участник

Группы: Участники
Зарегистрирован: 05.07.2018(UTC)
Сообщений: 468

Сказал(а) «Спасибо»: 43 раз
Поблагодарили: 69 раз в 61 постах
Может поможет, написал код на powershell (использую CAPIlite для получения версии, но с виндой проблем не будет, за наводку спасибо @olin):

Код:
$lib = @"
    [DllImport("/opt/cprocsp/lib/amd64/libcapi20.so", CharSet = CharSet.Auto, SetLastError = true)]
    public static extern bool CryptAcquireContextA(
        ref IntPtr phProv,
        string pszContainer,
        string pszProvider,
        int dwProvType,
        Int64 dwFlags
    );
    [DllImport("/opt/cprocsp/lib/amd64/libcapi20.so", CharSet = CharSet.Auto, SetLastError = true)]
    public static extern bool CryptGetProvParam(
        IntPtr hProv,
        uint dwParam,
        byte[] pbProvData,
        ref uint pdwProvDataLen,
        uint dwFlags
    );
    [DllImport("/opt/cprocsp/lib/amd64/libcapi20.so", CharSet = CharSet.Auto, SetLastError = true)]
    public static extern bool CryptReleaseContext(
        IntPtr phProv,
        int flags
    );
"@

Add-Type -MemberDefinition $lib -Namespace PKI -Name CSP

[IntPtr] $phProv = [IntPtr]::Zero
[PKI.CSP]::CryptAcquireContextA(
    [ref]$phProv,
    $null,
    "Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider",
    80,
    (0xF0000000)
) | Out-Null
[byte[]]$PROV_PP_VERSION_EX = $null
[int]$PROV_PP_VERSION_EXLength = 0
[PKI.CSP]::CryptGetProvParam($phProv, 0x8A, $PROV_PP_VERSION_EX, [ref]$PROV_PP_VERSION_EXLength, 0x1) | Out-Null
$PROV_PP_VERSION_EX = [byte[]]::new($PROV_PP_VERSION_EXLength)
[PKI.CSP]::CryptGetProvParam($phProv, 0x8A, $PROV_PP_VERSION_EX, [ref]$PROV_PP_VERSION_EXLength, 0x1) | Out-Null
$CSPVersionBytes = $null
$CSPVersionBytesLength = 0
[PKI.CSP]::CryptGetProvParam($phProv, 0x5, $CSPVersionBytes, [ref]$CSPVersionBytesLength, 0x1) | Out-Null
$CSPVersionBytes = [byte[]]::new($CSPVersionBytesLength)
[PKI.CSP]::CryptGetProvParam($phProv, 0x5, $CSPVersionBytes, [ref]$CSPVersionBytesLength, 0x1) | Out-Null
Write-Host -Object "CSP Version: $([System.BitConverter]::ToInt16($CSPVersionBytes[1..0], 0)), minor version: $([System.BitConverter]::ToInt16($PROV_PP_VERSION_EX[0..3], 0))"
[PKI.CSP]::CryptReleaseContext($phProv, 0) | Out-Null

Отредактировано пользователем 7 марта 2023 г. 21:44:57(UTC)  | Причина: Не указана

thanks 1 пользователь поблагодарил TolikTipaTut1 за этот пост.
Санчир Момолдаев оставлено 08.03.2023(UTC)
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.