Revision control

Copy as Markdown

Other Tools

[package]
name = "authenticator"
version = "0.5.0"
authors = [ "Dana Keeler <dkeeler@mozilla.com>", "J.C. Jones <jc@mozilla.com>", "John Schanck <jschanck@mozilla.com>", "Kyle Machulis <kyle@nonpolynomial.com>", "Martin Sirringhaus <martin.sirringhaus@suse.com", "Tim Taubert <ttaubert@mozilla.com>" ]
keywords = ["ctap2", "u2f", "fido", "webauthn"]
categories = ["cryptography", "hardware-support", "os"]
license = "MPL-2.0"
description = "Library for interacting with CTAP1/2 security keys for Web Authentication. Used by Firefox."
edition = "2018"
[badges]
travis-ci = { repository = "mozilla/authenticator-rs", branch = "master" }
maintenance = { status = "actively-developed" }
[features]
default = ["crypto_nss"]
binding-recompile = ["bindgen"]
# Crypto backends
# NOTE: These are mutually exclusive, but cargo does not support that.
# Selecting more than one will result in a compilation error!
# Default: NSS
crypto_dummy = []
crypto_openssl = ["openssl", "openssl-sys"]
crypto_nss = ["nss-gk-api", "pkcs11-bindings"]
crypto_rust = ["aes", "cbc", "rand_core", "p256", "hmac"]
gecko = ["nss-gk-api/gecko"]
[target.'cfg(target_os = "linux")'.dependencies]
libudev = "^0.2"
[target.'cfg(target_os = "freebsd")'.dependencies]
devd-rs = "0.3"
[target.'cfg(target_os = "macos")'.dependencies]
core-foundation = "0.9"
[target.'cfg(target_os = "windows")'.dependencies]
memoffset = "0.8"
[target.'cfg(target_os = "windows")'.dependencies.winapi]
version = "^0.3"
features = [
"handleapi",
"hidclass",
"hidpi",
"hidusage",
"setupapi",
]
[build-dependencies]
bindgen = { version = "^0.58.1", optional = true }
[dependencies]
rand = "0.8"
log = "0.4"
libc = "0.2"
runloop = "0.1.0"
bitflags = "1.0"
serde = { version = "1.0", features = ["derive"] }
serde_bytes = "0.11"
serde_cbor = "0.11"
serde_json = "1.0"
bytes = { version = "0.5", optional = true, features = ["serde"] }
base64 = "^0.21"
sha2 = "^0.10.0"
cfg-if = "1.0"
# Crypto backends
openssl-sys = { version = "0.9", optional = true}
openssl = { version = "0.10", optional = true}
nss-gk-api = { version = "0.3.0", optional = true }
pkcs11-bindings = { version = "0.1.4", optional = true }
aes = { version = "0.8", optional = true }
cbc = { version = "0.1", default-features = false, features = ["std"], optional = true }
rand_core = { version = "0.6", features = ["getrandom"], optional = true }
hmac = { version = "0.12", optional = true }
p256 = { version = "0.13", default-features = false, features = ["arithmetic", "ecdsa", "ecdh", "std"], optional = true }
[dev-dependencies]
env_logger = "^0.6"
getopts = "^0.2"
assert_matches = "1.2"
rpassword = "5.0"
[lints.rust]
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(fuzzing)'] }