Fonction CertNameToStrW (wincrypt.h)
La fonction CertNameToStr convertit un nom encodé dans une structure CERT_NAME_BLOB en chaîne de caractères terminée par null.
La représentation sous forme de chaîne suit les spécifications de nom unique dans RFC 1779. Les exceptions à cette règle sont répertoriées dans la section Remarques ci-dessous.
Syntaxe
DWORD CertNameToStrW(
[in] DWORD dwCertEncodingType,
[in] PCERT_NAME_BLOB pName,
[in] DWORD dwStrType,
[out] LPWSTR psz,
[in] DWORD csz
);
Paramètres
[in] dwCertEncodingType
Le type d’encodage de certificat utilisé pour encoder le nom. Le
Ce paramètre peut être le type d’encodage de certificat actuellement défini ci-dessous.
Valeur | Signification |
---|---|
|
Spécifie l’encodage de certificat X.509. |
[in] pName
Pointeur vers la structure CERT_NAME_BLOB à convertir.
[in] dwStrType
Ce paramètre spécifie le format de la chaîne de sortie. Ce paramètre spécifie également d’autres options pour le contenu de la chaîne.
Ce paramètre peut être l’une des valeurs suivantes.
Valeur | Signification |
---|---|
|
Tous les identificateurs d’objet (OID) sont ignorés. CERT_RDN entrées sont séparées par une virgule suivie d’un espace (, ). Plusieurs attributs d’un CERT_RDN sont séparés par un signe plus entouré d’espaces (+ ), par exemple, Microsoft, Kim Abercrombie + Programmer. |
|
Les OID sont inclus avec un séparateur de signe égal (=) de leur valeur d’attribut. CERT_RDN entrées sont séparées par une virgule suivie d’un espace (, ). Plusieurs attributs d’une CERT_RDN sont séparés par un signe plus suivi d’un espace (+ ). |
|
Les OID sont convertis en noms de clés X.500 ; sinon, ils sont identiques à CERT_OID_NAME_STR. Si un OID n’a pas de nom X.500 correspondant, l’OID est utilisé avec un préfixe d’OID.
La valeur RDN est entre guillemets s’il contient un espace blanc de début ou de fin ou l’un des caractères suivants :
|
Les options suivantes peuvent également être combinées avec la valeur ci-dessus pour spécifier des options supplémentaires pour la chaîne.
[out] psz
Pointeur vers une mémoire tampon de caractères qui reçoit la chaîne retournée. La taille de cette mémoire tampon est spécifiée dans le paramètre csz.
[in] csz
Taille, en caractères, de la mémoire tampon de psz. La taille doit inclure le caractère null de fin.
Valeur de retour
Retourne le nombre de caractères convertis, y compris le caractère null de fin.
Si psz est NULL ou csz est égal à zéro, retourne la taille requise de la chaîne de destination.
Remarques
Si
Nous vous recommandons d’utiliser des rdn multicomponents (par exemple, CN=James+O=Microsoft) pour éviter les problèmes de classement possibles lors du décodage. Au lieu de cela, envisagez d’utiliser des RDN à valeur unique (par exemple, CN=James, O=Microsoft).
La représentation sous forme de chaîne suit les spécifications de nom unique dans RFC 1779 à l’exception des écarts décrits dans la liste suivante.
- Les noms qui contiennent des guillemets sont placés entre guillemets doubles.
- Les chaînes vides sont placées entre guillemets doubles.
- Les chaînes qui contiennent des espaces consécutifs ne sont pas placées entre guillemets.
- Les valeurs RDN (Relative Distinguished Name) de type CERT_RDN_ENCODED_BLOB ou CERT_RDN_OCTET_STRING sont mises en forme en hexadécimal.
- Si un OID n’a pas de nom X.500 correspondant, le préfixe « OID » est utilisé avant OID.
- Les valeurs RDN sont placées entre guillemets doubles (au lieu de « \ ») s’ils contiennent un espace blanc de début, un espace blanc de fin ou l’un des caractères suivants :
- Virgule (,)
- Signe plus (+)
- Signe égal (=)
- Marque de pouce (")
- Barre oblique inverse (/)
- Inférieur au signe (<)
- Supérieur au signe (>)
- Signe numérique (#)
- Point-virgule (;)
- Le nom de clé X.500 pour stateOrProvinceName (2.5.4.8) est « S ». Cette valeur est différente du nom de clé RFC 1779 X.500 (« ST »).
Clé | Chaîne d’identificateur d’objet |
---|---|
E | 1.2.840.113549.1.9.1 |
T | 2.5.4.12 |
G | 2.5.4.42 |
Je | 2.5.4.43 |
SN | 2.5.4.4 |
Exemples
Pour obtenir un exemple qui utilise cette fonction, consultez
exemple de programme C : conversion de noms de certificats en ASN.1 et retour.
Note
L’en-tête wincrypt.h définit CertNameToStr 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 |