Nick Zana
4f589f4525
ctap2-proto: fix typo in Command enum variant
2 years ago
Nick Zana
de4e3c39e0
ctap2-proto: Import std::fmt::Display used for authenticator::credential::management::Error
2 years ago
Nick Zana
2bcc0699f1
chore: Derive std::marker::ConstParamTy for types used as const params
2 years ago
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.
2 years ago
Nick Zana
448c8cb79b
ctap2-proto: Add client_pin::raw::RawResponse for de/serialization of client_pin::Response enum as CBOR
2 years ago
Nick Zana
2f53d730c8
ctap2-proto: Add client_pin::raw::RawRequest for de/serialization of client_pin::Request enum as CBOR
2 years 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.
2 years 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.
2 years 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.
2 years 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.
2 years ago
Nick Zana
63a9be04ad
ctap2-proto: Add pin_uv_auth_token param to authenticator::client_pin::Response::GetPinToken
2 years ago
Nick Zana
7827fb82fe
ctap2-proto: Remove all fields from authenticator::client_pin::Response::SetPin
...
This response type has no fields.
2 years ago
Nick Zana
54028012a8
ctap2-proto: Derive Debug, Eq, and Ord traits for authenticator::client_pin::Permission enum
2 years ago
Nick Zana
408c4864da
ctap2-proto: Specify relying_party_id type as Cow<'a, str> in authenticator::client_pin::Request variant fields
2 years ago
Nick Zana
b1963220d8
ctap2-proto: Implement std::fmt::Display for authenticator::client_pin::Error
2 years ago
Nick Zana
3f04a35447
ctap2-proto: Change &[u8] to fixed size arrays in authenticator::client_pin::{Request, Response} fields
2 years 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.
2 years ago
Nick Zana
848fcf43b4
ctap2-proto: Add missing version parameter to authenticator::client_pin::Request::SetPin
2 years 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.
2 years ago
Nick Zana
941a5f3949
ctap2-proto: Enable adt_const_params feature
...
This unstable feature is used in the
authenticator::client_pin::auth_protocol module to keep track of which
version of the PinUvAuthProtocol a given Authenticator or Platform
interface implements.
2 years ago
Nick Zana
6b84fd398e
ctap2-proto: Put extensions::cred_protect::Policy serde derivation behind "serde" feature flag
2 years ago
Nick Zana
feabea834a
ctap2-proto: Formatting
2 years 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.
2 years 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.
2 years 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.
2 years ago
Nick Zana
5ea0cfeb9e
ctap2-proto: Derive common traits for extensions::cred_protect::Policy
...
Derive Clone, Copy, and serde traits for usage in CTAP messages
2 years ago
Nick Zana
67a2986167
ctap2-proto: Gate serde attributes for authenticator::assertion::get types behind serde feature
2 years ago
Nick Zana
cea42642dc
ctap2-proto: Set associated raw values for extensions::cred_protect::Policy enum
2 years ago
Nick Zana
e1b50351a3
Remove all clippy warning bypasses
2 years ago
Nick Zana
76089d60cb
ctap2_proto: remove extraneous client_pin::Subcommand enum
2 years ago
Nick Zana
413b55f098
ctap2-proto: Add self params to Ctap Authentictaor methods
...
Self required to access authenticator.
2 years ago
Nick Zana
0804a06f02
ctap2-proto: Uncomment temporarily disabled methods
2 years ago
Nick Zana
7db826dc78
ctap2-proto: derive serde traits for authenticator::reset::Error
2 years ago
Nick Zana
b5e33f889e
ctap2-hid: All ctap commands need self reference
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
754fc51510
ctap2-proto: Include all of fido-common in prelude
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