3. Parsen einer Zeichenkette zurück zu einem Distinguished Name
Die Zeichenkettendarstellung von Distinguished Names ist auf UTF-8- [RFC3629] kodierte Unicode- [Unicode] Zeichen beschränkt. Die Struktur dieser Zeichenkettendarstellung wird durch die folgende Augmented-BNF- [RFC4234] Grammatik festgelegt:
distinguishedName = [ relativeDistinguishedName
*( COMMA relativeDistinguishedName ) ]
relativeDistinguishedName = attributeTypeAndValue
*( PLUS attributeTypeAndValue )
attributeTypeAndValue = attributeType EQUALS attributeValue
attributeType = descr / numericoid
attributeValue = string / hexstring
; Die folgenden Zeichen sind zu maskieren, wenn sie im zu
; kodierenden Wert auftreten: ESC, eines von <escaped>,
; führendes SHARP oder SPACE, abschließendes SPACE und 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
Dabei sind die Produktionen
Jedes
Liegt es in
<ESC><ESC> durch <ESC> ersetzen;
<ESC><special> durch <special> ersetzen;
<ESC><hexpair> durch das durch <hexpair> angegebene Oktett ersetzen.
Liegt es in
Für einen Relative Distinguished Name gibt es eine oder mehrere Attributwertzuweisungen, getrennt durch
Für einen Distinguished Name gibt es null oder mehr Relative Distinguished Names, getrennt durch
Implementierungen MÜSSEN (MUST) die in der folgenden Tabelle aufgeführten AttributeType-Namenszeichenketten (Deskriptoren) erkennen, DÜRFEN (MAY) aber andere Namenszeichenketten erkennen.
| Zeichenkette | 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) |
Diese Attributtypen sind in [RFC4519] beschrieben.
Implementierungen DÜRFEN (MAY) andere DN-Zeichenkettendarstellungen erkennen. Da jedoch nicht gefordert ist, alternative DN-Zeichenkettendarstellungen zu erkennen (und, falls doch, wie), SOLLTEN (SHOULD) Implementierungen DN-Zeichenketten nur gemäß Abschnitt 2 dieses Dokuments erzeugen.