Share via


CryptVerifyMessageHash-Funktion (wincrypt.h)

Die CryptVerifyMessageHash-Funktion überprüft den Hash des angegebenen Inhalts.

Syntax

BOOL CryptVerifyMessageHash(
  [in]                PCRYPT_HASH_MESSAGE_PARA pHashPara,
  [in]                BYTE                     *pbHashedBlob,
  [in]                DWORD                    cbHashedBlob,
  [out]               BYTE                     *pbToBeHashed,
  [in, out]           DWORD                    *pcbToBeHashed,
  [out, optional]     BYTE                     *pbComputedHash,
  [in, out, optional] DWORD                    *pcbComputedHash
);

Parameter

[in] pHashPara

Ein Zeiger auf eine CRYPT_HASH_MESSAGE_PARA-Struktur , die Hashparameter enthält.

[in] pbHashedBlob

Ein Zeiger auf einen Puffer, der den ursprünglichen Inhalt und den zugehörigen Hash enthält.

[in] cbHashedBlob

Die Größe des ursprünglichen Hashpuffers in Bytes.

[out] pbToBeHashed

Ein Zeiger auf einen Puffer zum Empfangen des ursprünglichen Inhalts, der gehasht wurde.

Dieser Parameter kann NULL sein, wenn der ursprüngliche Inhalt nicht für die zusätzliche Verarbeitung oder zum Festlegen der Größe des ursprünglichen Inhalts zu Speicherbelegungszwecken benötigt wird. Weitere Informationen finden Sie unter Abrufen von Daten mit unbekannter Länge.

[in, out] pcbToBeHashed

Ein Zeiger auf ein DWORD , das die Größe des pbToBeHashed-Puffers in Bytes angibt. Wenn die Funktion zurückgibt, enthält diese Variable die Größe des ursprünglichen Inhalts in Byte, der in pbToBeHashed kopiert wurde. Der ursprüngliche Inhalt wird nicht zurückgegeben, wenn dieser Parameter NULL ist.

Hinweis Bei der Verarbeitung der zurückgegebenen Daten müssen Anwendungen die tatsächliche Größe der zurückgegebenen Daten verwenden. Die tatsächliche Größe kann etwas kleiner als die Größe des bei der Eingabe angegebenen Puffers sein. (Bei der Eingabe werden Puffergrößen in der Regel groß genug angegeben, um sicherzustellen, dass die größtmöglichen Ausgabedaten in den Puffer passen.) Bei der Ausgabe wird die Variable aktualisiert, auf die dieser Parameter verweist, um die tatsächliche Größe der in den Puffer kopierten Daten widerzuspiegeln.
 

[out, optional] pbComputedHash

Ein Zeiger auf einen Puffer zum Empfangen des berechneten Hashs. Dieser Parameter kann NULL sein, wenn der erstellte Hash nicht für die zusätzliche Verarbeitung oder zum Festlegen der Größe des ursprünglichen Inhalts 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 , das die Größe des pbComputedHash-Puffers in Bytes angibt. Wenn die Funktion zurückgibt, enthält diese Variable die Größe des erstellten Hashs in Bytes. Der Hash wird nicht zurückgegeben, wenn dieser Parameter NULL ist.

Hinweis Bei der Verarbeitung der zurückgegebenen Daten müssen Anwendungen die tatsächliche Größe der zurückgegebenen Daten verwenden. Die tatsächliche Größe kann etwas kleiner als die Größe des bei der Eingabe angegebenen Puffers sein. (Bei der Eingabe werden Puffergrößen in der Regel groß genug angegeben, um sicherzustellen, dass die größtmöglichen Ausgabedaten in den Puffer passen.) Bei der Ausgabe wird die Variable aktualisiert, auf die dieser Parameter verweist, um die tatsächliche Größe der in den Puffer kopierten Daten widerzuspiegeln.
 

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
CRYPT_E_UNEXPECTED_MSG_TYPE
Keine kryptografische Hashnachricht.
E_INVALIDARG
Der Nachrichtencodierungstyp ist ungültig. Derzeit wird nur PKCS_7_ASN_ENCODING unterstützt. CbSize in *pHashPara ist ungültig.
ERROR_MORE_DATA
Wenn der vom pbToBeHashed-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 Byte in der Variablen, auf die von pcbToBeHashed verwiesen wird.
 
Hinweis Fehler aus den aufgerufenen Funktionen CryptCreateHash, CryptHashData und CryptGetHashParam können an diese Funktion weitergegeben werden.

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

Weitere Informationen

CryptVerifyDetachedMessageHash

Vereinfachte Nachrichtenfunktionen