Condividi tramite


Funzione CertFindCRLInStore (wincrypt.h)

La funzione CertFindCRLInStore trova il contesto dell'elenco di revoche di certificati (CRL) primo o successivo in un archivio certificati che corrisponde a un criterio di ricerca stabilito dal parametro dwFindType e dal parametro pvFindPara associato. Questa funzione può essere usata in un ciclo per trovare tutti i contesti CRL in un archivio certificati che soddisfano i criteri di ricerca specificati.

Sintassi

PCCRL_CONTEXT CertFindCRLInStore(
  [in] HCERTSTORE    hCertStore,
  [in] DWORD         dwCertEncodingType,
  [in] DWORD         dwFindFlags,
  [in] DWORD         dwFindType,
  [in] const void    *pvFindPara,
  [in] PCCRL_CONTEXT pPrevCrlContext
);

Parametri

[in] hCertStore

Handle dell'archivio certificati da cercare.

[in] dwCertEncodingType

Questo parametro non è attualmente utilizzato. Deve essere impostato su zero.

[in] dwFindFlags

Se dwFindType è CRL_FIND_ISSUED_BY, per impostazione predefinita viene eseguita solo la corrispondenza dei nomi dell'autorità emittente. I flag seguenti possono essere usati per eseguire ulteriori filtri.

Valore Significato
CRL_FIND_ISSUED_BY_AKI_FLAG
Verifica la presenza di un CRL con estensione AKI (Authority Key Identifier). Se il CRL ha un AKI, viene restituito solo un CRL il cui AKI corrisponde all'emittente.
Nota L'estensione AKI ha il valore OID ( Object Identifier ) szOID_AUTHORITY_KEY_IDENTIFIER2 e la relativa struttura di dati corrispondente.
 
CRL_FIND_ISSUED_BY_SIGNATURE_FLAG
Usare la chiave pubblica nel certificato dell'autorità emittente per verificare la firma nel CRL. Restituisce solo un CRL con una firma valida.
CRL_FIND_ISSUED_BY_DELTA_FLAG
Trova e restituisce un CRL delta.
CRL_FIND_ISSUED_BY_BASE_FLAG
Trova e restituisce un CRL di base.
CRL_FIND_ISSUED_FOR_SET_STRONG_PROPERTIES_FLAG
La firma viene verificata per verificare la forza dopo la verifica riuscita. Questo flag si applica solo quando il parametro dwFindType è impostato su CRL_FIND_ISSUED_FOR. È inoltre necessario impostare CRL_FIND_ISSUED_BY_SIGNATURE_FLAG. In caso di esito positivo, nel contesto CRL verranno impostate le proprietà di firma complesse seguenti:
  • CERT_SIGN_HASH_CNG_ALG_PROP_ID
  • CERT_ISSUER_PUB_KEY_BIT_LENGTH_PROP_ID
Windows 8 e Windows Server 2012: inizia il supporto per questo flag.

[in] dwFindType

Specifica il tipo di ricerca eseguita. Il valore di dwFindType determina il tipo di dati, il contenuto e l'uso del parametro pvFindPara . I tipi di ricerca attualmente definiti e i requisiti pvFindPara sono i seguenti.

Valore Significato
CRL_FIND_ANY
Il parametro pvFindPara non viene usato. Deve essere impostato su NULL.
Nessun criterio di ricerca. Viene restituito il CRL successivo nell'archivio.
CRL_FIND_ISSUED_BY
Puntatore a un CERT_CONTEXT.
Cerca il CRL successivo nell'archivio corrispondente all'autorità emittente nel CERT_CONTEXT.
CRL_FIND_EXISTING
Puntatore a un CRL_CONTEXT.
Cerca il CRL successivo che corrisponde al CRL_CONTEXT nei modi seguenti:
  • Entrambi sono CRL di base o differenziali.
  • I BLOB del nome dell'autorità di certificazione per entrambi sono identici.
  • Se esistono, i BLOB dell'estensione con codifica Authority/KeyIdentifier e IssuingDistributionPoint corrispondono.
CRL_FIND_ISSUED_FOR
Puntatore a un CRL_FIND_ISSUED_FOR_PARA.
Cerca il CRL successivo nell'archivio che corrisponde all'autorità emittente del certificato soggetto nella struttura CRL_FIND_ISSUED_FOR_PARA.

Se non viene trovato alcun CRL, cerca il CRL successivo nell'archivio che corrisponde all'autorità emittente nella struttura CRL_FIND_ISSUED_FOR_PARA.

Nota Quando si usano certificati incrociati, il nome del soggetto nel certificato dell'autorità emittente potrebbe non corrispondere al nome dell'autorità emittente nel certificato soggetto e al CRL corrispondente.
 

[in] pvFindPara

Questo parametro è determinato dal valore di dwFindType. Per informazioni dettagliate, vedere la tabella riportata in precedenza in questo argomento.

[in] pPrevCrlContext

Puntatore all'ultimo CRL_CONTEXT restituito da questa funzione. Deve essere NULL per ottenere il primo CRL nell'archivio che soddisfa i criteri di ricerca. I CRL successivi che soddisfano i criteri di ricerca sono disponibili impostando pPrevCrlContext sul puntatore PCCRL_CONTEXT restituito da una chiamata precedente alla funzione. Il processo di ricerca ignora eventuali CRL che non corrispondono ai criteri di ricerca o che sono stati precedentemente eliminati dall'archivio da CertDeleteCRLFromStore. Questa funzione libera il CRL_CONTEXT a cui fa riferimento i valori di questo parametro che non sono NULL.

Valore restituito

Se la funzione ha esito positivo, la funzione restituisce un puntatore a un contesto CRL di sola lettura. Al termine dell'uso del contesto CRL restituito, liberarlo chiamando la funzione CertFreeCRLContext o liberandola in modo implicito passandolo come parametro pPrevCrlContext in una chiamata successiva alla funzione CertFindCRLInStore .

Se la funzione ha esito negativo e non viene trovato un CRL corrispondente ai criteri di ricerca, il valore restituito è NULL. Per informazioni sugli errori estesi, chiamare GetLastError. Di seguito sono riportati alcuni possibili codici di errore.

Codice restituito Descrizione
E_INVALIDARG
L'handle nel parametro hCertStore non è uguale a quello nel contesto CRL a cui punta il parametro pPrevCrlContext o un tipo di ricerca non valido specificato nel parametro dwFindType .
CRYPT_E_NOT_FOUND
Nessun CRL è presente nell'archivio, non è stato trovato alcun CRL corrispondente ai criteri di ricerca oppure è stata raggiunta la fine dell'elenco dello store.

Commenti

Il puntatore restituito viene liberato quando viene passato come parametro pPrevCrlContext in una chiamata successiva alla funzione. In caso contrario, il puntatore deve essere liberato in modo esplicito chiamando CertFreeCRLContext. Un pPrevCrlContext che non è NULL viene sempre liberato da CertFindCRLInStore usando una chiamata a CertFreeCRLContext, anche se si verifica un errore nella funzione.

CertDuplicateCRLContext può essere chiamato per creare un duplicato del contesto restituito. Il contesto CRL restituito può essere aggiunto a un archivio certificati diverso usando CertAddCRLContextToStore oppure è possibile aggiungere un collegamento a tale contesto CRL a un archivio non di raccolta usando CertAddCRLLinkToStore.

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

CRL_CONTEXT

CertAddCRLContextToStore

CertAddCRLLinkToStore

CertDeleteCRLFromStore

CertDuplicateCRLContext

CertFreeCRLContext

Funzioni dell'elenco di revoche di certificati