Funzione CertFindCTLInStore (wincrypt.h)
La funzione CertFindCTLInStore trova il contesto CTL (Certificate Trust List) primo o successivo che corrisponde ai criteri di ricerca stabiliti dal dwFindType e dal relativo pvFindPara associato. Questa funzione può essere usata in un ciclo per trovare tutti i contesti CTL in un archivio certificati che corrispondono ai criteri di ricerca specificati.
Sintassi
PCCTL_CONTEXT CertFindCTLInStore(
[in] HCERTSTORE hCertStore,
[in] DWORD dwMsgAndCertEncodingType,
[in] DWORD dwFindFlags,
[in] DWORD dwFindType,
[in] const void *pvFindPara,
[in] PCCTL_CONTEXT pPrevCtlContext
);
Parametri
[in] hCertStore
Handle dell'archivio certificati da cercare.
[in] dwMsgAndCertEncodingType
Specifica il tipo di codifica utilizzata nel CTL. È 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
Questo parametro viene usato solo quando il parametro dwFindType è impostato su CTL_FIND_USAGE.
[in] dwFindFlags
Può essere impostato quando dwFindType è impostato su CTL_FIND_USAGE. Per informazioni dettagliate, vedere i commenti in CTL_FIND_USAGE, come illustrato di seguito.
[in] dwFindType
Specifica il tipo di ricerca eseguita. Il tipo di ricerca determina il tipo di dati, il contenuto e l'uso di pvFindPara. Questo parametro può avere uno dei valori seguenti.
Valore | Significato |
---|---|
|
Tipo di dati pvFindPara: NULL.
Qualsiasi CTL è una corrispondenza. |
|
Tipo di dati pvFindPara: CRYPT_HASH_BLOB.
Viene trovato un elenco CTL con un hash corrispondente all'hash nella struttura CRYPT_HASH_BLOB . |
|
Tipo di dati pvFindPara: CRYPT_HASH_BLOB.
Viene trovato un elenco CTL con un hash corrispondente all'hash nella struttura CRYPT_HASH_BLOB . |
|
Tipo di dati pvFindPara: CTL_FIND_USAGE_PARA.
Qualsiasi CTL viene trovato con un identificatore di utilizzo, un identificatore di elenco o un firmatario corrispondente all'identificatore di utilizzo, all'identificatore di elenco o al firmatario nella struttura CTL_FIND_USAGE_PARA . Se il membro cUsageIdentifier è di dimensioni SubjectUsage , qualsiasi CTL è una corrispondenza. Se il membro cbData del membro ListIdentifier è zero, qualsiasi identificatore di elenco è una corrispondenza. Se il membro cbData di ListIdentifier è CTL_FIND_NO_LIST_ID_CBDATA, solo un CTL senza un identificatore di elenco è una corrispondenza. Se il membro pSigner nella struttura CTL_FIND_USAGE_PARA è NULL, viene utilizzata una corrispondenza qualsiasi firmatario CTL e vengono usati solo i membri Issuer e SerialNumber nella struttura pSignerCERT_INFO . Se pSigner è CTL_FIND_NO_SIGNER_PTR, solo un CTL senza un firmatario è una corrispondenza. |
|
Tipo di dati pvFindPara: CTL_FIND_USAGE_PARA.
Vengono confrontate solo le CCL con gli stessi identificatori di utilizzo. Le licenze CRL con identificatori di utilizzo aggiuntivi non corrispondono. Ad esempio, se solo "1.2.3" viene specificato nella struttura CTL_FIND_USAGE_PARA , per una corrispondenza, il CTL deve contenere solo "1.2.3" e nessun identificatore di utilizzo aggiuntivo. |
|
Tipo di dati pvFindPara: PCCTL_CONTEXT.
Cerca il CRL successivo che corrisponde esattamente al CTL_CONTEXT. |
|
Tipo di dati pvFindPara: CTL_FIND_SUBJECT_PARA.
Viene trovato un elenco CTL con l'oggetto specificato. CertFindSubjectInCTL può essere chiamato per ottenere un puntatore alla voce dell'oggetto nel CTL. Il membro pUsagePara in CTL_FIND_SUBJECT_PARA può essere impostato facoltativamente per abilitare la corrispondenza descritta in precedenza in CTL_FIND_USAGE. |
[in] pvFindPara
Puntatore al valore di ricerca associato al parametro dwFindType .
[in] pPrevCtlContext
Puntatore all'ultima CTL_CONTEXT restituita da questa funzione. Deve essere NULL per ottenere il primo CTL nell'archivio. I CRL successivi vengono recuperati impostando pPrevCtlContext sul puntatore al CTL_CONTEXT restituito da una chiamata di funzione precedente. Tutti i certificati che non soddisfano i criteri di ricerca o eliminati in precedenza da CertDeleteCTLFromStore vengono ignorati. Questa funzione libera la CTL_CONTEXT a cui fa riferimento i valori non NULL di questo parametro.
Valore restituito
Se la funzione ha esito positivo, il valore restituito è un puntatore a un contestoCTL di sola lettura.
Per informazioni sugli errori estesi, chiamare GetLastError. Di seguito sono riportati alcuni possibili codici di errore.
Codice restituito | Descrizione |
---|---|
|
Nessun CTL trovato nell'archivio, nessun CTL è stato trovato corrispondente ai criteri di ricerca oppure la funzione ha raggiunto la fine dell'elenco dello store. |
|
L'handle nel parametro hCertStore non corrisponde a quello nel contesto CTL a cui punta il parametro pPrevCtlContext oppure un valore non valido specificato nel parametro dwFindType . |
Commenti
Un puntatore restituito viene liberato quando viene passato come pPrevCtlContext in una chiamata successiva alla funzione. In caso contrario, il puntatore deve essere liberato chiamando CertFreeCTLContext. Un pPrevCtlContext non NULL passato alla funzione viene sempre liberato con una chiamata a CertFreeCTLContext, anche se la funzione genera un errore.
CertDuplicateCTLContext può essere chiamato per creare un duplicato del contesto restituito. Il contesto CTL restituito può essere aggiunto a un archivio certificati diverso usando CertAddCTLContextToStore oppure è possibile aggiungere un collegamento a tale contesto CTL a un archivio non dell'insieme usando CertAddCTLLinkToStore. Se non viene trovato un elenco CTL corrispondente ai criteri di ricerca, viene restituito NULL .
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
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per