37个版本
0.4.0 | 2024年7月25日 |
---|---|
0.4.0-alpha.24 | 2023年11月29日 |
0.4.0-alpha.23 | 2023年10月5日 |
0.4.0-alpha.18 | 2023年6月20日 |
0.2.6 | 2019年5月22日 |
#65 in 密码学
9,170 个月下载
在 4 crates 中使用
1MB
20K SLoC
用于与CTAP1/CTAP2安全密钥交互的Rust库
这是一个通过Rust与安全密钥类型设备交互的跨平台库。
- 支持的平台:Windows、Linux、FreeBSD、NetBSD、OpenBSD和macOS。
- 支持的数据传输:USB HID。
- 支持协议:通过USB的FIDO U2F。CTAP2支持即将推出,目前正在 不稳定 的
ctap2
分支 上进行工作。
该库目前专注于USB安全密钥,但预计将扩展以支持更多的数据传输。
使用方法
目前只有一个简单的示例函数,尝试注册和签名。它使用 env_logger 进行日志记录,您可以通过 RUST_LOG
环境变量进行配置
cargo build --example main
RUST_LOG=debug cargo run --example main
正确的使用方法应该是在其他东西中调用此库,例如Firefox。为此,已公开一些 C头文件。
测试
有一些跨平台运行循环逻辑和协议解码器的测试
cargo test
Fuzzing
有USB协议读取器的fuzzers,基本上是模糊HID层的输入。目前(尚未)为调用者(如Gecko)使用的C API提供fuzzers。
要进行fuzzing,您将需要cargo-fuzz(来自GitHub的最新版本)以及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
依赖关系
~2–4.5MB
~86K SLoC