Partager via


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.

Système de type ASN.1

Distinguished Encoding Rules

Encodage DER des types ASN.1