[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 выполняет следующие внутренние шаги:
если параметр описания sDescription поддержан, он добавляется к
объекту функции хеширования;
объект функции хеширования "закрывается" и значение функции
хеширования извлекается;
значение функции хеширования дополняется, как это требуется
алгоритмом подписи;
осуществляется проверка подписи c использованием открытого
ключа hPubKey ;
если подпись, переданная через буфер pbSignature , и
вычисленное значение подписи не совпадают, возвращается код ошибки
NTE_BAD_SIGNATURE.
После того, как объект функции хеширования подписан, приложение не
может добавлять к нему новые данные. Поэтому вызовы функций
CPHashData() или
CPHashSessionKey()
приведут к ошибке. Однако, дополнительные вызовы функций CPDeriveKey(), CPGetHashParam(), CPSignHash() и CPVerifySignature() будут
успешными. Эти функции будут работать с подписанным объектом
функции хеширования. Приложение должно удалить объект функции
хеширования при помощи функции CPDestroyHash().
Windows
2000/XP/2003: Необходимо Windows 2000 SP4 или старше с Internet
Explorer 6.0 или старше. Windows
NT/95/98/ME: CSP 3.0 не поддерживает (см. КриптоПро CSP
2.0 ). Solaris: 9
Update 4 или выше. FreeBSD:
FreeBSD 5.2 или выше Linux: RedHat
7.3, RedHad 9.0. Файл описания:
Прототип описан в файле wincsp.h. Ядро Windows
NT: IRQL < DISPATCH_LEVEL Ядро ОС: "Ядро
ОС:" В ядре ОС эта функция не поддерживается.