Freigeben über


CertIsRDNAttrsInCertificateName-Funktion (wincrypt.h)

Die CertIsRDNAttrsInCertificateName-Funktion vergleicht die Attribute im Zertifikatnamen mit dem angegebenen CERT_RDN , um zu bestimmen, ob alle Attribute dort enthalten sind. Der Vergleich durchläuft die CERT_RDN und sucht in einem der CERT_RDNs des Zertifikatnamens nach einer Attributvergleichung.

Syntax

BOOL CertIsRDNAttrsInCertificateName(
  [in] DWORD           dwCertEncodingType,
  [in] DWORD           dwFlags,
  [in] PCERT_NAME_BLOB pCertName,
  [in] PCERT_RDN       pRDN
);

Parameter

[in] dwCertEncodingType

Gibt den verwendeten Codierungstyp an. Es ist immer akzeptabel, sowohl den Zertifikat- als auch den Nachrichtencodierungstyp anzugeben, indem sie mit einem bitweisen OR-Vorgang kombiniert werden, wie im folgenden Beispiel gezeigt:

X509_ASN_ENCODING | PKCS_7_ASN_ENCODING

Derzeit definierte Codierungstypen sind:

  • X509_ASN_ENCODING
  • PKCS_7_ASN_ENCODING

[in] dwFlags

CERT_UNICODE_IS_RDN_ATTRS_FLAG muss festgelegt werden, wenn der pRDN mit Unicode-Zeichenfolgen wie in CryptEncodeObject initialisiert wurde, wobei lpszStructType auf X509_UNICODE_NAME festgelegt wurde.

CERT_CASE_INSENSITIVE_IS_RDN_ATTRS_FLAG ist so festgelegt, dass eine Übereinstimmung ohne Berücksichtigung der Groß-/Kleinschreibung erfolgt. Andernfalls wird eine genaue Übereinstimmung zwischen Groß- und Kleinschreibung durchgeführt.

[in] pCertName

Ein Zeiger auf eine CRYPT_INTEGER_BLOB , die den codierten Antragsteller- oder Ausstellernamen enthält.

[in] pRDN

Array von CERT_RDN Strukturen, die die attribute enthalten, die im Namen zu finden sind. Der CERT_RDN_ATTR Member der CERT_RDN-Struktur verhält sich gemäß den folgenden Regeln.

  • Wenn pszObjIdNULL ist, wird der Attributobjektbezeichner (OID) ignoriert.
  • Wenn dwValueType CERT_RDN_ANY_TYPE ist, wird der Werttyp ignoriert.
  • Wenn das pbData-Element von ValueNULL ist, kann jeder Wert eine Übereinstimmung sein.

Rückgabewert

Wenn die Funktion erfolgreich ist und sich alle RDN-Werte im angegebenen CERT_RDN im Zertifikatnamen befinden, ist der Rückgabewert ungleich NULL (TRUE).

Wenn die Funktion fehlschlägt oder rdN-Werte in der angegebenen CERT_RDN vorhanden sind, die nicht im Zertifikatnamen enthalten sind, ist der Rückgabewert null (FALSE). Rufen Sie GetLastError auf, um erweiterte Fehlerinformationen zu erhalten.

In der folgenden Tabelle sind einige mögliche Fehlercodes aufgeführt.

Rückgabecode Beschreibung
CRYPT_E_NO_MATCH
Es wurden nicht alle Attribute gefunden und abgeglichen.
ERROR_FILE_NOT_FOUND
Ungültiger Zertifikatcodierungstyp. Derzeit wird nur X509_ASN_ENCODING unterstützt.
 

Wenn die Funktion fehlschlägt, gibt GetLastError möglicherweise einen ASN.1-Codierungs-/Decodierungsfehler ( Abstract Syntax Notation One ) zurück. Informationen zu diesen Fehlern finden Sie unter ASN.1-Rückgabewerte für Codierung/Decodierung.

Hinweise

Derzeit wird nur eine genaue Übereinstimmung zwischen Groß- und Kleinschreibung unterstützt.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows XP [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile wincrypt.h
Bibliothek Crypt32.lib
DLL Crypt32.dll

Weitere Informationen

CertFindCertificateInStore

Datenverwaltung-Funktionen