Freigeben über


CryptHashPublicKeyInfo-Funktion (wincrypt.h)

Wichtig Diese API ist veraltet. Neue und vorhandene Software sollte mit der Verwendung von Kryptografie-APIs der nächsten Generation beginnen. Microsoft kann diese API in zukünftigen Versionen entfernen.
 
Die CryptHashPublicKeyInfo-Funktion codiert die Informationen des öffentlichen Schlüssels in einer CERT_PUBLIC_KEY_INFO-Struktur und berechnet den Hash der codierten Bytes. Der erstellte Hash wird mit Schlüsselbezeichnerfunktionen verwendet.

Syntax

BOOL CryptHashPublicKeyInfo(
  [in]      HCRYPTPROV_LEGACY     hCryptProv,
  [in]      ALG_ID                Algid,
  [in]      DWORD                 dwFlags,
  [in]      DWORD                 dwCertEncodingType,
  [in]      PCERT_PUBLIC_KEY_INFO pInfo,
  [out]     BYTE                  *pbComputedHash,
  [in, out] DWORD                 *pcbComputedHash
);

Parameter

[in] hCryptProv

Dieser Parameter wird nicht verwendet und sollte auf NULL festgelegt werden.

Windows Server 2003 und Windows XP: Ein Handle des Kryptografiedienstanbieters (Cryptographic Service Provider , CSP), der zum Berechnen des Hashs verwendet werden soll. Der Datentyp dieses Parameters ist HCRYPTPROV.

Es sei denn, es gibt einen starken Grund für die Übergabe eines bestimmten Kryptografieanbieters in hCryptProv, 0 wird übergeben. Durch das Übergeben von 0 (Null) wird der Standardanbieter RSA oder Digital Signature Standard (DSS) abgerufen, bevor Hash-, Signaturüberprüfungs- oder Empfängerverschlüsselungsvorgänge ausgeführt werden.

[in] Algid

Eine ALG_ID Struktur, die den zu verwendenden CryptoAPI-Hashalgorithmus angibt. Wenn Algid null ist, wird der Standardhashalgorithmus MD5 verwendet.

[in] dwFlags

An CryptCreateHash zu übergebende Werte.

[in] dwCertEncodingType

Gibt den verwendeten Codierungstyp an. Es ist immer akzeptabel, sowohl den Zertifikat - als auch den Nachrichtencodierungstyp anzugeben, indem sie mit einem bitweisen OR-Vorgang kombiniert werden, wie im folgenden Beispiel gezeigt:

X509_ASN_ENCODING | PKCS_7_ASN_ENCODING

Derzeit definierte Codierungstypen sind:

  • X509_ASN_ENCODING
  • PKCS_7_ASN_ENCODING

[in] pInfo

Ein Zeiger auf eine CERT_PUBLIC_KEY_INFO-Struktur , die die informationen zum öffentlichen Schlüssel enthält, die codiert und gehasht werden sollen.

[out] pbComputedHash

Ein Zeiger auf einen Puffer zum Empfangen des berechneten Hashs.

Um die Größe dieser Informationen für die Speicherbelegung festzulegen, kann dieser Parameter NULL sein. Weitere Informationen finden Sie unter Abrufen von Daten mit unbekannter Länge.

[in, out] pcbComputedHash

Ein Zeiger auf ein DWORD , das die Größe des Puffers in Bytes enthält, auf den der pbComputedHash-Parameter verweist. Wenn die Funktion zurückgibt, enthält das DWORD die Anzahl der im Puffer gespeicherten Bytes.

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 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, 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.

Hinweis Fehler aus den aufgerufenen Funktionen CryptCreateHash, CryptGetHashParam und CryptHashData können an diese Funktion weitergegeben werden. Diese Funktion weist die folgenden Fehlercodes auf.
 
Rückgabecode Beschreibung
ERROR_MORE_DATA
Wenn der vom pbComputedHash-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 pcbComputedHash verwiesen wird.
ERROR_FILE_NOT_FOUND
Ungültiger Zertifikatcodierungstyp. Derzeit wird nur X509_ASN_ENCODING unterstützt.
 

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 [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile wincrypt.h
Bibliothek Crypt32.lib
DLL Crypt32.dll

Weitere Informationen

CryptHashCertificate

CryptHashToBeSigned

Datenverwaltung-Funktionen