CryptVerifyDetachedMessageSignature-Funktion (wincrypt.h)
Die Funktion CryptVerifyDetachedMessageSignature überprüft eine signierte Nachricht, die eine oder mehrere signaturen enthält.
Syntax
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
);
Parameter
[in] pVerifyPara
Ein Zeiger auf eine CRYPT_VERIFY_MESSAGE_PARA-Struktur , die die Überprüfungsparameter enthält.
[in] dwSignerIndex
Index der zu überprüfenden Signatur. Eine Nachricht kann mehrere Signierer aufweisen, und diese Funktion kann wiederholt aufgerufen werden, indem dwSignerIndex geändert wird, um andere Signaturen zu überprüfen. Wenn die Funktion FALSE zurückgibt und GetLastError CRYPT_E_NO_SIGNER zurückgibt, hat der vorherige Aufruf den letzten Signierer der Nachricht empfangen.
[in] pbDetachedSignBlob
Ein Zeiger auf ein BLOB, das die codierten Nachrichtensignaturen enthält.
[in] cbDetachedSignBlob
Die Größe der getrennten Signatur in Bytes.
[in] cToBeSigned
Anzahl der Arrayelemente in rgpbToBeSigned und rgcbToBeSigned.
[in] rgpbToBeSigned
Array von Zeigern auf Puffer, die den inhalt enthalten, der gehasht werden soll.
[in] rgcbToBeSigned
Array von Größen in Bytes für die Inhaltspuffer, auf die in rgpbToBeSigned verwiesen wird.
[out, optional] ppSignerCert
Ein Zeiger auf einen Zeiger auf eine CERT_CONTEXT Struktur eines Signaturgeberzertifikats. Wenn Sie die Verwendung des Zertifikatkontexts abgeschlossen haben, geben Sie ihn frei, indem Sie die CertFreeCertificateContext-Funktion aufrufen. Ein Zeiger auf eine CERT_CONTEXT-Struktur wird nicht zurückgegeben, wenn dieser Parameter NULL ist.
Rückgabewert
Wenn die Funktion erfolgreich ist, ist der Rückgabewert ungleich null (TRUE).
Wenn die Funktion fehlschlägt, ist der Rückgabewert 0 (FALSE).
Rufen Sie GetLastError auf, um erweiterte Fehlerinformationen zu erhalten.
Im Folgenden sind die Fehlercodes aufgeführt, die am häufigsten von der GetLastError-Funktion zurückgegeben werden.
Rückgabecode | Beschreibung |
---|---|
|
Ungültige Nachrichten- und Zertifikatcodierungstypen. Derzeit werden nur PKCS_7_ASN_ENCODING und X509_ASN_ENCODING_TYPE unterstützt. Ungültige cbSize in *pVerifyPara. |
|
Keine signierte kryptografische Nachricht. |
|
Die Nachricht enthält keine Signierer oder einen Signierer für den angegebenen dwSignerIndex.The message does not have any signers or a signerer for the specified dwSignerIndex. |
|
Die Nachricht wurde mithilfe eines unbekannten oder nicht unterstützten Algorithmus gehasht und signiert. |
|
Die Signatur der Nachricht wurde nicht überprüft. |
Wenn die Funktion fehlschlägt, gibt GetLastError möglicherweise einen ASN.1-Codierungs-/Decodierungsfehler ( Abstract Syntax Notation One ) zurück. Informationen zu diesen Fehlern finden Sie unter ASN.1-Rückgabewerte für Codierung/Decodierung.
Anforderungen
Unterstützte Mindestversion (Client) | Windows XP [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2003 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | wincrypt.h |
Bibliothek | Crypt32.lib |
DLL | Crypt32.dll |