16 Commits (42044f2a46f98539f72d4984c7c643388d286006)

Author SHA1 Message Date
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 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 1ea1e3b740
Add fido-common crate
fido-common contains data types used by all FIDO specifications.
2 years ago