Hodie III Id. Sep. MMXI, Peter Sylvester scripsit:
>    On 09/11/2011 12:12 AM, Erwann ABALEA wrote:
> 
>  Hodie IV Id. Sep. MMXI, Maarten Billemont via RT scripsit:
> 
>  According to rfc1779, the key STREET in the subject name should be 
> capitalized.
> 
>  obj_dat.h specifies it as a lower-cased "street".
> 
>  This is incorrect and breaks when OpenSSL is used to parse in 
> rfc1779-compliant distinguished names generated by external parties.
> 
>  The solution is to upper-case it to "STREET", just like "C", "CN", etc.
> 
>  The "street" attribute type (OID 2.5.3.9) is not defined by RFC1779.
>  This RFC doesn't state that those tokens are case sensitive (you could
>  even use "cn" instead of "CN").
>  This RFC is defective at least in one aspect: the following names are
>  not considered equal:
>    CN=James Bond, O=MI6, C=UK
>    CN=James \ Bond, O=MI6, C=UK
>    CN=\ \ jAmeS bonD, O=MI6, C=UK
>  these examples are equal, following X.520 rules.
> 
> 
>    Hm,
> 
>  OID 2.5.3.9 is id-at-streetAddress OBJECT IDENTIFIER ::= {[1]id-at 9}
> 
>  streetAddress [2]ATTRIBUTE ::= {
>    WITH SYNTAX               [3]UnboundedDirectoryString
>    EQUALITY MATCHING RULE    [4]caseIgnoreMatch
>    SUBSTRINGS MATCHING RULE  [5]caseIgnoreSubstringsMatch
>    ID                        [6]id-at-streetAddress
>  }
> 
>  In  1779
> 
>                         CN      CommonName
>                         L       LocalityName
>                         ST      StateOrProvinceName
>                         O       OrganizationName
>                         OU      OrganizationalUnitName
>                         C       CountryName
>                         STREET  StreetAddress
> 
>  rfc 4514 has
> 
>        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)
> 
>    in objects.txt
> 
>    X509 3            : CN          : commonName
>    X509 6            : C            : countryName
>    X509 7            : L            : localityName
>    X509 8            : ST            : stateOrProvinceName
>    X509 9            : street        : streetAddress
>    X509 10            : O            : organizationName
>    X509 11            : OU            : organizationalUnitName
> 
>    IMO should be STREET
>     (but existing  req etc config files should become broken)
> 
>    the rfc doesn't treat equality or matching.
>    the rfc describes a textual representation of an encoded name.
>    not any kind of canonical or distinguished form.

If the OP is concerned by a mismatch between "street" and "STREET"
then I guess his question concerns matching strings.

The OP also complains that OpenSSL has a problem parsing
RFC1779-compliant DNs. In fact, OpenSSL doesn't parse RFC1779 names.
It has its own format.

>    btw your examples seem wrong to me, a space cannot escaped by \
>    as far as I understand rfc 1779

I could have used quotes, yes, but escaping is valid (yet ugly).

-----
The quoting mechanism is used for the following cases:

   o  Strings containing ",", "+", "=" or """ , <CR>, "<",
      ">", "#", or ";".

   o  Strings with leading or trailing spaces

   o  Strings containing consecutive spaces
-----

Quoting is defined as prefixing the character with a "\", or enclosing
the whole string in a """ pair, or both (is the string also contains
""" characters).

>  rfc 4514 has  ' ', '"', '#', '+', ',', ';', '<', '=', '>', or '\'

And RFC4519 names the attribute 'street', and all others in lowercase.

>    The  textual representations
> 
>      CN="   jAmes bonD"
>      CN="James  Bond"
>     
>    designate different encodings that match, i.e. 
>    only one could be in a directory.

Yes, as cn="James Bond", i.e. the case of the directory attribute name
is not important.

Test it an LDAPv3-compliant LDAP server, and you'll be able to use
both forms (lower and upper case) for the directory attributes. You
may even be able to use the OID form. Same with the "certificateMatch"
filter, if your LDAP server supports it.

-- 
Erwann ABALEA <erwann.aba...@keynectis.com>
Département R&D
KEYNECTIS
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       openssl-dev@openssl.org
Automated List Manager                           majord...@openssl.org

Reply via email to