Funzione CertGetCRLFromStore (wincrypt.h)

La funzione CertGetCRLFromStore ottiene il contestodell'elenco di revoche di certificati (CRL) primo o successivo dall'archivio certificati per l'autorità emittente specificata. La funzione esegue anche i controlli di verifica abilitati sul CRL. Le nuove funzioni di verifica della catena di certificati sono consigliate invece di questa funzione.

Sintassi

PCCRL_CONTEXT CertGetCRLFromStore(
  [in]           HCERTSTORE     hCertStore,
  [in, optional] PCCERT_CONTEXT pIssuerContext,
  [in]           PCCRL_CONTEXT  pPrevCrlContext,
  [in, out]      DWORD          *pdwFlags
);

Parametri

[in] hCertStore

Handle di un archivio certificati.

[in, optional] pIssuerContext

Puntatore a un CERT_CONTEXT dell'autorità emittente. Il puntatore pIssuerContext può provenire da questo archivio o da un altro archivio oppure può essere stato creato dalla chiamata a CertCreateCertificateContext. Se viene passato NULL per questo parametro, vengono trovati tutti i CRL nell'archivio.

[in] pPrevCrlContext

Puntatore a un CRL_CONTEXT. Un'autorità emittente può avere più CRL. Ad esempio, può generare CRL differenziali usando un'estensione X.509 versione 3. Questo parametro deve essere NULL nella prima chiamata per ottenere il CRL. Per ottenere il CRL successivo per l'emittente, il parametro viene impostato sul CRL_CONTEXT restituito da una chiamata precedente. Una funzione pPrevCrlContext non NULL viene sempre liberata da questa funzione chiamando CertFreeCRLContext, anche per un errore.

[in, out] pdwFlags

I valori del flag seguenti sono definiti per abilitare i controlli di verifica sul CRL restituito. Questi flag possono essere combinati usando un'operazione OR bit per bit.

Valore Significato
CERT_STORE_SIGNATURE_FLAG
Usa la chiave pubblica nel certificato dell'autorità emittente per verificare la firma nel CRL restituito.
CERT_STORE_TIME_VALIDITY_FLAG
Ottiene l'ora corrente e verifica che sia entro il tempo compreso tra ThisUpdate e NextUpdate di CRL.
CERT_STORE_BASE_CRL_FLAG
Ottiene un CRL di base.
CERT_STORE_DELTA_CRL_FLAG
Ottiene un CRL differenziale.
 

Se un controllo di verifica abilitato ha esito positivo, il flag è impostato su zero.

Se un controllo di verifica abilitato ha esito negativo, il flag rimane impostato al momento della restituzione. Se pIssuerContext è NULL, un CERT_STORE_SIGNATURE_FLAG abilitato ha sempre esito negativo e viene impostato anche il CERT_STORE_NO_ISSUER_FLAG. Per informazioni dettagliate, vedere Osservazioni.

Se viene impostato solo uno dei CERT_STORE_BASE_CRL_FLAG o CERT_STORE_DELTA_CRL_FLAG, questa funzione restituisce un CRL di base o delta e il flag di base o delta appropriato verrà cancellato al ritorno. Se vengono impostati entrambi i flag, verrà cancellato solo uno dei flag.

Per un errore di verifica, viene comunque restituito un puntatore al primo o al successivo CRL_CONTEXT e GetLastError non viene aggiornato.

Valore restituito

Se la funzione ha esito positivo, il valore restituito è un puntatore a un CRL_CONTEXT di sola lettura.

Se la funzione ha esito negativo e il primo O successivo CRL non viene trovato, il valore restituito è NULL.

Il CRL_CONTEXT restituito deve essere liberato chiamando CertFreeCRLContext. Tuttavia, quando il CRL_CONTEXT restituito viene fornito per pPrevCrlContext in una chiamata successiva, la funzione la libera.

Per informazioni sugli errori estesi, chiamare GetLastError. Di seguito sono riportati alcuni possibili codici di errore.

Valore Descrizione
E_INVALIDARG
L'handle nel parametro hCertStore non è uguale a quello nel contesto CRL a cui punta il parametro pPrevCrlContext oppure in pdwFlags è stato impostato un flag non supportato.
CRYPT_E_NOT_FOUND
Non esiste alcun CRL nell'archivio per l'emittente oppure la funzione ha raggiunto la fine dell'elenco dello store.

Commenti

CertDuplicateCRLContext può essere chiamato per creare un CRL duplicato.

I valori esadecimali dei flag possono essere combinati usando un'operazione OR bit per bit per abilitare entrambe le verifiche. Ad esempio, per abilitare entrambe le verifiche, il valore DWORD a cui punta pdwFlags è impostato sul valore CERT_STORE_SIGNATURE_FLAG | CERT_STORE_TIME_VALIDITY_FLAG. Se la verifica CERT_STORE_SIGNATURE_FLAG ha avuto esito positivo, ma CERT_STORE_TIME_VALIDITY_FLAG verifica non è riuscita, il valore DWORD a cui punta pdwFlags viene impostato su CERT_STORE_TIME_VALIDITY_FLAG quando la funzione restituisce.

Requisiti

   
Client minimo supportato Windows XP [app desktop | App UWP]
Server minimo supportato Windows Server 2003 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione wincrypt.h
Libreria Crypt32.lib
DLL Crypt32.dll

Vedi anche

CRL_CONTEXT

CertCreateCertificateContext

CertDuplicateCRLContext

CertFreeCRLContext

CertGetCRLContextProperty

Funzioni dell'elenco di revoche di certificati