Commit 82aefc6
committed
Use libwebauthn for JSON response serialization
This commit migrates from custom JSON response serialization to
libwebauthn's WebAuthnIDLResponse::to_inner_model() for both
create credential (MakeCredential) and get credential (GetAssertion)
responses.
Changes:
- Use libwebauthn's to_inner_model() to serialize responses, then
modify the result to add transport and authenticator_attachment
information that is known at the credential service level
- Remove create_credential_request_try_into_ctap2's client_data_json
return value (now extracted from the request by libwebauthn)
- Remove get_credential_request_try_into_ctap2's client_data_json
return value
- Update gateway.rs to clone the request for response serialization
- Remove unused modules: cbor.rs, cose.rs, serde/mod.rs
- Simplify webauthn.rs to just re-exports from libwebauthn
This removes ~800 lines of custom serialization code including:
- CreatePublicKeyCredentialResponse and GetPublicKeyCredentialResponse
- AttestationStatement enum and create_attestation_object function
- All the extension output types (CredentialPropertiesOutput, etc.)
- Custom CBOR writer for attestation object serialization
- COSE key type helpers
The response serialization now uses libwebauthn's implementation which:
- Handles attestation object CBOR encoding
- Handles all extension output serialization
- Handles base64url encoding of binary fields
- Produces WebAuthn Level 3 compliant JSON responses1 parent bbd0150 commit 82aefc6
7 files changed
Lines changed: 69 additions & 855 deletions
This file was deleted.
This file was deleted.
0 commit comments