CERT_STORE_PROV_FIND_INFO struttura (wincrypt.h)
La struttura CERT_STORE_PROV_FIND_INFO viene usata da molte funzioni di callback del provider di archiviazione. Contiene criteri di ricerca per trovare un certificato, un elenco di revoche di certificati (CRL) o un elenco di attendibilità certificati (CTL) in un archivio certificati.
Sintassi
typedef struct _CERT_STORE_PROV_FIND_INFO {
DWORD cbSize;
DWORD dwMsgAndCertEncodingType;
DWORD dwFindFlags;
DWORD dwFindType;
const void *pvFindPara;
} CERT_STORE_PROV_FIND_INFO, *PCERT_STORE_PROV_FIND_INFO;
Members
cbSize
Dimensioni della struttura.
dwMsgAndCertEncodingType
Specifica il tipo di codifica usato per i messaggi e i certificati. I tipi di codifica del certificato e del messaggio possono essere combinati con un'operazione BIT-OR bit. Ecco i tipi di codifica definiti:
- X509_ASN_ENCODING
- PKCS_7_ASN_ENCODING
dwFindFlags
Usato con alcuni valori dwFindType per modificare i criteri di ricerca. Per la maggior parte dei valori dwFindType, dwFindFlags non viene usato e deve essere impostato su zero.
dwFindType
Specifica il tipo di ricerca da eseguire. Il tipo di ricerca determina il tipo di dati, il contenuto e l'uso di pvFindPara. I valori dwFindType attualmente definiti e i tipi di dati necessari per pvFindPara sono i seguenti.
Valore | Significato |
---|---|
|
Nessun criterio di ricerca usato. Restituisce il certificato successivo nell'archivio. |
|
Trova il certificato identificato dal CERT_ID specificato. |
|
Cerca un certificato con un'estensione szOID_ENHANCED_KEY_USAGE o un CERT_CTL_PROP_ID corrispondente al membro pszUsageIdentifierdella struttura CTL_USAGE. |
|
Cerca un certificato nell'archivio con un'estensione di utilizzo chiave avanzata o una proprietà di utilizzo chiave avanzata e un identificatore di utilizzo corrispondente al membro pszUsageIdentifier nella struttura CERT_ENHKEY_USAGE .
Un certificato ha un'estensione di utilizzo della chiave avanzata se ha una struttura CERT_EXTENSION con il membro pszObjId impostato su szOID_ENHANCED_KEY_USAGE. Un certificato ha una proprietà di utilizzo chiave avanzata se il relativo identificatore di CERT_ENHKEY_USAGE_PROP_ID è impostato. Se pvFindPara è NULL o il membro cUsageIdentifier di CERT_ENHKEY_USAGE è zero, qualsiasi certificato con estensione di utilizzo chiave avanzato o la proprietà di utilizzo della chiave avanzata soddisfa i criteri di selezione. Se pvFindPara è NULL o il membro cUsageIdentifier della struttura CERT_ENHKEY_USAGE è zero, qualsiasi certificato che ha un utilizzo avanzato della chiave è una corrispondenza. Se CERT_FIND_OPTIONAL_ENHKEY_USAGE_FLAG è impostato in dwFindFlags, i certificati senza l'estensione o la proprietà di utilizzo delle chiavi corrispondono anche. L'impostazione di questo flag ha la precedenza sul passaggio di NULL in pvFindPara. Se CERT_FIND_EXT_ONLY_ENHKEY_USAGE_FLAG è impostato, viene eseguita una corrispondenza solo sull'estensione di utilizzo delle chiavi. Per informazioni sulle modifiche del flag ai criteri di ricerca, vedere Osservazioni. |
|
Cerca un certificato che corrisponde esattamente al contesto del certificato specificato. |
|
Cerca un certificato con un hash SHA1 corrispondente all'hash nella struttura CRYPT_HASH_BLOB . |
|
Cercare un certificato con attributi di autorità di certificazione specificati che corrispondono agli attributi nella struttura CERT_RDN . Se questi valori vengono impostati, la funzione confronta gli attributi dell'autorità emittente in un certificato con elementi della matrice di CERT_RDN_ATTRin questa struttura CERT_RDN. I confronti eseguano l'iterazione degli attributi CERT_RDN_ATTR cercando una corrispondenza con gli attributi dell'autorità di certificazione del certificato.
Se il membro pszObjId di CERT_RDN_ATTR è NULL, l'identificatore dell'oggetto attributo viene ignorato. Se il membro dwValueType di CERT_RDN_ATTR è CERT_RDN_ANY_TYPE, il tipo di valore viene ignorato. Se il membro pbData di CERT_RDN_VALUE_BLOB è NULL, qualsiasi valore corrisponde a una corrispondenza. Attualmente è supportata solo una corrispondenza esatta con distinzione tra maiuscole e minuscole. Per informazioni sulle opzioni Unicode, vedere Osservazioni. Quando questi valori vengono impostati, la ricerca è limitata ai certificati i cui tipi di codifica corrispondono a dwMsgAndCertEncodingType. |
|
Cercare un certificato con una corrispondenza esatta dell'intero nome dell'autorità di certificazione con il nome in CERT_NAME_BLOB. La ricerca è limitata ai certificati corrispondenti a dwMsgAndCertEncodingType. |
|
Cerca un certificato con un'autorità emittente corrispondente all'autorità emittente in CERT_CONTEXT.
Anziché usare la funzione CertFindCertificateInStore con questo valore, usare la funzione CertGetCertificateChain . |
|
Cercare un certificato contenente la stringa del nome dell'autorità di certificazione specificata. Il membro dell'autorità di certificazione del certificato viene convertito in una stringa di nome del tipo appropriato usando la forma appropriata di CertNameToStr formattata come CERT_SIMPLE_NAME_STR. Viene quindi eseguita una sottostringa senza distinzione tra maiuscole e minuscole all'interno di una stringa. Quando questo valore è impostato, la ricerca è limitata ai certificati i cui tipi di codifica corrispondono a dwMsgAndCertEncodingType. |
|
Cerca un certificato con una proprietà CERT_KEY_IDENTIFIER_PROP_ID corrispondente all'identificatore della chiave in CRYPT_HASH_BLOB. |
|
Cerca un certificato con una proprietà CERT_KEY_SPEC_PROP_ID corrispondente alla specifica della chiave in pvFindPara. |
|
Cerca un certificato con un hash MD5 corrispondente all'hash in CRYPT_HASH_BLOB. |
|
Cerca un certificato con una proprietà corrispondente all'identificatore di proprietà specificato dalla DWORD in pvFindPara. |
|
Cerca un certificato con una chiave pubblica corrispondente alla chiave pubblica nella struttura CERT_PUBLIC_KEY_INFO . |
|
Cerca un certificato con un hash SHA1 corrispondente all'hash nella struttura CRYPT_HASH_BLOB . |
|
Cerca un certificato con un hash di firma corrispondente all'hash della firma nella struttura CRYPT_HASH_BLOB . |
|
Cerca un certificato con attributi oggetto specificati che corrispondono agli attributi nella struttura CERT_RDN . Se i valori RDN sono impostati, la funzione confronta gli attributi dell'oggetto in un certificato con elementi della matrice di CERT_RDN_ATTR in questa struttura CERT_RDN . I confronti eseguano l'iterazione degli attributi CERT_RDN_ATTR cercando una corrispondenza con gli attributi del soggetto del certificato.
Se il membro pszObjId di CERT_RDN_ATTR è NULL, l'identificatore dell'oggetto attributo viene ignorato. Se il membro dwValueType di CERT_RDN_ATTR è CERT_RDN_ANY_TYPE, il tipo di valore viene ignorato. Se il membro pbData di CERT_RDN_VALUE_BLOB è NULL, qualsiasi valore corrisponde a . Attualmente è supportata solo una corrispondenza esatta con distinzione tra maiuscole e minuscole. Per informazioni sulle opzioni Unicode, vedere Osservazioni. Quando questi valori vengono impostati, la ricerca è limitata ai certificati il cui tipo di codifica corrisponde a dwMsgAndCertEncodingType. |
|
Cerca un certificato con un emittente e un numero di serie che corrispondono all'emittente e al numero di serie nella struttura CERT_INFO . |
|
Cerca un certificato con una corrispondenza esatta dell'intero nome del soggetto con il nome nella struttura CERT_NAME_BLOB . La ricerca è limitata ai certificati che corrispondono al valore di dwMsgAndCertEncodingType. |
|
Cerca un certificato contenente la stringa del nome del soggetto specificata. Il membro soggetto del certificato viene convertito in una stringa di nome del tipo appropriato usando il formato appropriato di CertNameToStr formattato come CERT_SIMPLE_NAME_STR. Viene quindi eseguita una sottostringa senza distinzione tra maiuscole e minuscole all'interno di una stringa. Quando questo valore viene impostato, la ricerca è limitata ai certificati il cui tipo di codifica corrisponde a dwMsgAndCertEncodingType. |
pvFindPara
Punta a un elemento di dati o a una struttura da utilizzare con il tipo di ricerca indicato dal valore di dwFindType.
Commenti
Il membro dwFindFlags viene usato per modificare i criteri di alcuni tipi di ricerca.
Il valore dwFindFlags di CERT_UNICODE_IS_RDN_ATTRS_FLAG viene usato solo con i valori CERT_FIND_SUBJECT_ATTR e CERT_FIND_ISSUER_ATTR per dwFindType. CERT_UNICODE_IS_RDN_ATTRS_FLAG deve essere impostato se la struttura CERT_RDN_ATTR a cui punta pvFindPara è stata inizializzata con stringhe Unicode. Prima di eseguire un confronto, la stringa da confrontare viene convertita usando X509_UNICODE_NAME per fornire confronti Unicode.
I valori dwFindFlags seguenti vengono usati solo con il valore CERT_FIND_ENKEY_USAGE per dwFindType.
Valore | Significato |
---|---|
CERT_FIND_OR_ENHKEY_USAGE_FLAG | I criteri di ricerca possono essere modificati impostando uno o più flag. Per impostazione predefinita, se il membro pszUsageIdentifier della struttura CERT_ENHKEY_USAGE a cui punta pvFindPara deve corrispondere, ogni identificatore deve essere corrispondente per soddisfare i criteri di ricerca. Tuttavia, se CERT_FIND_OR_ENHKEY_USAGE_FLAG è impostato, è possibile eseguire una corrispondenza a tutti gli identificatori combinati usando un'operazione OR bit per bit; pertanto, la corrispondenza di uno degli identificatori è sufficiente. |
CERT_FIND_OPTIONAL_ENHKEY_USAGE_FLAG | Quando questo flag viene impostato, oltre alle corrispondenze consuete, qualsiasi certificato che non ha né l'estensione di utilizzo chiave avanzata né la proprietà di utilizzo chiave avanzata soddisfa i criteri di ricerca. |
CERT_FIND_NO_ENHKEY_USAGE_FLAG | Quando questo flag è impostato, solo i certificati che non hanno né un utilizzo chiave avanzato né la proprietà di utilizzo chiave avanzata corrispondono. Questa impostazione del flag ha la precedenza su pvFindPara su NULL. |
CERT_FIND_VALID_ENHKEY_USAGE_FLAG | Quando questo flag è impostato, la funzione corrisponde solo ai certificati validi per l'utilizzo specificato. Per impostazione predefinita, per trovare una corrispondenza, un certificato deve essere valido per tutti gli utilizzi.
CERT_FIND_OR_ENHKEY_USAGE_FLAG può essere impostato anche se il certificato deve essere valido solo per uno degli utilizzi specificati. Si noti che viene chiamato CertGetValidUsages per ottenere l'elenco di usi validi per il certificato. Solo CERT_FIND_OR_ENHKEY_USAGE_FLAG possono essere applicati quando è impostata CERT_FIND_VALID_ENHKEY_USAGE_FLAG. |
CERT_FIND_EXT_ONLY_ENHKEY_USAGE_FLAG | Quando questo flag è impostato, il processo di corrispondenza prevede solo gli identificatori di utilizzo dell'estensione. Se pvFindPara è NULL o il membro cUsageIdentifier della struttura CERT_ENHKEY_USAGE a cui punta pvFindPara è zero, qualsiasi certificato con un'estensione di utilizzo chiave avanzata è una corrispondenza. Se CERT_FIND_OPTIONAL_ENHKEY_USAGE_FLAG è impostato anche, anche qualsiasi certificato senza l'estensione di utilizzo chiave avanzata corrisponde a . Se CERT_FIND_NO_ENHKEY_USAGE_FLAG è impostato anche, vengono corrispondenti solo i certificati senza l'estensione di utilizzo chiavi avanzata. |
CERT_FIND_EXT_PROP_ENHKEY_USAGE_FLAG | Quando questo flag è impostato, il processo di corrispondenza prevede solo gli identificatori di utilizzo che sono proprietà. Se pvFindPara è NULL o cUsageIdentifier è impostato su zero, qualsiasi certificato con una proprietà di utilizzo chiave avanzata è una corrispondenza. Se viene impostata anche CERT_FIND_OPTIONAL_ENHKEY_USAGE_FLAG, anche qualsiasi certificato senza la proprietà di utilizzo chiave avanzata corrisponde a . Se CERT_FIND_NO_ENHKEY_USAGE_FLAG è impostato, vengono corrispondenti solo i certificati senza la proprietà di utilizzo chiave avanzata. |
CERT_CASE_INSENSITIVE_IS_RDN_ATTRS_FLAG | Usato solo con valori CERT_FIND_SUBJECT_ATTR e CERT_FIND_ISSUER-ATTR di dwFindType. Per impostazione predefinita, viene eseguita una corrispondenza esatta con distinzione tra maiuscole e minuscole. Se questo flag è impostato, la corrispondenza non fa distinzione tra maiuscole e minuscole. |
Requisiti
Client minimo supportato | Windows XP [solo app desktop] |
Server minimo supportato | Windows Server 2003 [solo app desktop] |
Intestazione | wincrypt.h |