[Python-Dev] frozenset C API?

"Martin v. Löwis" martin at v.loewis.de
Wed Sep 5 18:05:27 CEST 2007


> The hierarchy information does not appear to be preserved.

But it only appears so. OpenSSL does not know how to render it
properly (hence I say it is not very common in PKI), but they
started supporting that when generating certificates, with the
-multivalue-rdn option for req, and if you do

openssl asn1parse -in ca1.crt

you see that they differ:

(ca1)
l=  17 cons: SEQUENCE
l=  10 prim: OBJECT            :domainComponent
l=   3 prim: IA5STRING         :org
l=  22 cons: SET
l=  20 cons: SEQUENCE
l=  10 prim: OBJECT            :domainComponent
l=   6 prim: IA5STRING         :python
l=  12 cons: SET
l=  10 cons: SEQUENCE
l=   3 prim: OBJECT            :commonName
l=   3 prim: PRINTABLESTRING   :foo
l=  12 cons: SET
l=  10 cons: SEQUENCE
l=   3 prim: OBJECT            :commonName
l=   3 prim: PRINTABLESTRING   :bar

(ca2)
l=  17 cons: SEQUENCE
l=  10 prim: OBJECT            :domainComponent
l=   3 prim: IA5STRING         :org
l=  22 cons: SET
l=  20 cons: SEQUENCE
l=  10 prim: OBJECT            :domainComponent
l=   6 prim: IA5STRING         :python
l=  26 cons: SET
l=  11 cons: SEQUENCE
l=   3 prim: OBJECT            :commonName
l=   4 prim: PRINTABLESTRING   :bar2
l=  11 cons: SEQUENCE
l=   3 prim: OBJECT            :commonName
l=   4 prim: PRINTABLESTRING   :foo2

In the first case, foo and bar are in different sets, in the
second case, they are in the same set.

For people concerned about security, that makes a difference.

If OpenSSL actually supports that in its APIs, my proposal
would be to make a multi-valued RDN a more-than-two-tuple,
e.g.

(('DC','org'),('DC','python'),('CN','bar2','CN','foo2'))

That would make it possible to distinguish the names (pun
intended), yet still don't produce structural overhead for
the normal case of single-valued RDNs.

Regards,
Martin


More information about the Python-Dev mailing list