Skip to content

Add FIDO2, WebAuthn and CTAP 2.3 support#619

Merged
veikkoeeva merged 1 commit into
mainfrom
fido2
Jul 17, 2026
Merged

Add FIDO2, WebAuthn and CTAP 2.3 support#619
veikkoeeva merged 1 commit into
mainfrom
fido2

Conversation

@veikkoeeva

Copy link
Copy Markdown
Contributor

WebAuthn relying party

  • Add registration and assertion ceremony verification with clause-level W3C L3 checks.
  • Add packed, tpm, android-key, fido-u2f and none attestation verifiers with X.509 chain and profile checks on both crypto backends.
  • Add creation and request options builders, extension outputs, appid and related origins handling.
  • Add L3 JSON wire readers and envelope carriers.
  • Generalize COSE keys into Verifiable.JCose with RSA support.

CTAP 2.3

  • Add an authenticator simulator built as a pushdown automaton with injected crypto backends, plus the NFC/APDU transport profile.
  • Add makeCredential, getAssertion, getNextAssertion and getInfo with packed self and certified attestation.
  • Add clientPIN with PIN/UV auth protocols 1 and 2; HKDF-SHA-256 lands in the cryptography layer.
  • Add credentialManagement, authenticatorConfig, reset, bioEnrollment and largeBlobs.
  • Add enterprise attestation and the credProtect, minPinLength, largeBlobKey, hmac-secret and hmac-secret-mc extensions.
  • Advertise FIDO_2_3 honestly: the section 9 mandatory set is implemented, with every normative clause ledgered (155 implemented and tested, 70 profile conditional, 12 tracked missing of 237 assessed).
  • Prove the ceremonies over real wires: APDU transport and a Kestrel-hosted HTTP relying party.
  • Certify TPM-resident credential keys through TPM2_Certify against the in-house TPM simulator.

Metadata service

  • Add metadata BLOB verification with entry well-formedness guards, serial-number monotonicity and revocation posture seams.
  • Add FIDO2 CLI verbs for inspection and metadata work.

OAuth client

  • Add token-exchange and JWT-bearer request builders with client secret attach helpers; RFC 8693, RFC 7523 and RFC 6749 section 2.3.1 obligations verified end to end.

Supporting

  • Zero secret copies at the provider boundaries and keep wire values in named pooled carriers.
  • Widen cryptographic event provenance to every signing surface.
  • Move the builder base to Verifiable.Foundation and update Lumoin.Base to 0.0.6.

@github-actions

github-actions Bot commented Jul 14, 2026

Copy link
Copy Markdown

Test Results

    1 files      1 suites   5m 17s ⏱️
8 369 tests 8 292 ✅ 77 💤 0 ❌
8 379 runs  8 302 ✅ 77 💤 0 ❌

Results for commit fcd4c30.

♻️ This comment has been updated with latest results.

@veikkoeeva
veikkoeeva force-pushed the fido2 branch 6 times, most recently from 45ea3b6 to 77d19a2 Compare July 15, 2026 21:39
WebAuthn relying party

- Add registration and assertion ceremony verification with clause-level W3C L3 checks.
- Add packed, tpm, android-key, fido-u2f and none attestation verifiers with X.509 chain and profile checks on both crypto backends.
- Add creation and request options builders, extension outputs, appid and related origins handling.
- Add L3 JSON wire readers and envelope carriers.
- Generalize COSE keys into Verifiable.JCose with RSA support.

CTAP 2.3

- Add an authenticator simulator built as a pushdown automaton with injected crypto backends, plus the NFC/APDU transport profile.
- Add makeCredential, getAssertion, getNextAssertion and getInfo with packed self and certified attestation.
- Add clientPIN with PIN/UV auth protocols 1 and 2; HKDF-SHA-256 lands in the cryptography layer.
- Add credentialManagement, authenticatorConfig, reset, bioEnrollment and largeBlobs.
- Add enterprise attestation and the credProtect, minPinLength, largeBlobKey, hmac-secret and hmac-secret-mc extensions.
- Advertise FIDO_2_3 honestly: the section 9 mandatory set is implemented, with every normative clause ledgered (155 implemented and tested, 70 profile conditional, 12 tracked missing of 237 assessed).
- Prove the ceremonies over real wires: APDU transport and a Kestrel-hosted HTTP relying party.
- Certify TPM-resident credential keys through TPM2_Certify against the in-house TPM simulator.

Metadata service

- Add metadata BLOB verification with entry well-formedness guards, serial-number monotonicity and revocation posture seams.
- Add FIDO2 CLI verbs for inspection and metadata work.

OAuth client

- Add token-exchange and JWT-bearer request builders with client secret attach helpers; RFC 8693, RFC 7523 and RFC 6749 section 2.3.1 obligations verified end to end.

Supporting

- Zero secret copies at the provider boundaries and keep wire values in named pooled carriers.
- Widen cryptographic event provenance to every signing surface.
- Move the builder base to Verifiable.Foundation and update Lumoin.Base to 0.0.6.
@veikkoeeva
veikkoeeva merged commit 8268411 into main Jul 17, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant