Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
CryptoAPI unterstützt die Codierung und Decodierung von Zertifikaten. CryptoAPI umfasst ein umfangreiches, flexibles System von Funktionen und C-Strukturen, die die Codierung und Decodierung auf verschiedene Weise ermöglichen. CryptoAPI unterstützt standardmäßige X.509-Zertifikatstruktur und ASN.1-Codierung ( Abstract Syntax Notation One ), um Die Interoperabilität mit anderen Systemen zu gewährleisten.
Eine Übersicht über codierte Daten finden Sie unter Codierte und decodierte Daten.
Zertifikatkontexte
Ein ZertifikatkontextCERT_CONTEXT ist eine C-Struktur, die ein codiertes Element, ein Handle zu einem Zertifikatspeicher, einen Zeiger auf das ursprüngliche codierte Zertifikatblob und einen Zeiger auf eine CERT_INFO C-Struktur enthält.
Die CERT_INFO-Struktur ist das Herzstück des Zertifikats. Sie enthält in direkter Form und in codierter Form alle grundlegenden Informationen im Zertifikat. Die folgende Abbildung zeigt die CERT_INFO-Struktur , in der alle codierten Member als schattiert angezeigt werden.
Die Member IssuerUniqueID und SubjectUniqueID sind Teil der X.509 Version 2-Zertifikatimplementierung, werden jedoch selten verwendet. Zertifikaterweiterungen in Version 3 ersetzen die Funktionalität dieser Member.
Wenn die in den codierten (schattierten) Membern Issuer und Subject enthaltenen Informationen benötigt werden, müssen diese Member decodiert werden. Verwenden Sie CryptDecodeObject , um diese Member zu decodieren. Die folgende Abbildung zeigt den Prozess der Decodierung eines dieser Member.
Im dargestellten Fall erstellt die CryptDecodeObject-Funktion eine CERT_NAME_INFO-Struktur , ein Array von CERT_RDN-Strukturen , ein entsprechendes Array von CERT_RDN_ATTR-Strukturen und eine Zeichenfolge, die den Namen enthält. Member der CERT_RDN_ATTR-Struktur bestimmen den Inhalt der Zeichenfolge. Wenn das pszObjId-Element beispielsweise 2.5.4.3 ist, enthält die Zeichenfolge einen allgemeinen Namen. Wenn es 2.5.4.10 ist, enthält die Zeichenfolge einen organization Namen. Eine Liste dieser Objektbezeichner (OIDs) finden Sie unter CERT_RDN_ATTR.
Das dwValueType-Element enthält Informationen zum Typ der Zeichenfolge. Wenn es sich um CERT_RDN_PRINTABLE_STRING handelt, enthält der Wertmember eine Zeichenfolge mit Bytebreite und Zeichenfolge mit 0-Endung. Wenn es CERT_RDN_UNICODE_STRING ist, ist die Zeichenfolge eine Zeichenfolge mit doppelter Breite (Wortgröße).
Einen ausführlichen Prozess zum Codieren und Decodieren von Zertifikaten finden Sie unter Codieren einer CERT_INFO-Struktur und Decodieren einer CERT_INFO-Struktur.