Share via


CRYPT_KEY_PROV_INFO-Struktur (wincrypt.h)

Die CRYPT_KEY_PROV_INFO-Struktur enthält Informationen zu einem Schlüsselcontainer innerhalb eines Kryptografiedienstanbieters (CSP ).

Syntax

typedef struct _CRYPT_KEY_PROV_INFO {
  LPWSTR                pwszContainerName;
  LPWSTR                pwszProvName;
  DWORD                 dwProvType;
  DWORD                 dwFlags;
  DWORD                 cProvParam;
  PCRYPT_KEY_PROV_PARAM rgProvParam;
  DWORD                 dwKeySpec;
} CRYPT_KEY_PROV_INFO, *PCRYPT_KEY_PROV_INFO;

Member

pwszContainerName

Ein Zeiger auf eine Unicode-Zeichenfolge mit NULL-Termin, die den Namen des Schlüsselcontainers enthält.

Wenn das dwProvType-Element null ist, enthält diese Zeichenfolge den Namen eines Schlüssels innerhalb eines CNG-Schlüsselspeicheranbieters. Diese Zeichenfolge wird als pwszKeyName-Parameter an die NCryptOpenKey-Funktion übergeben.

pwszProvName

Ein Zeiger auf eine Unicode-Zeichenfolge mit Null-Termin, die den Namen des CSP enthält.

Wenn das dwProvType-Element null ist, enthält diese Zeichenfolge den Namen eines CNG-Schlüsselspeicheranbieters. Diese Zeichenfolge wird als pwszProviderName-Parameter an die NCryptOpenStorageProvider-Funktion übergeben.

dwProvType

Gibt den CSP-Typ an. Dies kann null oder einer der Kryptografieanbietertypen sein.

Wenn dieser Member null ist, ist der Schlüsselcontainer einer der CNG-Schlüsselspeicheranbieter.

dwFlags

Eine Reihe von Flags, die zusätzliche Informationen zum Anbieter angeben. Dies kann null oder einer der folgenden Werte sein.

Wert Bedeutung
CERT_SET_KEY_PROV_HANDLE_PROP_ID/CERT_SET_KEY_CONTEXT_PROP_ID
Ermöglicht, dass das Handle für den Schlüsselanbieter für nachfolgende Aufrufe der kryptografischen Funktionen geöffnet bleibt.
CRYPT_MACHINE_KEYSET/NCRYPT_MACHINE_KEY_FLAG
Der Schlüsselcontainer enthält Computerschlüssel. Wenn dieses Flag nicht vorhanden ist, enthält der Schlüsselcontainer Benutzerschlüssel.
CRYPT_SILENT/NCRYPT_SILENT_FLAG
Der Schlüsselcontainer versucht, schlüssel ohne Aufforderungen der Benutzeroberfläche im Hintergrund zu öffnen.
 

Die kryptografischen Funktionen CryptDecryptMessage, CryptSignMessage, CryptDecryptAndVerifyMessageSignature und CryptSignAndEncryptMessage führen intern CryptAcquireContext-Vorgänge mithilfe der CRYPT_KEY_PROV_INFO aus einem Zertifikat aus. Wenn das CERT_SET_KEY_CONTEXT_PROP_ID- oder CERT_SET_KEY_PROV_HANDLE_PROP_ID-Flag festgelegt ist, können diese kryptografischen Funktionen CertSetCertificateContextProperty mit CERT_KEY_CONTEXT_PROP_ID aufrufen. Dieser Aufruf ermöglicht es, das Handle für den Schlüsselanbieter für nachfolgende Aufrufe der erwähnten kryptografischen Funktionen geöffnet zu halten, die dasselbe Zertifikat verwenden, wodurch die Notwendigkeit entfällt, zusätzliche Aufrufe von CryptAcquireContext auszuführen, wodurch die Effizienz verbessert wird. Da einige Anbieter die Eingabe eines Kennworts für Aufrufe von CryptAcquireContext verlangen können, ist es für Anwendungen wünschenswert, die Anzahl der CryptAcquireContext-Aufrufe zu minimieren. Handles für wichtige Anbieter, die geöffnet wurden, werden automatisch freigegeben, wenn der Speicher geschlossen wird.

Betrachten Sie beispielsweise eine E-Mail-Anwendung, bei der fünf verschlüsselte Nachrichten empfangen wurden, die alle mit dem öffentlichen Schlüssel aus demselben Zertifikat verschlüsselt wurden. Wenn das Handle für den Schlüsselanbieter geöffnet bleibt, nachdem die erste Nachricht verarbeitet wurde, sind für die vier verbleibenden Nachrichten keine Aufrufe von CryptAcquireContext erforderlich.

cProvParam

Die Anzahl der Elemente im rgProvParam-Array .

Wenn der dwProvType-Member 0 ist, wird dieser Member nicht verwendet und muss 0 (null) sein.

rgProvParam

Ein Array von CRYPT_KEY_PROV_PARAM Strukturen, die die Parameter für den Schlüsselcontainer enthalten. Das cProvParam-Element enthält die Anzahl der Elemente in diesem Array.

Wenn der dwProvType-Member null ist, wird dieser Member nicht verwendet und muss NULL sein.

dwKeySpec

Die Spezifikation des abzurufenden privaten Schlüssels.

Die folgenden Werte sind für den Standardanbieter definiert.

Wenn der dwProvType-Member null ist, wird dieser Wert als dwLegacyKeySpec-Parameter an die NCryptOpenKey-Funktion übergeben.

Wert Bedeutung
AT_KEYEXCHANGE
Schlüssel, die zum Verschlüsseln/Entschlüsseln von Sitzungsschlüsseln verwendet werden.
AT_SIGNATURE
Schlüssel, die zum Erstellen und Überprüfen digitaler Signaturen verwendet werden.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows XP [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Kopfzeile wincrypt.h

Weitere Informationen

CRYPT_KEY_PROV_PARAM

CertGetCertificateContextProperty

CertSetCertificateContextProperty