-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Testcase enumeration #1
Comments
We may also be able to glean and adapt some testcases from https://github.com/google/x509test. Edit: and from bettertls: https://github.com/Netflix/bettertls https://netflixtechblog.com/revisiting-bettertls-certificate-path-building-4c978b79843f Edit: Done for bettertls. |
We probably also want a "chain of pain" testcase, i.e. where the server sends an expired intermediate but a valid path still exists (since chain building doesn't require us to consult the intermediates). Refs:
Edit: Done. |
On the pathlen side, we also probably want a few testcases for self-issued (not self-signed) certificates: self-issued CA certificates aren't counted in path length constraints, meaning that the following is valid:
(where Edit: Done. |
...and a testcase for "CAs" that aren't marked as such, e.g.
...where Edit: Done. |
Some more CA/B cases we'll want to cover:
|
Maybe use these as well: https://badssl.com/ https://github.com/chromium/badssl.com Edit: Successor-ish project: https://github.com/wbond/badtls.io Edit 2: wbond/badtls.io#1 is a blocker for integrating the badtls suite. |
Potential weird FP case with OpenSSL here: #44 (comment) |
From a quick look at pyca/cryptography#8873, some other cases we still need:
(cc @facutuesca) |
Some non-MVP testcases:
|
Some more "pedantic" WebPKI testcases:
|
Another interesting testcase, similar to |
Pointed out in pyca/cryptography#8873 (comment): we don't have any IPv6 testcases yet. Edit: Done: #95 |
Some more "pedantic" NC cases: both 5280 and CABF say that |
Re: #1 (comment), some notes on integrating BetterTLS: Export the entire test suite: git clone https://github.com/Netflix/bettertls && cd bettertls
go build -o bettertls ./test-suite/cmd/bettertls
./bettertls export-tests > /tmp/bettertls.json ...which then needs to be mashed into Limbo testcase format. Edit: Done. |
Closed in favor of #174. |
Not exhaustive, obviously.
This issue tracks a few "baseline" testcases we should include as part of an MVP.
They're categorized roughly below.
Path construction cases
(root, intermediate..., EE)
pathlen
constraintspathlen
constraints (aren't counted against the constraint)pathlen
constraints (both exterior and interior to the certs)foo.example.com
)foo.example.com
matches*.example.com
)foo.example.com
matchesf*o.example.com
)foo.*.example.com
is invalid)foo.bar.example.com
should not match*.example.com
)xn--blah*.example.com
is invalid)dNSName
s must be ASCII onlyCertificate state cases
AuthorityKeyIdentifier
unless self-signedAuthorityKeyIdentifier.keyIdentifier
unless self-signedAuthorityKeyIdentifier.critical
SubjectKeyIdentifier
SubjectKeyIdentifier.critical
Issuer
(Initial RFC 5280 test cases #7)AuthorityInformationAccess
and it must be well-formedReference material:
The text was updated successfully, but these errors were encountered: