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