Функция CryptVerifyDetachedMessageSignature (wincrypt.h)
Функция CryptVerifyDetachedMessageSignature проверяет подписанное сообщение, содержащее отсоединяемую подпись или подписи.
Синтаксис
BOOL CryptVerifyDetachedMessageSignature(
[in] PCRYPT_VERIFY_MESSAGE_PARA pVerifyPara,
[in] DWORD dwSignerIndex,
[in] const BYTE *pbDetachedSignBlob,
[in] DWORD cbDetachedSignBlob,
[in] DWORD cToBeSigned,
[in] const BYTE * [] rgpbToBeSigned,
[in] DWORD [] rgcbToBeSigned,
[out, optional] PCCERT_CONTEXT *ppSignerCert
);
Параметры
[in] pVerifyPara
Указатель на структуру CRYPT_VERIFY_MESSAGE_PARA , содержащую параметры проверки.
[in] dwSignerIndex
Индекс проверяемой подписи. Сообщение может иметь несколько подписывателей, и эту функцию можно вызывать многократно, изменяя dwSignerIndex для проверки других подписей. Если функция возвращает false, а GetLastError возвращает CRYPT_E_NO_SIGNER, предыдущий вызов получил последний подписыватель сообщения.
[in] pbDetachedSignBlob
Указатель на большой двоичный объект, содержащий закодированные сигнатуры сообщений.
[in] cbDetachedSignBlob
Размер отсоединяемой сигнатуры (в байтах).
[in] cToBeSigned
Число элементов массива в rgpbToBeSigned и rgcbToBeSigned.
[in] rgpbToBeSigned
Массив указателей на буферы, содержащие хэширование содержимого.
[in] rgcbToBeSigned
Массив размеров (в байтах) для буферов содержимого, на которые указывает rgpbToBeSigned.
[out, optional] ppSignerCert
Указатель на указатель на CERT_CONTEXT структуру сертификата подписывателя. Завершив использование контекста сертификата, освободите его, вызвав функцию CertFreeCertificateContext . Указатель на структуру CERT_CONTEXT не будет возвращен, если этот параметр имеет значение NULL.
Возвращаемое значение
Если функция выполнена успешно, возвращается ненулевое значение (TRUE).
Если функция завершается сбоем, возвращаемое значение равно нулю (FALSE).
Чтобы получить дополнительные сведения об ошибке, вызовите Метод GetLastError.
Ниже перечислены коды ошибок, наиболее часто возвращаемые функцией GetLastError .
Код возврата | Описание |
---|---|
|
Недопустимые типы кодирования сообщений и сертификатов. В настоящее время поддерживаются только PKCS_7_ASN_ENCODING и X509_ASN_ENCODING_TYPE. Недопустимый cbSize в *pVerifyPara. |
|
Не подписанное криптографическое сообщение. |
|
Сообщение не содержит подписывающего или подписывающего для указанного dwSignerIndex. |
|
Сообщение было хэшировано и подписано с помощью неизвестного или неподдерживаемого алгоритма. |
|
Подпись сообщения не проверена. |
В случае сбоя функции GetLastError может вернуть ошибку кодирования и декодирования абстрактного синтаксиса (ASN.1). Сведения об этих ошибках см. в разделе Кодирование и декодирование возвращаемых значений ASN.1.
Требования
Минимальная версия клиента | Windows XP [только классические приложения] |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Целевая платформа | Windows |
Header | wincrypt.h |
Библиотека | Crypt32.lib |
DLL | Crypt32.dll |