Crates.io | authenticator-ctap2-2021 |
lib.rs | authenticator-ctap2-2021 |
version | 0.3.2-dev.1 |
source | src |
created_at | 2022-08-26 05:19:01.003216 |
updated_at | 2022-08-26 05:19:01.003216 |
description | Library for interacting with CTAP1/2 security keys for Web Authentication. Used by Firefox. |
homepage | |
repository | https://github.com/mozilla/authenticator-rs/ |
max_upload_size | |
id | 652552 |
size | 822,420 |
This is a cross-platform library for interacting with Security Key-type devices via Rust.
ctap2
branch.This library currently focuses on USB security keys, but is expected to be extended to support additional transports.
There's only a simple example function that tries to register and sign right now. It uses
env_logger for logging, which you
configure with the RUST_LOG
environment variable:
cargo build --example main
RUST_LOG=debug cargo run --example main
Proper usage should be to call into this library from something else - e.g., Firefox. There are some C headers exposed for the purpose.
There are some tests of the cross-platform runloop logic and the protocol decoder:
cargo test
There are fuzzers for the USB protocol reader, basically fuzzing inputs from the HID layer. There are not (yet) fuzzers for the C API used by callers (such as Gecko).
To fuzz, you will need cargo-fuzz (the latest version from GitHub) as well as Rust Nightly.
rustup install nightly
cargo install cargo-fuzz
cargo +nightly fuzz run u2f_read -- -max_len=512
cargo +nightly fuzz run u2f_read_write -- -max_len=512