Subject: Revised DN ABNF

From: "Kurt D. Zeilenga" <[email-masked]>
Date: Tue, 19 Dec 2000 08:57:42 -0800

This is the latest DN ABNF.  Please review for correctness
and clarity (in particular, stringchar).

	Kurt

The structure of the UTF-8 string is specified using the
following Augmented BNF [RFC2234] grammar.

distinguishedName = [name]
                     ; may be empty

name              = name-component *(COMMA name-component)

name-component    = attributeTypeAndValue *(PLUS attributeTypeAndValue)

attributeTypeAndValue
                  = attributeType EQUALS attributeValue

attributeType     = (ALPHA 1*keychar) / oid
keychar           = ALPHA / DIGIT / MINUS

oid               = 1*DIGIT *(DOT 1*DIGIT)

attributeValue    = string / hexstring

string            = *( stringchar / pair )
                    ; the string MUST NOT start with SHARP or SP
                    ; and MUST NOT end with SP

special           = escaped / SHARP / EQUALS / SP

escaped           = COMMA / PLUS / %x22 / %x3C / %x3E / %3B 
                    ; "," / "+" / """ / "<" /  ">" / ";"

pair              = ESC ( ESC / special / hexpair )

stringchar        = <any UTF-8 character (can be multiple octets)
                    except one of escaped or ESC>

hexstring         = SHARP 1*hexpair
    
hexpair           = HEX HEX

HEX               = DIGIT / %x41-46 / %x61-66 
                     ; 0-9 / A-F / a-f

ALPHA             = %x41-5A / %x61-7A
                     ; A-Z / a-z

DIGIT             = %x30-39 ; 0-9

SP                = %x20 ; space (" ")
SHARP             = %x23 ; sharp sign ("#")
PLUS              = %x2B ; plus sign ("+")
COMMA             = %x2C ; comma (",")
MINUS             = %x2D ; minus sign ("-")
DOT               = %x2E ; period (".")
EQUALS            = %x3D ; equals sign ("=")
ESC               = %x5C ; backslash ("\\")