Функция CryptVerifyMessageSignatureWithKey (wincrypt.h)
Функция CryptVerifyMessageSignatureWithKey проверяет подпись подписанного сообщения, используя указанные сведения о открытом ключе.
Синтаксис
BOOL CryptVerifyMessageSignatureWithKey(
[in] PCRYPT_KEY_VERIFY_MESSAGE_PARA pVerifyPara,
[in] PCERT_PUBLIC_KEY_INFO pPublicKeyInfo,
[in] const BYTE *pbSignedBlob,
[in] DWORD cbSignedBlob,
[out] BYTE *pbDecoded,
[in, out] DWORD *pcbDecoded
);
Параметры
[in] pVerifyPara
Указатель на структуру CRYPT_KEY_VERIFY_MESSAGE_PARA , содержащую параметры проверки.
[in] pPublicKeyInfo
Указатель на структуру CERT_PUBLIC_KEY_INFO , содержащую открытый ключ, используемый для проверки подписанного сообщения. Если значение РАВНО NULL, подпись не проверяется.
[in] pbSignedBlob
Указатель на буфер, содержащий подписанное сообщение.
[in] cbSignedBlob
Размер буфера подписанных сообщений (в байтах).
[out] pbDecoded
Указатель на буфер для получения декодированного сообщения.
Этот параметр может иметь значение NULL , если декодированные сообщения не требуются для дополнительной обработки или для задания размера сообщения для целей выделения памяти. Дополнительные сведения см. в разделе Извлечение данных неизвестной длины.
[in, out] pcbDecoded
Указатель на значение DWORD , указывающее размер буфера pbDecoded (в байтах). Когда функция возвращает значение, это значение DWORD содержит размер декодированного сообщения (в байтах). Декодированные сообщения не будут возвращены, если этот параметр имеет значение NULL.
Возвращаемое значение
Если функция выполнена успешно, функция возвращает ненулевое значение.
Если функция завершается сбоем, она возвращает ноль. Чтобы получить дополнительные сведения об ошибке, вызовите Метод GetLastError.
В следующей таблице показаны коды ошибок, наиболее часто возвращаемые функцией GetLastError .
Код возврата | Описание |
---|---|
|
Если буфер, заданный параметром pbDecoded , недостаточно велик для хранения возвращаемых данных, функция задает код ERROR_MORE_DATA и сохраняет требуемый размер буфера в байтах в переменной, на которую указывает pcbDecoded. |
|
Недопустимые типы кодирования сообщений и сертификатов. В настоящее время поддерживаются только PKCS_7_ASN_ENCODING и X509_ASN_ENCODING_TYPE. Недопустимый cbSize в *pVerifyPara. |
|
Не подписанное криптографическое сообщение. |
|
Сообщение не содержит подписывающего или подписывающего для указанного dwSignerIndex. |
|
Сообщение было хэшировано и подписано с помощью неизвестного или неподдерживаемого алгоритма. |
|
Подпись сообщения не проверена. |
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP [только классические приложения] |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Целевая платформа | Windows |
Header | wincrypt.h |
Библиотека | Crypt32.lib |
DLL | Crypt32.dll |