Expand description

ctap-types maps the various types involved in the FIDO CTAP protocol to Rust structures consisting of heapless data types.

We currently follow the non-public editor’s draft dated 19 March 2019. It still uses FIDO_2_1_PRE to signal new commands, but uses non-vendor API numbering (e.g. 0xA for credential management).

It also contains a lightweight CBOR deserializer, as the existing serde_cbor creates very large code.

The various transport protocols (USB, NFC, BLE) are expected to handle low-level protocol details and deserialize requests / serialize responses, so the authenticator logic is decoupled from these details.

Re-exports

pub use heapless;
pub use cbor_smol as serde;
pub use ctap2::Error;
pub use ctap2::Result;

Modules

The FIDO CTAP Authenticator API in terms of RPC with our types.

Because why wouldn’t pile JOSE on top of CBOR…

Types for CTAP1.

Types for CTAP2.

Subset of WebAuthn types that crept into CTAP.

Macros

Local version of debug!.

Immediate version of debug!.

Local version of error!.

Immediate version of error!.

Local version of info!.

Immediate version of info!.

Local version of log!.

Immediate version of log!.

Local version of trace!.

Immediate version of trace!.

Fallible version of debug!.

Fallible immediate version of debug!.

Fallible version of error!.

Fallible immediate version of error!.

Fallible version of info!.

Fallible immediate version of info!.

Fallible immediate version of log!.

Fallible version of trace!.

Fallible immediate version of trace!.

Fallible version of warn!.

Fallible immediate version of warn!.

Local version of warn!.

Immediate version of warn!.

Structs

A fixed capacity String

A fixed capacity Vec

Traits

Call a remote procedure with a request, receive a response, maybe.