CryptCreateKeyIdentifierFromCSP-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 CryptCreateKeyIdentifierFromCSP-Funktion erstellt einen Schlüsselbezeichner aus einem öffentlichen Schlüssel des Kryptografiedienstanbieters (CSP) CRYPT_INTEGER_BLOB.

Diese Funktion konvertiert eine PUBLICKEYSTRUC eines CSP in eine X.509-CERT_PUBLIC_KEY_INFO-Struktur und codiert sie. Die codierte Struktur wird dann mit dem SHA1-Algorithmus gehasht , um den Schlüsselbezeichner abzurufen.

Syntax

BOOL CryptCreateKeyIdentifierFromCSP(
  [in]      DWORD                dwCertEncodingType,
  [in]      LPCSTR               pszPubKeyOID,
  [in]      const PUBLICKEYSTRUC *pPubKeyStruc,
  [in]      DWORD                cbPubKeyStruc,
  [in]      DWORD                dwFlags,
  [in]      void                 *pvReserved,
  [out]     BYTE                 *pbHash,
  [in, out] DWORD                *pcbHash
);

Parameter

[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] pszPubKeyOID

Ein Zeiger auf den Public Key Object Identifier (OID). Ein Wert, der nicht NULL ist, überschreibt die Standard-OID, die vom aiKeyAlg-Member der Struktur abgerufen wurde, auf die pPubKeyStruc verweist. Um die Standard-OID zu verwenden, legen Sie pszPubKeyOID auf NULL fest.

[in] pPubKeyStruc

Ein Zeiger auf eine PUBLICKEYSTRUC-Struktur . Im Standardfall wird der aiKeyAlg-Member der Struktur, auf die pPubKeyStruc verweist, verwendet, um die öffentliche Schlüssel-OID zu finden. Wenn der Wert von pszPubKeyOID nicht NULL ist, wird der Standardwert überschrieben.

[in] cbPubKeyStruc

Die Größe des PUBLICKEYSTRUC in Byte.

[in] dwFlags

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

[in] pvReserved

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

[out] pbHash

Ein Zeiger auf einen Puffer zum Empfangen des Hashs des öffentlichen Schlüssels und des Schlüsselbezeichners.

Legen Sie diesen Parameter auf NULL fest, um die Größe dieser Informationen für die Speicherbelegung abzurufen. Weitere Informationen finden Sie unter Abrufen von Daten mit unbekannter Länge.

[in, out] pcbHash

Ein Zeiger auf ein DWORD , der die Größe des Puffers in Bytes angibt, auf den der pbHash-Parameter verweist. Wenn die Funktion zurückgibt, enthält das DWORD die Anzahl der im Puffer gespeicherten Bytes. Bei Verwendung von SHA1-Hashing beträgt die Länge des erforderlichen Puffers zwanzig.

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.

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

Weitere Informationen

CryptEnumKeyIdentifierProperties

CryptGetKeyIdentifierProperty

CryptSetKeyIdentifierProperty

Schlüsselbezeichnerfunktionen