X509 import #697
Labels
No labels
bug
duplicate
enhancement
feature
help wanted
improve API
invalid
needs documentation
not-planned
rtfm
stale
support
wishlist
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
gh-libtom/libtomcrypt!697
Loading…
Reference in a new issue
No description provided.
Delete branch "x509_import"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
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
@sjaeckel Why was the CI pipeline with tests and builds not triggered after my last commit?
I guess because the target branch isn't develop!? Not sure though, just a guess.
I took the liberty to squash your adaptations into the main commit. I hope that's fine.
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.
see my commits
Good point!
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().@ -0,0 +743,4 @@but currently it cannot be rejected here as some critical extensions are not decodedlike: Name Constraints, Inhibit Any Policy, No Revocation Available, OCSP No Check,Proxy Certificate Information, ac-auditEntity*/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:
CRITICALITY { FALSE }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.ac-auditEntityI couldn't find anythingwhat is the origin oftests/x509/gnutls/template-krb5name-full.pem?cert's KeyUsage is a BIT STRING with all bits zero, which is IMO not valid according to RFC 5280 4.2.1.3should it not be ingnutls/bad/?openssl parses/accepts these
UPDATE: openssl rejects it later
github.com/openssl/openssl@e483d93b39/crypto/x509/v3_purp.c (L631)tests/x509/openssl/embeddedSCTs1_issuer.pem = a self-signed CA root with BasicConstraints: CA:TRUE but not criticalmaybe it is fine as openssl accepts CA:TRUE without critical
View command line instructions
Manual merge helper
Use this merge commit message when completing the merge manually.
Checkout
From your project repository, check out a new branch and test the changes.Merge
Merge the changes and update on Forgejo.Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.