Funzione CertFindCTLInStore (wincrypt.h)
La funzione CertFindCTLInStore
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 in cui eseguire la ricerca.
[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 di 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
[in] dwFindFlags
Può essere impostato quando dwFindType è impostato su CTL_FIND_USAGE. Per informazioni dettagliate, vedere i commenti in CTL_FIND_USAGE, come segue.
[in] dwFindType
Specifica il tipo di ricerca in corso. Il tipo di ricerca determina il tipo di dati, il contenuto e l'uso di pvFindPara. Questo parametro può essere uno dei valori seguenti.
Valore | Significato |
---|---|
|
Tipo di dati di pvFindPara: NULL.
Qualsiasi CTL è una corrispondenza. |
|
Tipo di dati di pvFindPara: CRYPT_HASH_BLOB.
Viene trovato un CTL con un hash corrispondente all'hash nella struttura CRYPT_HASH_BLOB. |
|
Tipo di dati di pvFindPara: CRYPT_HASH_BLOB.
Viene trovato un CTL con un hash corrispondente all'hash nella struttura CRYPT_HASH_BLOB. |
|
Tipo di dati di pvFindPara: CTL_FIND_USAGE_PARA.
Viene rilevato un CTL 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 Se il membro cbData Se il membro |
|
Tipo di dati di pvFindPara: CTL_FIND_USAGE_PARA.
Vengono confrontate solo le CRL con gli stessi identificatori di utilizzo. Le licenze CTL con identificatori di utilizzo aggiuntivi non corrispondono. Ad esempio, se nella struttura di CTL_FIND_USAGE_PARA viene specificato solo "1.2.3", per una corrispondenza, il CTL deve contenere solo "1.2.3" e nessun identificatore di utilizzo aggiuntivo. |
|
Tipo di dati di pvFindPara: PCCTL_CONTEXT.
Cerca il CRL successivo che corrisponde esattamente al CTL_CONTEXT. |
|
Tipo di dati di pvFindPara: CTL_FIND_SUBJECT_PARA.
Viene trovato un CTL con l'oggetto specificato. è possibile chiamare CertFindSubjectInCTL 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'ultimo CTL_CONTEXT restituito da questa funzione. Deve essere NULL per ottenere il primo CTL nell'archivio. Le CRL successive vengono recuperate 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 che sono stati eliminati in precedenza da CertDeleteCTLFromStore vengono ignorati. Questa funzione libera i CTL_CONTEXT a cui fa riferimento nonvalori NULL di questo parametro.
Valore restituito
Se la funzione ha esito positivo, il valore restituito è un puntatore a un contesto di
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 |
Osservazioni
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. UnNULLpPrevCtlContext passato alla funzione viene sempre liberato con una chiamata a CertFreeCTLContext, anche se la funzione genera un errore.
è possibile chiamare CertDuplicateCTLContext per creare un duplicato del contesto restituito. Il contesto CTL restituito può essere aggiunto a un archivio certificati diverso usando CertAddCTLContextToStoreoppure è possibile aggiungere un collegamento a tale contesto CTL a un archivio non dell'insieme usando CertAddCTLLinkToStore. Se non viene trovato un CTL corrispondente ai criteri di ricerca, viene restituito NULL.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Windows XP [app desktop | App UWP] |
server minimo supportato | Windows Server 2003 [app desktop | App UWP] |
piattaforma di destinazione | Finestre |
intestazione |
wincrypt.h |
libreria |
Crypt32.lib |
dll | Crypt32.dll |
Vedere anche
funzioni dell'elenco di attendibilità dei certificati