3. Analyse d'une chaîne pour retrouver un nom distingué
La représentation sous forme de chaîne des noms distingués est limitée aux caractères Unicode [Unicode] encodés en UTF-8 [RFC3629]. La structure de cette représentation sous forme de chaîne est spécifiée au moyen de la grammaire BNF augmentée [RFC4234] suivante :
distinguishedName = [ relativeDistinguishedName
*( COMMA relativeDistinguishedName ) ]
relativeDistinguishedName = attributeTypeAndValue
*( PLUS attributeTypeAndValue )
attributeTypeAndValue = attributeType EQUALS attributeValue
attributeType = descr / numericoid
attributeValue = string / hexstring
; Les caractères suivants doivent être échappés lorsqu'ils
; apparaissent dans la valeur à encoder : ESC, l'un de
; <escaped>, SHARP ou SPACE en tête, SPACE en fin, et NULL.
string = [ ( leadchar / pair ) [ *( stringchar / pair )
( trailchar / pair ) ] ]
leadchar = LUTF1 / UTFMB
LUTF1 = %x01-1F / %x21 / %x24-2A / %x2D-3A /
%x3D / %x3F-5B / %x5D-7F
trailchar = TUTF1 / UTFMB
TUTF1 = %x01-1F / %x21 / %x23-2A / %x2D-3A /
%x3D / %x3F-5B / %x5D-7F
stringchar = SUTF1 / UTFMB
SUTF1 = %x01-21 / %x23-2A / %x2D-3A /
%x3D / %x3F-5B / %x5D-7F
pair = ESC ( ESC / special / hexpair )
special = escaped / SPACE / SHARP / EQUALS
escaped = DQUOTE / PLUS / COMMA / SEMI / LANGLE / RANGLE
hexstring = SHARP 1*hexpair
hexpair = HEX HEX
où les productions
Chaque
Sous la forme
remplacer <ESC><ESC> par <ESC> ;
remplacer <ESC><special> par <special> ;
remplacer <ESC><hexpair> par l'octet indiqué par le <hexpair>.
Sous la forme
Un nom distingué relatif comporte une ou plusieurs assertions de valeur d'attribut, séparées par
Un nom distingué comporte zéro ou plusieurs noms distingués relatifs, séparés par
Les implémentations DOIVENT (MUST) reconnaître les chaînes de nom d'AttributeType (descripteurs) listées dans le tableau suivant, mais PEUVENT (MAY) en reconnaître d'autres.
| Chaîne | X.500 AttributeType |
|---|---|
| CN | commonName (2.5.4.3) |
| L | localityName (2.5.4.7) |
| ST | stateOrProvinceName (2.5.4.8) |
| O | organizationName (2.5.4.10) |
| OU | organizationalUnitName (2.5.4.11) |
| C | countryName (2.5.4.6) |
| STREET | streetAddress (2.5.4.9) |
| DC | domainComponent (0.9.2342.19200300.100.1.25) |
| UID | userId (0.9.2342.19200300.100.1.1) |
Ces types d'attribut sont décrits dans [RFC4519].
Les implémentations PEUVENT (MAY) reconnaître d'autres représentations sous forme de chaîne de DN. Toutefois, comme il n'est pas exigé que les autres représentations sous forme de chaîne de DN soient reconnues (ni, le cas échéant, comment), les implémentations DEVRAIENT (SHOULD) ne générer des chaînes de DN que conformément à la section 2 de ce document.