[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: basic constraints?
The X.509 documentation is clear on this, but it hasn't been copied or
paraphrased into PKIX yet.
"The pathLenConstraint component shall be present only if cA is set to
true. It gives the maximum number of CA-certificates that may follow
this certificate in a certification path. Value 0 indicates that the
subject of this certificate may issue certificates only to end-entities
and not to further CAs. If no pathLenConstraint field appears in any
certificate of a certification path, there is no limit to the allowed
length of the certification path."
That said, the BasicConstraints extension is (IMO) an example of needless
complexity. It is defined as:
BasicConstraints ::= SEQUENCE {
cA BOOLEAN DEFAULT FALSE,
pathLenConstraint INTEGER (0..MAX) OPTIONAL }
where it could have been defined much more simply as:
BasicConstraints ::= INTEGER (0..MAX)
with the integer representing the total number of certs (including the
leaf) that may follow this certificate in the certification path. I.e.
0 indicates not-a-CA, 1 indicates only end-entity certs may be issued,
2 indicates only one CA may follow, etc.
This is one example (the AuthorityKeyIdentifier extension is a more
egregious one) where I agree with the SPKI criticism that the use of
ASN.1 seduces designers into unnecessarily obtuse constructs.