CERT_STORE_PROV_FIND_INFO-Struktur (wincrypt.h)
Die CERT_STORE_PROV_FIND_INFO-Struktur wird von vielen Rückruffunktionen des Speicheranbieters verwendet. Sie enthält Suchkriterien zum Suchen eines Zertifikats, einer Zertifikatsperrliste (Certificate Revocation List , CRL) oder einer Zertifikatvertrauensliste (Certificate Trust List , CTL) in einem Zertifikatspeicher.
Syntax
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;
Member
cbSize
Größe der Struktur.
dwMsgAndCertEncodingType
Gibt den Codierungstyp an, der für Nachrichten und Zertifikate verwendet wird. Die Zertifikat - und Nachrichtencodierungstypen können mit einem bitweisen OR-Vorgang kombiniert werden. Hier sind die definierten Codierungstypen:
- X509_ASN_ENCODING
- PKCS_7_ASN_ENCODING
dwFindFlags
Wird mit einigen dwFindType-Werten verwendet, um die Suchkriterien zu ändern. Für die meisten dwFindType-Werte wird dwFindFlags nicht verwendet und sollte auf Null festgelegt werden.
dwFindType
Gibt den Suchtyp an. Der Suchtyp bestimmt den Datentyp, den Inhalt und die Verwendung von pvFindPara. Die derzeit definierten dwFindType-Werte und der für pvFindPara jeweils erforderliche Datentyp sind wie folgt.
Wert | Bedeutung |
---|---|
|
Es werden keine Suchkriterien verwendet. Gibt das nächste Zertifikat im Speicher zurück. |
|
Sucht das zertifikat, das durch den angegebenen CERT_ID identifiziert wurde. |
|
Sucht nach einem Zertifikat mit einer szOID_ENHANCED_KEY_USAGE-Erweiterung oder einem CERT_CTL_PROP_ID, das dem pszUsageIdentifier-Member der CTL_USAGE-Struktur entspricht. |
|
Sucht im Speicher nach einem Zertifikat mit einer erweiterten Schlüsselverwendungserweiterung oder einer erweiterten Schlüsselverwendungseigenschaft und einem Verwendungsbezeichner, der dem pszUsageIdentifier-Member in der CERT_ENHKEY_USAGE-Struktur entspricht.
Ein Zertifikat verfügt über eine erweiterte Schlüsselverwendungserweiterung, wenn es über eine CERT_EXTENSION-Struktur verfügt, wobei das pszObjId-Element auf szOID_ENHANCED_KEY_USAGE festgelegt ist. Ein Zertifikat verfügt über eine erweiterte Schlüsselverwendungseigenschaft, wenn sein CERT_ENHKEY_USAGE_PROP_ID-Bezeichner festgelegt ist. Wenn pvFindParaNULL ist oder das cUsageIdentifier-Element von CERT_ENHKEY_USAGE null ist, erfüllt jedes Zertifikat, das entweder über die erweiterte Schlüsselverwendungserweiterung oder die Eigenschaft der erweiterten Schlüsselverwendung verfügt, die Auswahlkriterien. Wenn pvFindParaNULL ist oder das cUsageIdentifier-Element der CERT_ENHKEY_USAGE-Struktur 0 ist, ist jedes Zertifikat mit erweiterter Schlüsselverwendung eine Übereinstimmung. Wenn CERT_FIND_OPTIONAL_ENHKEY_USAGE_FLAG in dwFindFlags festgelegt ist, werden Auch Zertifikate ohne schlüsselverwendungserweiterung oder -eigenschaft übereinstimmen. Das Festlegen dieses Flags hat Vorrang vor dem Übergeben von NULL in pvFindPara. Wenn CERT_FIND_EXT_ONLY_ENHKEY_USAGE_FLAG festgelegt ist, erfolgt eine Übereinstimmung nur für die Schlüsselverwendungserweiterung. Informationen zu Flagänderungen an Suchkriterien finden Sie unter Hinweise. |
|
Sucht nach einem Zertifikat, das genau mit dem angegebenen Zertifikatkontext übereinstimmt. |
|
Sucht nach einem Zertifikat mit einem SHA1-Hash, der dem Hash in der CRYPT_HASH_BLOB-Struktur entspricht. |
|
Suchen Sie nach einem Zertifikat mit angegebenen Ausstellerattributen, die mit Attributen in der CERT_RDN-Struktur übereinstimmen. Wenn diese Werte festgelegt sind, vergleicht die Funktion Attribute des Ausstellers in einem Zertifikat mit Elementen des CERT_RDN_ATTR Arrays in dieser CERT_RDN-Struktur . Vergleiche durchlaufen die CERT_RDN_ATTR Attribute, die nach einer Übereinstimmung mit den Ausstellerattributen des Zertifikats suchen.
Wenn das pszObjId-Element von CERT_RDN_ATTRNULL ist, wird der Attributobjektbezeichner ignoriert. Wenn das dwValueType-Element von CERT_RDN_ATTR CERT_RDN_ANY_TYPE ist, wird der Werttyp ignoriert. Wenn das pbData-Element von CERT_RDN_VALUE_BLOBNULL ist, ist jeder Wert eine Übereinstimmung. Derzeit wird nur eine genaue Übereinstimmung zwischen Groß-/Kleinschreibung unterstützt. Informationen zu Unicode-Optionen finden Sie unter Hinweise. Wenn diese Werte festgelegt werden, ist die Suche auf Zertifikate beschränkt, deren Codierungstyp dwMsgAndCertEncodingType entspricht. |
|
Suchen Sie nach einem Zertifikat mit einer exakten Übereinstimmung des gesamten Ausstellernamens mit dem Namen in CERT_NAME_BLOB. Die Suche ist auf Zertifikate beschränkt, die mit dwMsgAndCertEncodingType übereinstimmen. |
|
Sucht nach einem Zertifikat mit einem Aussteller, der dem Aussteller in CERT_CONTEXT entspricht.
Verwenden Sie nicht die CertFindCertificateInStore-Funktion mit diesem Wert, sondern die CertGetCertificateChain-Funktion . |
|
Suchen Sie nach einem Zertifikat, das die angegebene Ausstellernamenzeichenfolge enthält. Das Ausstellermitglied des Zertifikats wird in eine Namenszeichenfolge des entsprechenden Typs konvertiert, wobei die entsprechende Form von CertNameToStr als CERT_SIMPLE_NAME_STR formatiert wird. Anschließend wird eine Unterzeichenfolgenübereinstimmung zwischen Groß- und Kleinschreibung durchgeführt. Wenn dieser Wert festgelegt wird, ist die Suche auf Zertifikate beschränkt, deren Codierungstyp dwMsgAndCertEncodingType entspricht. |
|
Sucht nach einem Zertifikat mit einer CERT_KEY_IDENTIFIER_PROP_ID-Eigenschaft, die dem Schlüsselbezeichner in CRYPT_HASH_BLOB entspricht. |
|
Sucht nach einem Zertifikat mit einer CERT_KEY_SPEC_PROP_ID-Eigenschaft, die der Schlüsselspezifikation in pvFindPara entspricht. |
|
Sucht nach einem Zertifikat mit einem MD5-Hash, der dem Hash in CRYPT_HASH_BLOB entspricht. |
|
Sucht nach einem Zertifikat mit einer Eigenschaft, die dem eigenschaftenbezeichner entspricht, der vom DWORD in pvFindPara angegeben wird. |
|
Sucht nach einem Zertifikat mit einem öffentlichen Schlüssel, der dem öffentlichen Schlüssel in der CERT_PUBLIC_KEY_INFO-Struktur entspricht. |
|
Sucht nach einem Zertifikat mit einem SHA1-Hash, der dem Hash in der CRYPT_HASH_BLOB-Struktur entspricht. |
|
Sucht nach einem Zertifikat mit einem Signaturhash, der dem Signaturhash in der CRYPT_HASH_BLOB-Struktur entspricht. |
|
Sucht nach einem Zertifikat mit angegebenen Antragstellerattributen, die mit Attributen in der CERT_RDN-Struktur übereinstimmen. Wenn RDN-Werte festgelegt sind, vergleicht die Funktion Attribute des Antragstellers in einem Zertifikat mit Elementen des CERT_RDN_ATTR Arrays in dieser CERT_RDN Struktur. Vergleiche durchlaufen die CERT_RDN_ATTR Attribute, die nach einer Übereinstimmung mit den Attributen des Zertifikatsubjekts suchen.
Wenn das pszObjId-Element von CERT_RDN_ATTRNULL ist, wird der Attributobjektbezeichner ignoriert. Wenn das dwValueType-Element von CERT_RDN_ATTR CERT_RDN_ANY_TYPE ist, wird der Werttyp ignoriert. Wenn das pbData-Element von CERT_RDN_VALUE_BLOBNULL ist, ist jeder Wert eine Übereinstimmung. Derzeit wird nur eine genaue Übereinstimmung zwischen Groß-/Kleinschreibung unterstützt. Informationen zu Unicode-Optionen finden Sie unter Hinweise. Wenn diese Werte festgelegt werden, ist die Suche auf Zertifikate beschränkt, deren Codierungstyp dwMsgAndCertEncodingType entspricht. |
|
Sucht nach einem Zertifikat mit einem Aussteller und einer Seriennummer, die dem Aussteller und der Seriennummer in der CERT_INFO Struktur entsprechen. |
|
Sucht nach einem Zertifikat mit einer exakten Übereinstimmung des gesamten Antragstellernamens mit dem Namen in der CERT_NAME_BLOB-Struktur . Die Suche ist auf Zertifikate beschränkt, die dem Wert von dwMsgAndCertEncodingType entsprechen. |
|
Sucht nach einem Zertifikat, das die angegebene Antragstellernamenzeichenfolge enthält. Das Antragstellermember des Zertifikats wird in eine Namenszeichenfolge des entsprechenden Typs konvertiert, wobei die entsprechende Form von CertNameToStr als CERT_SIMPLE_NAME_STR formatiert wird. Anschließend wird eine Unterzeichenfolgenübereinstimmung zwischen Groß- und Kleinschreibung durchgeführt. Wenn dieser Wert festgelegt wird, ist die Suche auf Zertifikate beschränkt, deren Codierungstyp dwMsgAndCertEncodingType entspricht. |
pvFindPara
Zeigt auf ein Datenelement oder eine Struktur, die mit dem suchtyp verwendet werden soll, der durch den Wert von dwFindType angegeben wird.
Hinweise
Der dwFindFlags-Member wird verwendet, um die Kriterien einiger Suchtypen zu ändern.
Der dwFindFlags-Wert von CERT_UNICODE_IS_RDN_ATTRS_FLAG wird nur mit den werten CERT_FIND_SUBJECT_ATTR und CERT_FIND_ISSUER_ATTR für dwFindType verwendet. CERT_UNICODE_IS_RDN_ATTRS_FLAG muss festgelegt werden, wenn die CERT_RDN_ATTR Struktur, auf die von pvFindPara verwiesen wird, mit Unicode-Zeichenfolgen initialisiert wurde. Bevor ein Vergleich durchgeführt wird, wird die abzugleichende Zeichenfolge mithilfe von X509_UNICODE_NAME konvertiert, um Unicode-Vergleiche bereitzustellen.
Die folgenden dwFindFlags-Werte werden nur mit dem CERT_FIND_ENKEY_USAGE Wert für dwFindType verwendet.
Wert | Bedeutung |
---|---|
CERT_FIND_OR_ENHKEY_USAGE_FLAG | Die Suchkriterien können durch Festlegen eines oder mehrerer Flags geändert werden. Wenn das pszUsageIdentifier-Element der CERT_ENHKEY_USAGE Struktur, auf die von pvFindPara verwiesen wird, übereinstimmen soll, muss standardmäßig jeder Bezeichner abgeglichen werden, um die Suchkriterien zu erfüllen. Wenn jedoch CERT_FIND_OR_ENHKEY_USAGE_FLAG festgelegt ist, kann eine Übereinstimmung mit allen Bezeichnern hergestellt werden, die mithilfe eines bitweisen OR-Vorgangs kombiniert werden. Daher ist es ausreichend, einen der Bezeichner zu übereinstimmen. |
CERT_FIND_OPTIONAL_ENHKEY_USAGE_FLAG | Wenn dieses Flag festgelegt ist, erfüllt zusätzlich zu den üblichen Übereinstimmungen jedes Zertifikat, das weder die erweiterte Schlüsselverwendungserweiterung noch die Erweiterte Schlüsselverwendungseigenschaft hat, die Suchkriterien. |
CERT_FIND_NO_ENHKEY_USAGE_FLAG | Wenn dieses Flag festgelegt ist, werden nur die Zertifikate übereinstimmen, die weder über eine erweiterte Schlüsselverwendung noch über die Eigenschaft der erweiterten Schlüsselverwendung verfügen. Diese Flageinstellung hat Vorrang vor pvFindPara als NULL. |
CERT_FIND_VALID_ENHKEY_USAGE_FLAG | Wenn dieses Flag festgelegt ist, entspricht die Funktion nur den Zertifikaten, die für die angegebene Verwendung gültig sind. Standardmäßig muss ein Zertifikat für alle Verwendungen gültig sein, damit es übereinstimmen kann.
CERT_FIND_OR_ENHKEY_USAGE_FLAG kann auch festgelegt werden, wenn das Zertifikat nur für eine der angegebenen Verwendungen gültig sein muss. Beachten Sie, dass CertGetValidUsages aufgerufen wird, um die Liste der gültigen Verwendungen für das Zertifikat abzurufen. Nur CERT_FIND_OR_ENHKEY_USAGE_FLAG kann auch angewendet werden, wenn CERT_FIND_VALID_ENHKEY_USAGE_FLAG festgelegt ist. |
CERT_FIND_EXT_ONLY_ENHKEY_USAGE_FLAG | Wenn dieses Flag festgelegt ist, umfasst der Abgleichsprozess nur die Erweiterungsverwendungsbezeichner. Wenn pvFindParaNULL ist oder das cUsageIdentifier-Element der CERT_ENHKEY_USAGE Struktur, auf die von pvFindPara verwiesen wird, null ist, ist jedes Zertifikat mit einer erweiterten Schlüsselverwendungserweiterung eine Übereinstimmung. Wenn auch CERT_FIND_OPTIONAL_ENHKEY_USAGE_FLAG festgelegt ist, ist jedes Zertifikat ohne erweiterte Schlüsselverwendungserweiterung ebenfalls eine Übereinstimmung. Wenn auch CERT_FIND_NO_ENHKEY_USAGE_FLAG festgelegt ist, werden nur Zertifikate ohne erweiterte Schlüsselverwendungserweiterung übereinstimmen. |
CERT_FIND_EXT_PROP_ENHKEY_USAGE_FLAG | Wenn dieses Flag festgelegt ist, umfasst der Abgleichsprozess nur Nutzungsbezeichner, die Eigenschaften sind. Wenn pvFindParaNULL oder cUsageIdentifier auf Null festgelegt ist, ist jedes Zertifikat mit einer erweiterten Schlüsselverwendungseigenschaft eine Übereinstimmung. Wenn CERT_FIND_OPTIONAL_ENHKEY_USAGE_FLAG ebenfalls festgelegt ist, ist auch jedes Zertifikat ohne die Erweiterte Schlüsselverwendungseigenschaft eine Übereinstimmung. Wenn CERT_FIND_NO_ENHKEY_USAGE_FLAG festgelegt ist, werden nur Zertifikate ohne die Erweiterte Schlüsselverwendungseigenschaft übereinstimmen. |
CERT_CASE_INSENSITIVE_IS_RDN_ATTRS_FLAG | Wird nur mit CERT_FIND_SUBJECT_ATTR- und CERT_FIND_ISSUER-ATTR-Werten von dwFindType verwendet. Standardmäßig wird eine genaue Übereinstimmung zwischen Groß- und Kleinschreibung vorgenommen. Wenn dieses Flag festgelegt ist, wird bei der Übereinstimmung die Groß-/Kleinschreibung nicht beachtet. |
Anforderungen
Unterstützte Mindestversion (Client) | Windows XP [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2003 [nur Desktop-Apps] |
Kopfzeile | wincrypt.h |