Types de chaînes
L’une des utilisations les plus courantes des chaînes dans une infrastructure à clé publique (PKI) consiste à créer un nom unique X.500. Par exemple, le nom d’objet d’une demande de certificat est créé en combinant une séquence de noms uniques relatifs, comme illustré dans l’exemple de syntaxe suivant.
---------------------------------------------------------------------
-- Breakdown of a subject name in a certificate request.
---------------------------------------------------------------------
CertificationRequestInfo ::= SEQUENCE
{
version CertificationRequestInfoVersion,
subject Name,
subjectPublicKeyInfo SubjectPublicKeyInfo,
attributes [0] IMPLICIT Attributes
}
Name ::= SEQUENCE OF RelativeDistinguishedName
RelativeDistinguishedName ::= SET OF AttributeTypeValue
AttributeTypeValue ::= SEQUENCE
{
type OBJECT IDENTIFIER,
value ANY
}
DirectoryString ::= CHOICE
{
teletexString TeletexString (SIZE (1..MAX)),
printableString PrintableString (SIZE (1..MAX)),
universalString UniversalString (SIZE (1..MAX)),
utf8String UTF8String (SIZE (1..MAX)),
bmpString BMPString (SIZE (1..MAX))
}
L’API d’inscription de certificat prend en charge les types de chaînes ASN.1 suivants.
BMPString
Balise d’encodage : 0x1E
Certreq.exe nom : UNICODE_STRING
Le plan multilingue de base (BMP) est un encodage de caractères qui englobe le premier plan du jeu de caractères universel (UCS). Il y a dix-sept avions numérotés de 0 à 16. BMP occupe le plan 0 et comprend 65 536 points de code de 0x0000 à 0xFFFF. Il s’agit de la section de la carte de caractères Unicode où la plupart des affectations de caractères ont été effectuées jusqu’à présent. Il comprend le latin, le Moyen-Orient, l’Asie, l’Afrique et d’autres langues.
IA5String
Balise d’encodage : 0x16
Certreq.exe nom : IA5_STRING
L’alphabet international numéro 5 (IA5) est généralement équivalent à l’alphabet ASCII, mais différentes versions peuvent inclure des accents ou d’autres caractères spécifiques à une langue régionale. L’exemple suivant montre le type IA5String utilisé dans la définition ASN.1 de l’extension de certificat AlternativeNames .
---------------------------------------------------------------------
-- AlternativeNames extension
---------------------------------------------------------------------
AltNames ::= SEQUENCE OF GeneralName
GeneralNames ::= AltNames
GeneralName ::= CHOICE
{
otherName [0] IMPLICIT OtherName,
rfc822Name [1] IMPLICIT IA5String,
dNSName [2] IMPLICIT IA5String,
x400Address [3] IMPLICIT SEQUENCE OF ANY,
directoryName [4] EXPLICIT ANY,
ediPartyName [5] IMPLICIT SEQUENCE OF ANY,
uniformResourceLocator [6] IMPLICIT IA5String,
iPAddress [7] IMPLICIT OCTET STRING,
registeredID [8] IMPLICIT OBJECT IDENTIFIER
}
OtherName ::= SEQUENCE
{
type OBJECT IDENTIFIER,
value [0] EXPLICIT ANY
}
PrintableString
Balise d’encodage : 0x13
Certreq.exe nom : PRINTABLE_STRING
Le type de données PrintableString était initialement destiné à représenter les jeux de caractères limités disponibles pour les terminaux d’entrée mainframe, mais il est toujours couramment utilisé. Il contient les caractères suivants :
- A-Z
- a-z
- 0-9
- ' ( ) + , - . / : = ? [space]
TeletexString
Balise d’encodage : 0x14
Les types de données TeletexString et T61String associés sont encodés sur 8 bits (ou 16 bits pour les caractères composites). Ils ont tous deux un numéro d’étiquette de 0x14. Ils ne sont pas largement utilisés.
UTF8String
Balise d’encodage : 0x0C
Certreq.exe nom : UTF8_STRING
Le format de transformation UCS/Unicode 8 bits (UTF-8) est un encodage de caractères de longueur variable qui peut représenter n’importe quel caractère universel en tant que caractère Unicode tout en permettant aux points de code initiaux de rester cohérents avec ASCII. UTF-8 utilise un à quatre octets. Le numéro d’étiquette est 0x0C.
Rubriques connexes