80 Commits (feabea834ae68a4e967e02f721461bf9012fd547)

Author SHA1 Message Date
Nick Zana a0bd1c9e01 fido-common: De/serialize credential::public_key::UserEntity::id as bytes
Uses serde_with to serialize and deseriailze the UserEntity::id field as
a byte string instead of a sequence (array) of bytes.
2 years ago
Nick Zana 42044f2a46 fido-common: Implement serde for credential::public_key::Descriptor
Adds serde_with as a dependency in order to serialize Descriptor::id as
bytes instead of as a sequence.

Enables cfg_eval feature to enable conditional usage of serde_with
behind the "serde" feature flag for the fido-common crate.
2 years ago
Nick Zana 576addac1f fido-common: Implement Deserialize for authenticator::Data
Requires bitflags to parse CTAP "flags" field of AuthenticatorData.

Implements Deserialize for custom CTAP format for authenticator::Data
byte layout.
2 years ago
Nick Zana 90f75b88d8 fido-common: Implement Deserialize for attestation::CredentialData
Relies on ciborium as a dependency because coset requires one of
ciborium's error types. It should be possible to remove this type's
dependence on ciborium.
2 years ago
Nick Zana ce4150d184 fido-common: Add new backup flags to authenticator::Data
As of the CTAP 2.2 revision, authenticator::Data now contains the
backup_eligibility and backup_state flags.
2 years ago
Nick Zana 6e7d134b6d fido-common: Replace authenticator data bools with enums
Replaces authenticator::Data's user_is_verified and user_is_present
boolean flags with clearer UserVerification and UserPresence enums.
2 years ago
Nick Zana e362a5c237 fido-common: Move attestation::enterprise to its own file 2 years ago
Nick Zana 39a5759d12 fido-common: fix credential::public_key::Parameters signature type
The credential::public_key::Parameters field algorithm designates the
public key algorithm represented by the parameter. This replaces the
incorrect registry::algorithms::Signature type with the correct
coset::iana::Algorithm type and adds Serialization/Deserialization
methods for this type.
2 years ago
Nick Zana 1e8a4f21cf fido_common: derive ordering for UserVerify
Necessary to include UserVerify in the BTreeSet specifying the available
user verification modalities.
2 years ago
Nick Zana 8e1b175136 remove bounded_vec from fido_common crate
bounded_vec crate was used to enforce constraints on size of various
fields as defined by webauthn or ctap specs. However, it does not
properly support zero-sized lower bounds.
2 years ago
Nick Zana c1c95bafc1 fido-common: Make extensions::Identifier de/serializable 2 years ago
Nick Zana 2bb574e62b fido-common: add enums for credential backup
Used in by the authenticator in authenticator::Data to convey
information about the backup state of credentials.
2 years ago
Nick Zana 9351d6ea6c format fido-common/Cargo.toml 2 years ago
Nick Zana 0fb2487154
Move several types from ctap2-proto to fido-common 2 years ago
Nick Zana 0b03bda84b
replace usage of Hash{Set, Map} with BTree 2 years ago
Nick Zana 12ce6070e0
ctap2-proto: Make Sha256Hash inner array public 2 years ago
Nick Zana 508011230c
ctap2-proto: Add optional AuthenticatorData fields 2 years ago
Nick Zana 04b37d73a4
ctap2-proto: Add unsigned_extension_outputs to make::Response 2 years ago
Nick Zana 5f87584176
ctap2-proto: Replace unecessary owned types with references in make::Request
Remove IndexMap in favor of borrowed slices for make::Request fields
Update imports
2 years ago
Nick Zana 5cc976afbd
ctap2_proto: Add a from method to Aaguid type 2 years ago
Nick Zana 749e7cf2ae
ctap2-proto: Add derives for AuthProtocolVersion 2 years ago
Nick Zana 4f38796923
ctap2-proto: Change unecessary owned types to references in get::Request 2 years ago
Nick Zana 7d15578852
ctap2-proto: Add bio-enrollment return type 2 years ago
Nick Zana 85a3260c4a
ctap2-proto: Add &self param to get_info 2 years ago
Nick Zana ea1fc7b64d
ctap2-proto: Define prelude 2 years ago
Nick Zana d5529827ed
fido-common: Apply minor formatting and docs fixes
Derive standard traits for several types.
Remove unecessary URLs in doc comments.
Apply rustfmt changes.
2 years ago
Nick Zana 0186b2ee40
Add webauthn3-proto crate
The webauthn3-proto crate provides a FIDO WebAuthn3 API definition that
implements the w3c CredentialManagement API defined in the
credential-management-proto crate.
2 years ago
Nick Zana 89cf54df04
Add credential-management-proto crate
The credential-management-proto crate provides types and traits for
implementing the w3c CredentialManagement API
2 years ago
Nick Zana 4082fbb437
Add ctap2-proto crate
The ctap2-proto crate defines the Ctap2_2Authenticator trait, which
implements the latest CTAP spec.
2 years ago
Nick Zana 1ea1e3b740
Add fido-common crate
fido-common contains data types used by all FIDO specifications.
2 years ago