56 Commits (ed57873783237b7b2ebee831f48f09d7bd57854b)

Author SHA1 Message Date
Nick Zana ed57873783 ctap2-proto: Add raw module with RawSubcommand to authenticator::credential::management
RawSubcommand is de/serialized as a u8 corresponding to its subCommand
number.

Also implements Display for authenticator::credential::management::Error
so that it can be used as the serde error type for RawSubcommand.
1 year ago
Nick Zana 448c8cb79b ctap2-proto: Add client_pin::raw::RawResponse for de/serialization of client_pin::Response enum as CBOR 1 year ago
Nick Zana 2f53d730c8 ctap2-proto: Add client_pin::raw::RawRequest for de/serialization of client_pin::Request enum as CBOR 1 year ago
Nick Zana 132cd6b03f ctap2-proto: Add ctap2-proto::authenticator::client_pin::raw::RawPermission bitflag set
CTAP 2 uses bitflags to represent the permissions field in client pin
requests. This adds a RawPermission type that can be represented using a
FlagSet<RawPermission> for Serialization and Deserialization.
1 year ago
Nick Zana 10bdfc1547 ctap2-proto: Add authenticator::client_pin::raw::RawSubcommand
This type is used for serialization and deserialization of subcommands
as raw u8s.
1 year ago
Nick Zana df78c9e303 ctap2-proto: Add authenticator::client_pin::raw::PublicKey type for deserialization
The cosey::PublicKey type does not properly implement deserialize for
the general PublicKey type. the client_pin::raw::PublicKey type is used
as an intermediate to allow deserialization of COSE public keys in the
client_pin protocol.
1 year ago
Nick Zana 984e43cd18 ctap2-proto: Derive serde traits as Bytes type for authenticator::client_pin::PinUvAuthToken
Serializes and Deserializes as serde_as::Bytes so that the byte arrays
are serialized as bytestrings, not sequences of bytes.
1 year ago
Nick Zana 63a9be04ad ctap2-proto: Add pin_uv_auth_token param to authenticator::client_pin::Response::GetPinToken 1 year ago
Nick Zana 7827fb82fe ctap2-proto: Remove all fields from authenticator::client_pin::Response::SetPin
This response type has no fields.
1 year ago
Nick Zana 54028012a8 ctap2-proto: Derive Debug, Eq, and Ord traits for authenticator::client_pin::Permission enum 1 year ago
Nick Zana 408c4864da ctap2-proto: Specify relying_party_id type as Cow<'a, str> in authenticator::client_pin::Request variant fields 1 year ago
Nick Zana b1963220d8 ctap2-proto: Implement std::fmt::Display for authenticator::client_pin::Error 1 year ago
Nick Zana 3f04a35447 ctap2-proto: Change &[u8] to fixed size arrays in authenticator::client_pin::{Request, Response} fields 1 year ago
Nick Zana 128ed345d1 ctap2-proto: Change authenticator::client_pin::{Request, Response} to cosey::PublicKey
Replaces coset::CoseKey type, which doesn't sufficiently distinguish
between public and private keys and the parameters required for key
algorithm variants, with the cosey::PublicKey type in the Request and
Response type fields.
1 year ago
Nick Zana 848fcf43b4 ctap2-proto: Add missing version parameter to authenticator::client_pin::Request::SetPin 1 year ago
Nick Zana 795d356ab6 ctap2-proto: Simplify authenticator::client_pin::auth_protocol traits
Rather than use manual lifetime management for PinUvAuthProtocol session
keys, change the auth_protocol::platform::Session trait to represent a
single Session, which maintains its own platform key agreement key, and
can be managed with the lifetime of the value itself.
1 year ago
Nick Zana feabea834a ctap2-proto: Formatting 1 year ago
Nick Zana f3f2c5128c ctap2-proto: Add authenticator::client_pin::auth_protocol::{Authenticator, Platform} trait defitions
Adds traits to define the Platform and Authenticator abstract
definitions for the PIN/UV Auth Protocol.
1 year ago
Nick Zana a8a9eeb817 ctap2-proto: Move authenticator::client_pin::AuthProtocolVersion to own module
In preparation for adding traits for the PIN/UV Auth Protocol, this
splits the AuthProtocolVersion type into its own module and renames it
to auth_protocol::Version.
1 year ago
Nick Zana 16d11745a3 ctap2-proto: Serialize/Deserialize authenticator::client_pin::AuthProtocolVersion as u8
Use u8::From<AuthProtocolVersion> and AuthProtocolVersion::TryFrom<u8>
implementations instead of manually implementing Serialize/Deserialize.
1 year ago
Nick Zana 67a2986167 ctap2-proto: Gate serde attributes for authenticator::assertion::get types behind serde feature 1 year ago
Nick Zana 76089d60cb ctap2_proto: remove extraneous client_pin::Subcommand enum 2 years ago
Nick Zana 7db826dc78 ctap2-proto: derive serde traits for authenticator::reset::Error 2 years ago
Nick Zana 7f8f97b0c3 ctap2-proto: Derive builder trait for authenticator::credential::make::Request
Adds typed-builder dependency to derive Builder struct.
2 years ago
Nick Zana 8bf52aa842 ctap2-proto: Derive Deserialize for authenticator::assertion::get::Response 2 years ago
Nick Zana eb4ccf34a3 ctap2-proto: Derive Serialize for authenticator::credential::get::Request 2 years ago
Nick Zana 49dfb44ea7 ctap2-proto: Derive serde traits for authenticator::credential::get::OptionKey 2 years ago
Nick Zana 50bdffbe08 ctap2-proto: Derive Deserialize for authenticator::credential::make::Response 2 years ago
Nick Zana 9d46ecf75b ctap2-proto: Add attestation_statement field to credential::make::Response 2 years ago
Nick Zana 54d8ffc2bf ctap2-proto: Derive Serialize for credential::make::Request
Enables cfg_eval feature because serde_as does not support cfg_attr for
conditional compilation.
2 years ago
Nick Zana ea1df60e74 ctap2-proto: Make make::Request::pin_uv_auth_param optional
the `pin_uv_auth_param` field is an optional field in the CTAP spec.
2 years ago
Nick Zana 573069afad ctap2-proto: Derive serde traits for credential::make::OptionKey 2 years ago
Nick Zana 12d6f7fe51 ctap2-proto: Derive common traits for credential::{make, get}
Derives Debug and other common traits for the credential::{make, get}
types.
2 years ago
Nick Zana d4a94b83af ctap2-proto: Derive serde for device::Info
Serde renames are integers because CTAP uses integer keys in CBOR maps
2 years ago
Nick Zana 76cec18d0a ctap2-proto: Add missing device::Option CredentialManagementPreview 2 years ago
Nick Zana 38bd34becc ctap2-proto: Rename device::Options to proper serde names
Enum names are full names for clarity and readability. Serde renamed to
compressed CTAP protocol names.
2 years ago
Nick Zana 4670954e0d ctap2-proto: Derive serde for authenticator certification levels 2 years ago
Nick Zana 2434c8602a ctap2-proto: rename authenticator::device::Version to proper serde names
Renamed every value to screaming snake case manually to ensure that the
large number of acronyms and numbers don't cause an accidentally
incorrect value to be derived.
2 years ago
Nick Zana 542a3b9b77 ctap2-proto: Derive serde types for UsizeN
Just a wrapper struct around bounded_integer::BoundedUsize the
bounded_integer/serde1 feature needs to be enabled.
2 years ago
Nick Zana 3f61a17784 ctap2-proto: Derive Debug for helper type UsizeN 2 years ago
Nick Zana 1ca1793a24 ctap2-proto: Add new CTAP 2.2 device::Info fields 2 years ago
Nick Zana 502fe2b176 ctap2-proto: Implement serde for authentciator::client_pin::AuthProtocolVersion 2 years ago
Nick Zana e1b8a49f0e ctap2-proto: Replace HashMap with BTreeMap for make::Request 2 years ago
Nick Zana 5bc9e57c11 ctap2-proto: formatting 2 years ago
Nick Zana 5803ed02c2 ctap2-proto: Remove bounded_vec dependency
bounded_vec does not correctly handle collections with a lower bound of
0.
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