Funzione CertAddCRLContextToStore (wincrypt.h)

La funzione CertAddCRLContextToStore aggiunge un contesto dell'elenco di revoche di certificati (CRL) all'archivio certificati specificato.

Sintassi

BOOL CertAddCRLContextToStore(
  [in]            HCERTSTORE    hCertStore,
  [in]            PCCRL_CONTEXT pCrlContext,
  [in]            DWORD         dwAddDisposition,
  [out, optional] PCCRL_CONTEXT *ppStoreContext
);

Parametri

[in] hCertStore

Handle di un archivio certificati.

[in] pCrlContext

Puntatore alla struttura CRL_CONTEXT da aggiungere.

[in] dwAddDisposition

Specifica l'azione da eseguire se esiste già un CRL corrispondente o un collegamento a un CRL corrispondente nell'archivio. I valori di eliminazione attualmente definiti e i relativi usi sono i seguenti.

Valore Significato
CERT_STORE_ADD_ALWAYS
Non verifica la presenza di un CRL corrispondente esistente o di un collegamento a un CRL corrispondente. Un nuovo CRL viene sempre aggiunto all'archivio. Ciò può causare duplicati in un archivio.
CERT_STORE_ADD_NEW
Se esiste un CRL corrispondente o un collegamento a un CRL corrispondente, l'operazione ha esito negativo. GetLastError restituisce il codice CRYPT_E_EXISTS.
CERT_STORE_ADD_NEWER
Se esiste un CRL corrispondente o un collegamento a un CRL corrispondente, la funzione confronta gli orari di ThisUpdate nei CRL. Se l'elenco CRL esistente ha un'ora thisUpdate inferiore all'ora di ThisUpdate nel nuovo CRL, il CRL o il collegamento precedente viene sostituito esattamente come con CERT_STORE_ADD_REPLACE_EXISTING. Se l'elenco CRL esistente ha un'ora thisUpdate maggiore o uguale all'ora di ThisUpdate in CRL da aggiungere, la funzione ha esito negativo con GetLastError che restituisce il codice CRYPT_E_EXISTS.

Se un CRL corrispondente o un collegamento a un CRL corrispondente non viene trovato nell'archivio, viene aggiunto un nuovo CRL all'archivio.

CERT_STORE_ADD_NEWER_INHERIT_PROPERTIES
L'azione è la stessa di per CERT_STORE_ADD_NEWER, ad eccezione del fatto che se viene sostituito un CRL precedente, le proprietà del CRL precedente vengono incorporate nel CRL sostitutivo.
CERT_STORE_ADD_REPLACE_EXISTING
Se esiste un CRL corrispondente o un collegamento a un CRL corrispondente, il CRL o il collegamento esistente viene eliminato e viene creato e aggiunto un nuovo CRL all'archivio. Se non esiste un CRL corrispondente o un collegamento a un CRL corrispondente, ne viene aggiunto uno.
CERT_STORE_ADD_REPLACE_EXISTING_INHERIT_PROPERTIES
Se esiste un CRL corrispondente nell'archivio, il contesto esistente viene eliminato prima di creare e aggiungere il nuovo contesto. Il contesto aggiunto eredita le proprietà dal CRL esistente.
CERT_STORE_ADD_USE_EXISTING
Se esiste un CRL corrispondente o un collegamento a un CRL corrispondente, viene usato il CRL esistente e vengono aggiunte le proprietà del nuovo CRL. La funzione non ha esito negativo, ma non viene aggiunto alcun nuovo CRL. Se ppCertContext non è NULL, il contesto esistente viene duplicato.

Se non esiste un CRL corrispondente o un collegamento a un CRL corrispondente, viene aggiunto un nuovo CRL.

[out, optional] ppStoreContext

Puntatore a un puntatore al contesto CRL decodificato. Si tratta di un parametro facoltativo e può essere NULL, a indicare che l'applicazione chiamante non richiede una copia del CRL aggiunto o esistente. Se viene eseguita una copia, tale contesto deve essere liberato usando CertFreeCRLContext.

Valore restituito

Se la funzione ha esito positivo, il valore restituito è TRUE.

Se la funzione ha esito negativo, il valore restituito è FALSE. Gli errori delle funzioni chiamate CertAddEncodedCRLToStore e CertSetCRLContextProperty possono essere propagati a questa funzione.

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

Codice restituito Descrizione
CRYPT_E_EXISTS
Questo errore viene restituito se CERT_STORE_ADD_NEW è impostato e il CRL esiste già nell'archivio o se CERT_STORE_ADD_NEWER è impostato e esiste un CRL nell'archivio con una data ThisUpdate maggiore o uguale alla data thisUpdate in CRL da aggiungere.
E_INVALIDARG
Il parametro dwAddDisposition ha specificato un valore di eliminazione non valido.

Commenti

Il contesto CRL non viene duplicato usando CertDuplicateCRLContext. Viene invece creata una nuova copia e aggiunta all'archivio. Oltre a copiare il CRL codificato, la funzione copia le proprietà del contesto.

Per rimuovere il contesto CRL dall'archivio certificati, usare la funzione CertDeleteCRLFromStore .

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

CertAddEncodedCRLToStore

CertDuplicateCRLContext

CertFreeCRLContext

CertSetCRLContextProperty

Funzioni dell'elenco di revoche di certificati