CryptHashMessage-Funktion (wincrypt.h)
Die CryptHashMessage-Funktion erstellt einen Hash der Nachricht.
Syntax
BOOL CryptHashMessage(
[in] PCRYPT_HASH_MESSAGE_PARA pHashPara,
[in] BOOL fDetachedHash,
[in] DWORD cToBeHashed,
[in] const BYTE * [] rgpbToBeHashed,
[in] DWORD [] rgcbToBeHashed,
[out] BYTE *pbHashedBlob,
[in, out] DWORD *pcbHashedBlob,
[out, optional] BYTE *pbComputedHash,
[in, out, optional] DWORD *pcbComputedHash
);
Parameter
[in] pHashPara
Ein Zeiger auf eine CRYPT_HASH_MESSAGE_PARA-Struktur , die die Hashparameter enthält.
[in] fDetachedHash
Wenn dieser Parameter auf TRUE festgelegt ist, wird nur pbComputedHash in pbHashedBlob codiert. Andernfalls werden sowohl rgpbToBeHashed als auch pbComputedHash codiert.
[in] cToBeHashed
Die Anzahl der Arrayelemente in rgpbToBeHashed und rgcbToBeHashed. Dieser Parameter kann nur ein Parameter sein, es sei denn , fDetachedHash ist auf TRUE festgelegt.
[in] rgpbToBeHashed
Ein Array von Zeigern auf Puffer, die den inhalt enthalten, der gehasht werden soll.
[in] rgcbToBeHashed
Ein Array von Größen in Bytes der Puffer, auf die von rgpbToBeHashed verwiesen wird.
[out] pbHashedBlob
Ein Zeiger auf einen Puffer, um die für die Übertragung codierte Hashnachricht zu empfangen.
Dieser Parameter kann NULL sein, wenn die Hashnachricht nicht für die zusätzliche Verarbeitung oder zum Festlegen der Größe der Hashnachricht zu Speicherbelegungszwecken benötigt wird. Eine Hashnachricht wird nicht zurückgegeben, wenn dieser Parameter NULL ist. Weitere Informationen finden Sie unter Abrufen von Daten mit unbekannter Länge.
[in, out] pcbHashedBlob
Ein Zeiger auf ein DWORD , der die Größe des Puffers in Bytes angibt, auf den der pbHashedBlob-Parameter verweist. Wenn die Funktion zurückgibt, enthält diese Variable die Größe der entschlüsselten Nachricht in Byte, die in pbHashedBlob kopiert wurde. Dieser Parameter muss die Adresse eines DWORD und nicht NULL sein, da sonst die Länge des Puffers nicht zurückgegeben wird.
[out, optional] pbComputedHash
Ein Zeiger auf einen Puffer zum Empfangen des neu erstellten Hashwerts. Dieser Parameter kann NULL sein, wenn der neu erstellte Hash nicht für die zusätzliche Verarbeitung oder zum Festlegen der Größe des Hashs zu Speicherbelegungszwecken benötigt wird. Weitere Informationen finden Sie unter Abrufen von Daten mit unbekannter Länge.
[in, out, optional] pcbComputedHash
Ein Zeiger auf ein DWORD , der die Größe des Puffers in Byte angibt, auf den der pbComputedHash-Parameter verweist. Wenn die Funktion zurückgibt, enthält dieses DWORD die Größe des neu erstellten Hashs in Bytes, der in pbComputedHash kopiert wurde.
Rückgabewert
Wenn die Funktion erfolgreich ist, gibt die Funktion ungleich null (TRUE) zurück.
Wenn die Funktion fehlschlägt, gibt sie null (FALSE) zurück. Rufen Sie GetLastError auf, um erweiterte Fehlerinformationen zu erhalten.
Rückgabecode | Beschreibung |
---|---|
|
Der Nachrichtencodierungstyp ist ungültig. Derzeit wird nur PKCS_7_ASN_ENCODING unterstützt. CbSize in *pHashPara ist ungültig. |
|
Wenn der vom pbHashedBlob-Parameter angegebene Puffer nicht groß genug ist, um die zurückgegebenen Daten zu speichern, legt die Funktion den ERROR_MORE_DATA Code fest und speichert die erforderliche Puffergröße in Bytes in der Variablen, auf die pbHashedBlob verweist. |
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
Anforderung | Wert |
---|---|
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 |