Funzione CryptFindCertificateKeyProvInfo (wincrypt.h)

La funzione CryptFindCertificateKeyProvInfo enumera i provider di crittografia e i relativi contenitori per trovare la chiave privata corrispondente alla chiave pubblica del certificato.

Sintassi

BOOL CryptFindCertificateKeyProvInfo(
  [in] PCCERT_CONTEXT pCert,
  [in] DWORD          dwFlags,
  [in] void           *pvReserved
);

Parametri

[in] pCert

Puntatore alla struttura CERT_CONTEXT del certificato da usare durante l'esportazione delle informazioni sulla chiave pubblica.

[in] dwFlags

Set di flag che modificano il comportamento di questa funzione. Può essere zero o uno dei valori seguenti.

Valore Significato
CRYPT_FIND_USER_KEYSET_FLAG
Limita la ricerca al contenitore utente. L'impostazione predefinita consiste nel cercare sia l'utente che i contenitori del computer.
CRYPT_FIND_MACHINE_KEYSET_FLAG
Limita la ricerca al contenitore del computer. L'impostazione predefinita consiste nel cercare sia l'utente che i contenitori del computer.
CRYPT_FIND_SILENT_KEYSET_FLAG
L'applicazione richiede che il CSP non visualizzi alcuna interfaccia utente per questo contesto. Se il provider di servizi di configurazione deve visualizzare l'interfaccia utente per il funzionamento, la chiamata ha esito negativo e il codice di errore NTE_SILENT_CONTEXT viene impostato come ultimo errore.
 

I flag seguenti determinano quale tecnologia viene usata per ottenere la chiave. Se nessuno di questi flag è presente, questa funzione tenterà solo di ottenere la chiave usando CryptoAPI.

Windows Server 2003 e Windows XP: Questi flag non sono supportati.

Valore Significato
CRYPT_ACQUIRE_ALLOW_NCRYPT_KEY_FLAG
Questa funzione tenterà di ottenere la chiave usando CryptoAPI. In caso di errore, questa funzione tenterà di ottenere la chiave usando l'API di crittografia: Next Generation (CNG).

La proprietà CERT_KEY_PROV_INFO_PROP_ID del certificato è impostata su zero se viene usato CNG per ottenere la chiave.

CRYPT_ACQUIRE_ONLY_NCRYPT_KEY_FLAG
Questa funzione tenterà di ottenere la chiave solo usando CNG e non userà CryptoAPI per ottenere la chiave.

La proprietà CERT_KEY_PROV_INFO_PROP_ID del certificato è impostata su zero se viene usato CNG per ottenere la chiave.

CRYPT_ACQUIRE_PREFER_NCRYPT_KEY_FLAG
Questa funzione tenterà di ottenere la chiave usando CNG. In caso contrario, questa funzione tenterà di ottenere la chiave usando CryptoAPI.

La proprietà CERT_KEY_PROV_INFO_PROP_ID del certificato è impostata su zero se viene usato CNG per ottenere la chiave.

[in] pvReserved

Riservato per uso futuro e deve essere NULL.

Valore restituito

TRUE se la funzione trova una chiave privata corrispondente alla chiave pubblica del certificato all'interno di un contenitore cercato; FALSE se la funzione non riesce a trovare un contenitore o una chiave privata all'interno di un contenitore.

GetLastError restituisce l'errore seguente:

Codice restituito Descrizione
NTE_NO_KEY
Nessun contenitore trovato.

Commenti

Questa funzione enumera i provider di crittografia e i relativi contenitori per trovare la chiave privata corrispondente alla chiave pubblica del certificato. Per una corrispondenza, la funzione aggiorna la proprietà CERT_KEY_PROV_INFO_PROP_ID del certificato. Se il CERT_KEY_PROV_INFO_PROP_ID è già impostato, viene controllato per determinare se corrisponde alla chiave pubblica del provider. Per una corrispondenza, la funzione ignora l'enumerazione menzionata in precedenza.

Requisiti

Requisito Valore
Client minimo supportato Windows XP [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione wincrypt.h
Libreria Crypt32.lib
DLL Crypt32.dll

Vedi anche

Funzioni Gestione dati