Fonction CertGetNameStringW (wincrypt.h)
La fonction
Syntaxe
DWORD CertGetNameStringW(
[in] PCCERT_CONTEXT pCertContext,
[in] DWORD dwType,
[in] DWORD dwFlags,
[in] void *pvTypePara,
[out] LPWSTR pszNameString,
[in] DWORD cchNameString
);
Paramètres
[in] pCertContext
Pointeur vers un contexte de certificat CERT_CONTEXT qui inclut un nom d’objet et d’émetteur à convertir.
[in] dwType
DWORD indiquant comment le nom doit être trouvé et comment la sortie doit être mise en forme.
Valeur | Signification |
---|---|
|
Si le certificat a une extension de nom de remplacement d’objet ou un autre nom de l’émetteur, utilise le premier choix rfc822Name. Si aucun choix rfc822Name n’est trouvé dans l’extension, utilise le champ Nom de l’objet pour l’E-mail OID. Si rfc822Name ou email OID est trouvé, utilise la chaîne. Sinon, retourne une chaîne vide (le nombre de caractères retourné est égal à 1). pvTypePara n’est pas utilisé et est défini sur NULL. |
|
Convertit l’objet BLOB du nom de l’objet en appelant CertNameToStr. |
|
pvTypePara pointe vers un identificateur d’objet (OID) spécifiant l’attribut de nom à renvoyer. Par exemple, si pvTypePara est szOID_COMMON_NAME, utilise le membre Nom de l’objet. Si le membre Nom de l’objet est vide et que le certificat a une extension de nom de remplacement de l’objet, utilise le premier choix directoryName. |
|
Effectue une itération dans la liste suivante d’attributs de nom et utilise le nom de l’objet ou l’extension de nom de l’autre objet pour la première occurrence de : szOID_COMMON_NAME, szOID_ORGANIZATIONAL_UNIT_NAME, szOID_ORGANIZATION_NAME ou szOID_RSA_emailAddr.
Si l’un de ces attributs est introuvable, utilise l’extension Subject Alternative Name pour un choix rfc822Name. S’il n’y a toujours aucune correspondance, utilise le premier attribut. pvTypePara n’est pas utilisé et est défini sur NULL. |
|
Vérifie le certificat d’une propriété CERT_FRIENDLY_NAME_PROP_ID. Si le certificat possède cette propriété, elle est retournée. Si le certificat n’a pas la propriété, la CERT_NAME_SIMPLE_DISPLAY_TYPE est retournée. |
|
Si le certificat a une extension de nom de remplacement d’objet pour l’émetteur, l’autre nom de l’émetteur, recherchez le premier choix DNSName.
Si le choix DNSName est introuvable dans l’extension, recherchez le champ Nom de l’objet pour l’OID CN, « 2.5.4.3 ». Si dnsName ou CN OID est trouvé, retournez la chaîne. Sinon, retournez une chaîne vide. |
|
Si le certificat a une extension de nom de remplacement objet pour l’émetteur, l’autre nom de l’émetteur, recherchez le premier choix d’URL. Si le choix de l’URL est trouvé, retournez la chaîne. Sinon, retournez une chaîne vide. |
|
Si le certificat a une extension de nom de remplacement d’objet, recherchez les options OtherName à la recherche d’un pszObjId == szOID_NT_PRINCIPAL_NAME, (« 1.3.6.1.4.1.311.20.2.3 »).
Si l’OID UPN est trouvé, décodez l’objet BLOB en tant que X509_UNICODE_ANY_STRING et retournez la chaîne décodée. Sinon, retournez une chaîne vide. |
[in] dwFlags
Indique le type de traitement nécessaire.
Valeur | Signification |
---|---|
|
Acquiert le nom de l’émetteur. S’il n’est pas défini, acquiert le nom de l’objet. |
|
Ignore la tentative initiale par défaut de décoder la valeur en tant qu’UTF8 et décode en tant que caractères 8 bits. |
|
Si le paramètre dwType est défini sur CERT_NAME_DNS_TYPE, tous les noms applicables sont retournés pour la valeur DNS spécifiée. S’il n’existe aucun nom DNS, mais qu’il existe un composant CN dans l’objet, le CN est retourné à la place. S’il existe un cn et un nom DNS, seuls les noms DNS sont retournés. Cela imite la stratégie de création de chaîne SSL. Si vous définissez cet indicateur pour un type de nom autre que CERT_NAME_DNS_TYPE, cette fonction retourne une chaîne vide terminée par null.
Windows 8 et Windows Server 2012 : prise en charge de cet indicateur commence. |
|
Cet indicateur permet le décodage de chaînes
|
[in] pvTypePara
Pointeur vers une
[out] pszNameString
Pointeur vers une mémoire tampon allouée pour recevoir la chaîne retournée. Si
Si
[in] cchNameString
Taille, en caractères, allouée pour la chaîne retournée. La taille doit inclure la fin caractère NULL.
Valeur de retour
Retourne le nombre de caractères convertis, y compris le caractère zéro de fin. Si pszNameString est null ou cchNameString est égal à zéro, retourne la taille requise de la chaîne de destination (y compris le caractère de fin NULL). Si le type de nom spécifié est introuvable, retourne une chaîne vide null-terminated vide avec un nombre de caractères retourné de 1.
Remarques
Note
L’en-tête wincrypt.h définit CertGetNameString comme alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. Le mélange de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Windows XP [applications de bureau | Applications UWP] |
serveur minimum pris en charge | Windows Server 2003 [applications de bureau | Applications UWP] |
plateforme cible | Windows |
d’en-tête | wincrypt.h |
bibliothèque | Crypt32.lib |
DLL | Crypt32.dll |