Freigeben über


CryptGetHashParam-Funktion (wincrypt.h)

Wichtig Diese API ist veraltet. Neue und vorhandene Software sollten mit der Verwendung von Kryptografie-APIs der nächsten Generation beginnen. Microsoft kann diese API in zukünftigen Releases entfernen.
 
Die CryptGetHashParam-Funktion ruft Daten ab, die die Vorgänge eines Hashobjekts steuern. Der tatsächliche Hashwert kann mithilfe dieser Funktion abgerufen werden.

Syntax

BOOL CryptGetHashParam(
  [in]      HCRYPTHASH hHash,
  [in]      DWORD      dwParam,
  [out]     BYTE       *pbData,
  [in, out] DWORD      *pdwDataLen,
  [in]      DWORD      dwFlags
);

Parameter

[in] hHash

Handle des abzufragten Hashobjekts.

[in] dwParam

Abfragetyp. Dieser Parameter kann auf eine der folgenden Abfragen festgelegt werden.

Wert Bedeutung
HP_ALGID
Hashalgorithmus
Ein ALG_ID , der den Algorithmus angibt, der beim Erstellen des Hashobjekts angegeben wurde. Eine Liste der Hashalgorithmen finden Sie unter CryptCreateHash.
HP_HASHSIZE
Hashwertgröße
DWORD-Wert , der die Anzahl der Bytes im Hashwert angibt. Dieser Wert variiert je nach Hashalgorithmus. Anwendungen müssen diesen Wert direkt vor dem wert der HP_HASHVAL abrufen, damit die richtige Menge an Arbeitsspeicher zugewiesen werden kann.
HP_HASHVAL
Hashwert
Der Hashwert oder Nachrichtenhash für das von hHash angegebene Hashobjekt. Dieser Wert wird basierend auf den Daten generiert, die dem Hashobjekt zuvor über die Funktionen CryptHashData und CryptHashSessionKey bereitgestellt wurden.

Die CryptGetHashParam-Funktion vervollständigt den Hash. Nachdem CryptGetHashParam aufgerufen wurde, können dem Hash keine weiteren Daten hinzugefügt werden. Zusätzliche Aufrufe von CryptHashData oder CryptHashSessionKey schlagen fehl. Nachdem die Anwendung mit dem Hash abgeschlossen ist, sollte CryptDestroyHash aufgerufen werden, um das Hashobjekt zu zerstören.

 
Hinweis CSPs können weitere Werte hinzufügen, die diese Funktion abfragen kann.
 

[out] pbData

Ein Zeiger auf einen Puffer, der die angegebenen Wertdaten empfängt. Die Form dieser Daten variiert je nach Wertnummer.

Dieser Parameter kann NULL sein, um die erforderliche Arbeitsspeichergröße zu bestimmen.

[in, out] pdwDataLen

Ein Zeiger auf einen DWORD-Wert , der die Größe des pbData-Puffers in Bytes angibt. Wenn die Funktion zurückgibt, enthält der DWORD-Wert die Anzahl der im Puffer gespeicherten Bytes.

Wenn pbDataNULL ist, legen Sie den Wert von pdwDataLen auf Null fest.

Hinweis Bei der Verarbeitung der im Puffer zurückgegebenen Daten müssen Anwendungen die tatsächliche Größe der zurückgegebenen Daten verwenden. Die tatsächliche Größe kann etwas kleiner sein als die Größe des Puffers, der bei der Eingabe angegeben wird. (Bei der Eingabe werden Puffergrößen normalerweise 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.
 

[in] dwFlags

Für die zukünftige Verwendung reserviert und muss null sein.

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert TRUE.

Wenn die Funktion fehlschlägt, ist der Rückgabewert FALSE. Rufen Sie GetLastError auf, um erweiterte Fehlerinformationen zu erhalten.

Die von "NTE" vorangestellten Fehlercodes werden von dem jeweiligen CSP generiert, den Sie verwenden. Es folgen einige mögliche Fehlercodes.

Rückgabecode Beschreibung
ERROR_INVALID_HANDLE
Einer der Parameter gibt ein ungültiges Handle an.
ERROR_INVALID_PARAMETER
Einer der Parameter enthält einen ungültigen Wert. Dies ist in den meisten Fällen ein nicht gültiger Zeiger.
ERROR_MORE_DATA
Wenn der vom pbData-Parameter angegebene Puffer nicht groß genug ist, um die zurückgegebenen Daten aufzunehmen, legt die Funktion den ERROR_MORE_DATA Code fest und speichert die erforderliche Puffergröße in Bytes in der Variablen, auf die von pdwDataLen verwiesen wird.
NTE_BAD_FLAGS
Der dwFlags-Parameter ist nonzero.
NTE_BAD_HASH
Das durch den hHash-Parameter angegebene Hashobjekt ist ungültig.
NTE_BAD_TYPE
Der dwParam-Parameter gibt eine unbekannte Wertnummer an.
NTE_BAD_UID
Der CSP-Kontext, der beim Erstellen des Hashs angegeben wurde, kann nicht gefunden werden.

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 Advapi32.lib
DLL Advapi32.dll

Weitere Informationen

ALG_ID

CryptCreateHash

CryptDestroyHash

CryptGetKeyParam

CryptHashData

CryptHashSessionKey

CryptSetHashParam

Hash- und Digitale Signaturfunktionen