Funzione CertAddEncodedCRLToStore (wincrypt.h)

La funzione CertAddEncodedCRLToStore crea un contesto di elenco di revoche di certificati (CRL) da un CRL codificato e lo aggiunge all'archivio certificati. La funzione crea una copia del contesto CRL prima di aggiungerla all'archivio.

Sintassi

BOOL CertAddEncodedCRLToStore(
  [in]            HCERTSTORE    hCertStore,
  [in]            DWORD         dwCertEncodingType,
  [in]            const BYTE    *pbCrlEncoded,
  [in]            DWORD         cbCrlEncoded,
  [in]            DWORD         dwAddDisposition,
  [out, optional] PCCRL_CONTEXT *ppCrlContext
);

Parametri

[in] hCertStore

Handle di un archivio certificati.

[in] dwCertEncodingType

Specifica il tipo di codifica utilizzata. È sempre accettabile specificare sia il certificato che i tipi di codifica dei messaggi combinandoli con un'operazione OR bit per bit, come illustrato nell'esempio seguente:

X509_ASN_ENCODING | PKCS_7_ASN_ENCODING I tipi di codifica attualmente definiti sono:

  • X509_ASN_ENCODING
  • PKCS_7_ASN_ENCODING

[in] pbCrlEncoded

Puntatore a un buffer contenente il CRL codificato da aggiungere all'archivio certificati.

[in] cbCrlEncoded

Dimensione, in byte, del buffer pbCrlEncoded .

[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, vengono confrontati gli orari di ThisUpdate sui 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, tale CRL o 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, tale contesto esistente viene eliminato prima di creare e aggiungere il nuovo contesto. Il nuovo contesto 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] ppCrlContext

Puntatore a un puntatore alla struttura CRL_CONTEXT decodificata. Si tratta di un parametro facoltativo che può essere NULL, che indica che l'applicazione chiamante non richiede una copia del CRL nuovo 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. Per informazioni sugli errori estesi, chiamare GetLastError. Di seguito sono riportati alcuni possibili codici di errore.

Codice restituito Descrizione
CRYPT_E_EXISTS
CERT_STORE_ADD_NEW è impostato e il CRL esiste già nell'archivio oppure CERT_STORE_ADD_NEWER è impostato ed è presente un CRL nell'archivio con un'ora di ThisUpdate maggiore o uguale all'ora thisUpdate per l'aggiunta del CRL.
E_INVALIDARG
È stato specificato un valore di eliminazione non valido nel parametro dwAddDisposition o un tipo di codifica non valido specificato. Attualmente è supportato solo il tipo di codifica X509_ASN_ENCODING.
 

Se la funzione ha esito negativo, GetLastError può restituire un errore di codifica/decodifica ASN.1 ( Abstract Syntax Notation One ). Per informazioni su questi errori, vedere Codifica ASN.1/Decodifica dei valori restituiti.

Requisiti

Requisito Valore
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

CertAddCRLContextToStore

CertFreeCRLContext

Funzioni dell'elenco di revoche di certificati