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.

Valore Significato
CERT_SET_KEY_PROV_HANDLE_PROP_ID/CERT_SET_KEY_CONTEXT_PROP_ID
Consente all'handle di mantenere aperto il provider di chiavi per le chiamate successive alle funzioni di crittografia.
CRYPT_MACHINE_KEYSET/NCRYPT_MACHINE_KEY_FLAG
Il contenitore di chiavi contiene le chiavi del computer. Se questo flag non è presente, il contenitore di chiavi contiene chiavi utente.
CRYPT_SILENT/NCRYPT_SILENT_FLAG
Il contenitore di chiavi tenterà di aprire tutte le chiavi in modo invisibile all'utente senza alcuna richiesta dell'interfaccia utente.
 

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
AT_KEYEXCHANGE
Chiavi usate per crittografare/decrittografare le chiavi di sessione.
AT_SIGNATURE
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

Vedi anche

CRYPT_KEY_PROV_PARAM

CertGetCertificateContextProperty

CertSetCertificateContextProperty