98 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.
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 4a816e846c ctap2-proto: Add cosey dependency for COSE PublicKey type
Used to manage serialization and deserialization of COSE public keys
instead of coset in order to be able to derive De/Serialize for types
that include COSE public keys as fields in CBOR messages.

coset is inadequate for the purpose because it uses a distinct
AsCborSerialize trait instead of the standard serde::{Serialize,
Deserialize} traits.
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 860f574f0a ctap2-proto: Add hex dev-dependency for CBOR debugging 2 years ago
Nick Zana cea42642dc ctap2-proto: Set associated raw values for extensions::cred_protect::Policy enum 2 years ago
Nick Zana 8c8984edcb fido-common: Derive (Partial)Eq for public_key types 2 years ago
Nick Zana b86d20f0dd fido-common: Add TODO to de/serialize Transport::Unknown as inner String 2 years ago
Nick Zana d09fd56842 fido-common: Add Clone, Eq traits to attestation::Statement 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 d5a4a03c0d fido-common: derives comparison traits for several types
Derives PartialOrd and Ord for credential::public_key::Parameters
Derives PartialEq, Eq, PartialOrd and Ord for credential::public_key::UserEntity

Also derives clone and copy for some types.
2 years ago
Nick Zana 03fb2f1eb6 fido-common: Derive ordering for credential::Type 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 166fe1bca6 ctap2-proto: Add serde_with
Required for serializing and deserializing Vec<u8>s as byte strings
instead of sequences of bytes in CTAP request/response types.
2 years ago