CertGetNameStringA-Funktion (wincrypt.h)
Die CertGetNameString--Funktion ruft den Antragsteller- oder Ausstellernamen aus einem Zertifikat CERT_CONTEXT Struktur ab und konvertiert ihn in eine NULL--terminated-Zeichenfolge.
Syntax
DWORD CertGetNameStringA(
[in] PCCERT_CONTEXT pCertContext,
[in] DWORD dwType,
[in] DWORD dwFlags,
[in] void *pvTypePara,
[out] LPSTR pszNameString,
[in] DWORD cchNameString
);
Parameter
[in] pCertContext
Ein Zeiger auf einen CERT_CONTEXT Zertifikatkontext, der einen Antragsteller- und Ausstellernamen enthält, der konvertiert werden soll.
[in] dwType
DWORD- angibt, wie der Name gefunden werden soll und wie die Ausgabe formatiert werden soll.
Wert | Bedeutung |
---|---|
|
Wenn das Zertifikat über eine Alternative Antragstellername-Erweiterung oder einen alternativen Ausstellernamen verfügt, wird die erste rfc822Name-Option verwendet. Wenn in der Erweiterung keine rfc822Name-Auswahl gefunden wird, wird das Feld "Antragstellername" für das E-Mail-OID verwendet. Wenn entweder rfc822Name oder das E-Mail-OID gefunden wird, wird die Zeichenfolge verwendet. Andernfalls wird eine leere Zeichenfolge zurückgegeben (zurückgegebene Zeichenanzahl ist 1). pvTypePara wird nicht verwendet und wird auf NULL-festgelegt. |
|
Konvertiert das BLOB des Antragstellernamens durch Aufrufen CertNameToStr-. pvTypePara verweist auf ein DWORD- mit dem dwStrType an CertNameToStrübergeben. Wenn das Feld "Antragstellername" leer ist und das Zertifikat über die Erweiterung "Alternativer Antragstellername" verfügt, wird die erste Auswahl des Verzeichnisnamens aus CertNameToStrverwendet. |
|
pvTypePara verweist auf einen Objektbezeichner (OID), der das zurückzugebende Namensattribute angibt. Wenn z. B. pvTypePara szOID_COMMON_NAME ist, wird das Element "Antragstellername" verwendet. Wenn das Element "Antragstellername" leer ist und das Zertifikat über eine Erweiterung des alternativen Antragstellernamens verfügt, wird die erste Verzeichnisname-Option verwendet. |
|
Durchlaufen Sie die folgende Liste der Namensattribute und verwendet die Erweiterung "Antragstellername" oder "Alternativer Antragstellername" für das erste Vorkommen von: szOID_COMMON_NAME, szOID_ORGANIZATIONAL_UNIT_NAME, szOID_ORGANIZATION_NAME oder szOID_RSA_emailAddr.
Wenn eines dieser Attribute nicht gefunden wird, verwendet die Erweiterung "Alternativer Antragstellername" für eine rfc822Name-Auswahl. Wenn noch keine Übereinstimmung vorhanden ist, wird das erste Attribut verwendet. pvTypePara wird nicht verwendet und wird auf NULL-festgelegt. |
|
Überprüft das Zertifikat auf eine CERT_FRIENDLY_NAME_PROP_ID-Eigenschaft. Wenn das Zertifikat über diese Eigenschaft verfügt, wird es zurückgegeben. Wenn das Zertifikat nicht über die Eigenschaft verfügt, wird die CERT_NAME_SIMPLE_DISPLAY_TYPE zurückgegeben. |
|
Wenn das Zertifikat über eine Alternative Antragstellername-Erweiterung für Aussteller verfügt, suchen Sie nach der ersten DNSName-Auswahl.
Wenn die DNSName-Auswahl in der Erweiterung nicht gefunden wird, durchsuchen Sie das Feld "Antragstellername" nach dem CN OID , "2.5.4.3". Wenn der DNSName oder CN OID gefunden wird, geben Sie die Zeichenfolge zurück. Geben Sie andernfalls eine leere Zeichenfolge zurück. |
|
Wenn das Zertifikat über eine Alternative Antragstellername-Erweiterung für Aussteller verfügt, suchen Sie nach der ersten URL-Auswahl. Wenn die URL-Auswahl gefunden wird, geben Sie die Zeichenfolge zurück. Geben Sie andernfalls eine leere Zeichenfolge zurück. |
|
Wenn das Zertifikat über die Erweiterung "Alternativer Antragstellername" verfügt, suchen Sie nach einer pszObjId == szOID_NT_PRINCIPAL_NAME ("1.3.6.1.4.1.311.20.2.3").
Wenn der UPN-OID gefunden wird, decodieren Sie das BLOB als X509_UNICODE_ANY_STRING, und geben Sie die decodierte Zeichenfolge zurück. Geben Sie andernfalls eine leere Zeichenfolge zurück. |
[in] dwFlags
Gibt den Typ der erforderlichen Verarbeitung an.
Wert | Bedeutung |
---|---|
|
Erwirbt den Namen des Ausstellers. Wenn sie nicht festgelegt ist, wird der Name des Betreffs erfasst. |
|
Überspringt den standardmäßigen anfänglichen Versuch, den Wert als UTF8 zu decodieren und als 8-Bit-Zeichen zu decodieren. |
|
Wenn der dwType Parameter auf CERT_NAME_DNS_TYPEfestgelegt ist, werden alle anwendbaren Namen für den angegebenen DNS-Wert zurückgegeben. Wenn kein DNS-Name vorhanden ist, aber eine CN-Komponente im Betreff vorhanden ist, wird stattdessen der CN zurückgegeben. Wenn ein CN und ein DNS-Name vorhanden sind, werden nur die DNS-Namen zurückgegeben. Dies imitiert die SSL-Chain-Gebäuderichtlinie. Wenn Sie dieses Kennzeichen für einen anderen Namenstyp als CERT_NAME_DNS_TYPEfestlegen, gibt diese Funktion eine leere Zeichenfolge mit Null-Beendigung zurück.
Windows 8 und Windows Server 2012: Unterstützung für dieses Flag beginnt. |
|
Dieses Flag ermöglicht die Decodierung von IA5String- Zeichenfolgen in Unicode-Zeichenfolgenwerte basierend auf dem dwType Parameterwert wie unten definiert:
|
[in] pvTypePara
Ein Zeiger auf eine DWORD-, die den dwStrType- enthält, oder einen Objektbezeichner (OID), der das Namensattribute angibt. Der typ, auf den verwiesen wird, wird durch den Wert von dwTypebestimmt.
[out] pszNameString
Ein Zeiger auf einen zugewiesenen Puffer, um die zurückgegebene Zeichenfolge zu empfangen. Wenn pszNameString- nicht NULL- ist und cchNameString- nicht null ist, ist pszNameString- eine NULL--terminated-Zeichenfolge.
Wenn CERT_NAME_SEARCH_ALL_NAMES_FLAG im parameter dwFlags angegeben wird und CERT_NAME_DNS_TYPE im dwType--Parameter festgelegt wird, enthält die zurückgegebene Zeichenfolge alle DNS-Namen, die angewendet werden. Jede Zeichenfolge in der Ausgabezeichenfolge wird null beendet, und die letzte Zeichenfolge wird doppelt null beendet. Wenn keine DNS-Namen gefunden werden, wird eine einzelne leere Zeichenfolge mit Null beendet.
[in] cchNameString
Größe der zurückgegebenen Zeichenfolge in Zeichen. Die Größe muss das beendende NULL-Zeichen Zeichen enthalten.
Rückgabewert
Gibt die Anzahl der konvertierten Zeichen zurück, einschließlich des endenden Nullzeichens. Wenn pszNameString-NULL- ist oder cchNameString null ist, wird die erforderliche Größe der Zielzeichenfolge zurückgegeben (einschließlich des endierenden NULL- Zeichens). Wenn der angegebene Namenstyp nicht gefunden wird, wird eine null--terminated leere Zeichenfolge mit einer zurückgegebenen Zeichenanzahl von 1 zurückgegeben.
Bemerkungen
Anmerkung
Der wincrypt.h-Header definiert CertGetNameString als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Windows XP [Desktop-Apps | UWP-Apps] |
mindestens unterstützte Server- | Windows Server 2003 [Desktop-Apps | UWP-Apps] |
Zielplattform- | Fenster |
Header- | wincrypt.h |
Library | Crypt32.lib |
DLL- | Crypt32.dll |