Статус: Участник
Группы: Участники
Зарегистрирован: 26.11.2009(UTC) Сообщений: 21 Откуда: Воронеж
|
Добрый вечер. Ниже приведен алгоритм проверки PIN-кода для смарт-карты. UI КриптоПро показываться не должен, поэтому установлен флаг CRYPT_SILENT. И действительно, если PIN-код введен правильно, окошко КриптоПро для ввода PIN-кода не выводится. Однако если ввести PIN-код неправильно, окно все-таки появляется. Где косяк? thx in advance Получение дескриптора ключевого контейнера. Код:CryptAcquireContext(&hProv,
container,
NULL,
PROV_GOST_2001_DH,
CRYPT_SILENT)
Установка пароля доступа к контейнеру Код:CryptSetProvParam(hProv,
PP_KEYEXCHANGE_PIN,
(BYTE *)pin,
NULL),
Получение дескриптора объекта функции хэширования потока данных Код:CryptCreateHash(
hProv,
CALG_GR3411,
0,
0,
&hHash)
Передача данных объекту функции хэширования Код:CryptHashData(
hHash,
pbBuffer,
dwBufferLen,
0)
Получение размера электронной цифровой подписи от значения функции хэширования Код:CryptSignHash(
hHash,
AT_KEYEXCHANGE,
NULL,
0,
NULL,
&dwSigLen)
Получение значения электронной цифровой подписи от значения функции хэширования Код:CryptSignHash(
hHash,
AT_KEYEXCHANGE,
NULL,
0,
pbSignature,
&dwSigLen)
|