struttura CRYPT_KEY_PROV_INFO (wincrypt.h)
La struttura CRYPT_KEY_PROV_INFO contiene informazioni su un contenitore di chiavi all'interno di un provider di servizi di crittografia (CSP).
Sintassi
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;
Members
pwszContainerName
Puntatore a una stringa Unicode con terminazione Null contenente il nome del contenitore di chiavi.
Quando il membro dwProvType è zero, questa stringa contiene il nome di una chiave all'interno di un provider di archiviazione chiavi CNG. Questa stringa viene passata come parametro pwszKeyName alla funzione NCryptOpenKey .
pwszProvName
Puntatore a una stringa Unicode con terminazione Null contenente il nome del provider di servizi di configurazione.
Quando il membro dwProvType è zero, questa stringa contiene il nome di un provider di archiviazione chiavi CNG. Questa stringa viene passata come parametro pwszProviderName alla funzione NCryptOpenStorageProvider .
dwProvType
Specifica il tipo CSP. Può essere zero o uno dei tipi di provider di crittografia.
Se questo membro è zero, il contenitore di chiavi è uno dei provider di archiviazione delle chiavi CNG.
dwFlags
Set di flag che indicano informazioni aggiuntive sul provider. Può essere zero o uno dei valori seguenti.
Le funzioni di crittografia CryptDecryptMessage, CryptSignMessage, CryptDecryptAndVerifyMessageSignature e CryptSignAndEncryptMessage eseguono internamente operazioni CryptAcquireContext usando il CRYPT_KEY_PROV_INFO da un certificato. Quando viene impostato il flag CERT_SET_KEY_CONTEXT_PROP_ID o CERT_SET_KEY_PROV_HANDLE_PROP_ID , queste funzioni di crittografia possono chiamare CertSetCertificateContextProperty con CERT_KEY_CONTEXT_PROP_ID. Questa chiamata consente di mantenere aperto l'handle al provider di chiavi per le chiamate successive alle funzioni di crittografia indicate che usano lo stesso certificato, eliminando la necessità di eseguire altre chiamate a CryptAcquireContext, migliorando l'efficienza. Inoltre, poiché alcuni provider possono richiedere l'immissione di una password per le chiamate a CryptAcquireContext, è consigliabile per le applicazioni ridurre al minimo il numero di chiamate CryptAcquireContext effettuate. Gli handle per i provider di chiavi che sono stati mantenuti aperti vengono rilasciati automaticamente quando l'archivio viene chiuso.
Si consideri ad esempio un'applicazione di posta elettronica in cui sono stati ricevuti cinque messaggi crittografati, tutti crittografati con la chiave pubblica dallo stesso certificato. Se l'handle al provider di chiavi viene mantenuto aperto dopo l'elaborazione del primo messaggio, le chiamate a CryptAcquireContext non sono necessarie per i quattro messaggi rimanenti.
cProvParam
Numero di elementi nella matrice rgProvParam .
Quando il membro dwProvType è zero, questo membro non viene usato e deve essere zero.
rgProvParam
Matrice di strutture CRYPT_KEY_PROV_PARAM che contengono i parametri per il contenitore di chiavi. Il membro cProvParam contiene il numero di elementi in questa matrice.
Quando il membro dwProvType è zero, questo membro non viene usato e deve essere NULL.
dwKeySpec
Specifica della chiave privata da recuperare.
Per il provider predefinito sono definiti i valori seguenti.
Quando il membro dwProvType è zero, questo valore viene passato come parametro dwLegacyKeySpec alla funzione NCryptOpenKey .
Valore | Significato |
---|---|
|
Chiavi usate per crittografare/decrittografare le chiavi di sessione. |
|
Chiavi usate per creare e verificare le firme digitali. |
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows XP [solo app desktop] |
Server minimo supportato | Windows Server 2003 [solo app desktop] |
Intestazione | wincrypt.h |