Крипто-Про CSP

CPVerifySignature

Функция CPVerifySignature() осуществляет проверку цифровой подписи.

BOOL WINAPI CPVerifySignature(
  HCRYPTPROV hProv,
  HCRYPTHASH hHash,
  WINCSP_CONST BYTE * pbSignature,
  DWORD dwSigLen,
  HCRYPTKEY hPubKey,
  LPCWSTR sDescription,
  DWORD dwFlags
);

Аргументы

hProv
[in] Дескриптор криптопровайдера. Получается при помощи функции CPAcquireContext().
hHash
[in] Дескриптор объекта функции хеширования, подпись которого проверяется.
pbSignature
[in] Указатель на буфер, содержащий значение проверяемой подписи.
dwSigLen
[in] Длина (в байтах) значения подписи.
hPubKey
[in] Дескриптор открытого ключа проверяемой подписи.
sDescription
[in] Описание подписанных данных идентичное описанию, использованному при создании подписи. Это должна быть точно та же самая последовательность, которая использовалась в функции CPSignHash() при создании подписи. Если эта последовательность не соответствует использованной в функции CPSignHash(), проверка подписи сообщит, что подпись не верна.
dwFlags
[in] Значения флагов. Параметр зарезервирован для будущего использования и должен быть нулевым.

Возвращаемые значения:

При успешном завершении функция возвращает TRUE, в противном случае возвращается FALSE. Если возвращается FALSE, соответствующий код ошибки (см. таблицу) может быть получен через функцию GetLastError.
Коды возврата Описание
NTE_BAD_ALGID Дескриптор hHash определяет алгоритм, который этот криптопровайдер не поддерживает.
NTE_BAD_FLAGS dwFlags параметр отличен от нуля.
NTE_BAD_KEY hPubKey параметр содержит дескриптор на недопустимый открытый ключ.
NTE_BAD_SIGNATURE Проверка подписи не прошла (могли измениться подписанные данные, или значение подписи, открытый ключ был определен ошибочно параметром hPubKey). Эта ошибка может быть возвращена также, если алгоритмы хеширования или подписи не соответствуют тем, с помощью которых вычислялась подпись.
NTE_NO_MEMORY Криптопровайдер во время операции исчерпал память.
NTE_FAIL Нарушение целостности ключей в ОЗУ.
RPE_CORRUPT_KEYPAIR_INFO Нарушение целостности ключей.

Примечания

Функция CPVerifySignature выполняет следующие внутренние шаги:

Требования:

Windows 2000/XP/2003: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.
Windows NT/95/98/ME: CSP 3.0 не поддерживает (см. КриптоПро CSP 2.0 World Wide Web link ).
Solaris: 9 Update 4 или выше.
FreeBSD: FreeBSD 5.2 или выше
Linux: RedHat 7.3, RedHad 9.0.
Файл описания: Прототип описан в файле wincsp.h.
Ядро Windows NT: IRQL < DISPATCH_LEVEL
Ядро ОС: "Ядро ОС:" В ядре ОС эта функция не поддерживается.

См. также:

CPCreateHash() ,CPHashData() ,CPSignHash() ,CPVerifySignature в MS CSP World Wide Web link ,CryptVerifySignature в MS CryptoAPI 2.0 World Wide Web link

Крипто-Про CSP Версия: 3.0 Сборка 3293
Что Вы думаете по поводу данной статьи?
Закажите CD c Крипто-Про CSP