-
Notifications
You must be signed in to change notification settings - Fork 5
Add support for new Yubico FIDO and PIV attestation root CA #26
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
Conversation
0b53d5b to
2627bf3
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Copilot reviewed 1 out of 1 changed files in this pull request and generated no comments.
Comments suppressed due to low confidence (1)
src/fido/verification.rs:193
- The naming of the two root CA constants (YUBICO_FIDO_ROOT_CA_450203556 and YUBICO_U2F_ROOT_CA_457200631) may be confusing given the fallback logic in verify_auth_data. Consider renaming them to clearly indicate which certificate is preferred and which is the fallback.
else if verify_intermediate(&parsed_intermediate, YUBICO_FIDO_ROOT_CA_450203556).is_err() {
|
I was testing this myself but it seems Yubico has added a bunch of new intermediates and roots to their new Yubikeys. Here is the data from a 5.7.4 Yubikey 5C NFC for testing Additionally, I think we need all the intermediates from here: https://developers.yubico.com/U2F/Attestation_and_Metadata/ under intermediate certificates, the third last certificate there is the intermediate for the one above which then I think goes up to the new root (but I haven't had a chance to validate that yet). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.
Comments suppressed due to low confidence (1)
src/fido/verification.rs:310
- The comment references YUBICO_FIDO_ROOT_CA_450203556 while the fallback verification uses YUBICO_U2F_ROOT_CA_457200631. Please clarify and align the constant names to avoid confusion.
// YUBICO_FIDO_ROOT_CA_450203556 was added later in 2025
When I was originally writing the Mozilla handler for this library, I didn't implement hashing of the challenge because there is no way to take in a challenge from a remote host. This is why @timweri had to remove the hashing from the test in his earlier commits. We now generate random data first, then hash it such that we can get the preimage to test it properly. This also will allow us to extend the API into the future to allow remote challenges for key generation verification.
Add support for the new FIDO and PIV Root CA: https://developers.yubico.com/PKI/yubico-ca-certs.txt. These new chains contain a few more intermediates from: https://developers.yubico.com/PKI/yubico-intermediate.pem
These new chains were rolled out for Yubikey 5c 5.7.4.