Conversation
a342826 to
d9b0684
Compare
028775e to
6fe53a5
Compare
d9b0684 to
13cb123
Compare
6fe53a5 to
ae50082
Compare
13cb123 to
6ae30f2
Compare
6ae30f2 to
c99b81a
Compare
c99b81a to
60ddcf5
Compare
71d72b2 to
9e47b3a
Compare
|
@sjaeckel Why was the CI pipeline with tests and builds not triggered after my last commit? |
…1 on equality; which was misleading - thus renamed to x509_name_eq
…00:0000:0000:0000:0000:0001 (it will be less surprising)
|
I've just reviewed this PR and pushed a few commits. Two issues I’m still not happy with:
I also managed to break the CI tests somehow; however, it is too late tonight for me to fix that now. |
They will only be called with valid args.
So we don't have to do that manually.
sjaeckel
left a comment
There was a problem hiding this comment.
- We are not rejecting certificates that contain unrecognized critical extensions, as required by RFC 5280 section 4.2. I've just added a comment to code about this.
Good point!
- It is a bit surprising that x509_free takes ltc_x509_certificate ** as its argument. Other _free functions take a single pointer (rsa_free, ecc_free, pka_key_free ...) so x509_free is currently the odd one out.
Because I like the pattern more. I prefer to be on the safe side, see also the commit I just added which introduces the same pattern for s_free().
| /* TODO: RFC 5280 4.2 requires rejecting certs with unrecognized critical extensions | ||
| but currently it cannot be rejected here as some critical extensions are not decoded | ||
| like: Name Constraints, Inhibit Any Policy, No Revocation Available, OCSP No Check, | ||
| Proxy Certificate Information, ac-auditEntity | ||
| */ |
There was a problem hiding this comment.
While adding some of them as dummy I came to the conclusion: this is just parsing and not validation. Should we maybe track this as "yes, it's a valid topic, but not now"?
I've collected the following infos on the extensions you mentioned which are tracked outside RFC 5280:
- No Revocation Available is
CRITICALITY { FALSE } - OCSP No Check The RFC says:
The CA does so by including the extension id-pkix-ocsp-nocheck. This SHOULD be a non-critical extension. The value of the extension SHALL be NULL. - Proxy Certificate Information is indeed critical
ac-auditEntityI couldn't find anything
Start implemeting X.509 APIs.
In #693 this was requested and I was already at it and now we have the first part: Parsing of an X.509 certificate and the cryptographic validation of such a certificate.
NB: This does not yet contain the logic that is required to determine whether a CA is eligible to sign a certificate etc.
Checklist