Текстовое представление DN
Текстовое представление DistinguishedName (GeneralNames), далее просто имени, задается в соответствии с RFC2253:
distinguishedName = [name]; may be empty string
name name-component *("," name-component)
name-component = attributeTypeAndValue *("+" attributeTypeAndValue)
attributeTypeAndValue = attributeType "=" attributeValue
attributeType = (ALPHA 1*keychar) / oid
keychar = ALPHA / DIGIT / "-"
oid = 1*DIGIT *("." 1*DIGIT)
attributeValue = string
string = *( stringchar / pair )
/ "#" hexstring
/ QUOTATION *( quotechar / pair ) QUOTATION; only from v2
quotechar = <any character except "\" or QUOTATION >
special = "," / "=" / "+" / "<" / ">" / "#" / ";"
pair = "\" ( special / "\" / QUOTATION / hexpair )
stringchar =<any character except one of special, "\" or QUOTATION>
hexstring = 1*hexpair
hexpair = hexchar hexchar
hexchar = DIGIT / "A" / "B" / "C" / "D" / "E" / "F"
/ "a" / "b" / "c" / "d" / "e" / "f"
ALPHA = <any ASCII alphabetic character>;(decimal 65-90 and 97-122)
DIGIT = <any ASCII decimal digit> ;(decimal 48-57)
QUOTATION = <the ASCII double quotation mark character '"' decimal 34>
Дополнения и отступления от RFC2253
Имеются следующие дополнения и отступления от RFC2253:
· символ "/" является разделителем компонент имени, т.е. допустим следующий синтаксис:
name = name-component *("/" name-component)
· для того, чтобы использовать этот символ как значащий, его необходимо проэскейпить.
· распознаются следующие сокращения типов атрибутов (attributeType) DistinguishedName:
|
X.500 Attribute Type |
Сокращение |
|
countryName |
C |
|
stateName |
ST |
|
localityName |
L |
|
organizationName |
O |
|
organizationalUnitName |
OU |
|
commonName |
CN |
|
title |
T |
|
surname |
SN |
|
givenName |
GN |
|
initials |
I |
|
streetAddress |
STREET |
|
nameQualifier |
NQ |
|
generationQualifier |
GQ |
|
userid |
UID |
|
domainComponent |
DC |
· регистр, в котором записано сокращение, не имеет значения.
· Строковое задание GeneralNames сведено к синтаксису, описанному в RFC2253. Распознаются следующие сокращения типов атрибутов имени GeneralNames:
|
Тип атрибута |
Сокращение |
|
otherName |
OTHERNAME |
|
rfc822Name |
|
|
dNSName |
DNS |
|
directoryName |
DN |
|
uniformResourceIdentifier |
URI |
|
iPAddress |
IP |
|
registeredID |
RID |
· регистр, в котором записано сокращение, не имеет значения
· задание атрибутов x400Address и ediPartyName в строковом представлении не поддерживается.
· Согласно RFC2253 символы ’"’(кавычки) и ’\’(back-slash) являются служебными. Согласно описанию Терминального символа СТРОКА, при задании любого строкового значения в LSP указанные символы так же используются как служебные. Поэтому:
· каждая отдельно стоящая кавычка в строковом представлении должна быть дополнена слева символом ’\’ в LSP
· каждое сочетание ’\"’ в строковом представлении должно быть дополнено слева ’\\’ в LSP.
Примеры
|
Имя в сертификате |
Строковое представление |
В LSP |
|
O=Sergey, Danila and company |
O=Sergey\, Danila and company |
Subject="O=Sergey\, Danila and company" |
|
O=JSC "Horns and hoofs" |
O=JSC \"Horns and hoofs\" |
Subject="O=JSC \\\"Horns and hoofs\\\"" |
|
CN=Device#4 |
CN="Device#4" |
Subject="CN=\"Device#4\"" |