[package]
name = "fido-authenticator"
version = "0.4.0-rc.1"
authors = ["The Trussed developers", "Nicolas Stalder <n@stalder.io>", "Nitrokey GmbH"]
edition = "2021"
license = "Apache-2.0 OR MIT"
repository = "https://github.com/trussed-dev/fido-authenticator"
documentation = "https://docs.rs/fido-authenticator"
description = "FIDO authenticator Trussed app"

[dependencies]
apdu-app = { version = "0.2", optional = true }
cbor-smol = "0.5"
cosey = "0.4"
ctap-types = { version = "=0.6.0-rc.3", features = ["get-info-full", "large-blobs", "third-party-payment"] }
ctaphid-app = { version = "0.2", optional = true }
delog = "0.1"
heapless = "0.9"
heapless-bytes = { version = "0.5", features = ["heapless-0.9"]}
iso7816 = { version = "0.2", optional = true }
littlefs2-core = "0.1"
serde = { version = "1.0", default-features = false }
serde_bytes = { version = "0.11.14", default-features = false }
serde-indexed = "0.1"
sha2 = { version = "0.10", default-features = false }
trussed-chunked = { version = "0.3", optional = true }
trussed-core = { version = "0.2", features = ["aes256-cbc", "certificate-client", "chacha8-poly1305", "crypto-client", "ed255", "filesystem-client", "hmac-sha256", "management-client", "p256", "sha256", "ui-client"] }
trussed-fs-info = "0.3"
trussed-hkdf = "0.4"

[features]
dispatch = ["apdu-dispatch", "ctaphid-dispatch", "dep:iso7816"]
apdu-dispatch = ["dep:apdu-app"]
ctaphid-dispatch = ["dep:ctaphid-app"]
disable-reset-time-window = []

# enables support for a large-blob array longer than 1024 bytes
chunked = ["dep:trussed-chunked"]

log-all = []
log-none = []
log-trace = []
log-info = []
log-debug = []
log-warn = []
log-error = []

[dev-dependencies]
admin-app = { git = "https://github.com/Nitrokey/admin-app.git", tag = "v0.1.0-nitrokey.21", features = ["migration-tests"] }
aes = "0.8.4"
cbc = { version = "0.1.2", features = ["alloc"] }
ciborium = "0.2.2"
ciborium-io = "0.2.2"
cipher = "0.4.4"
ctaphid = { version = "0.3.1", default-features = false }
ctaphid-dispatch = "0.4"
delog = { version = "0.1.6", features = ["std-log"] }
env_logger = "0.11"
hex-literal = "0.4.1"
hmac = "0.12.1"
interchange = "0.3"
itertools = "0.14"
littlefs2 = "0.7"
log = "0.4.21"
p256 = { version = "0.13.2", features = ["ecdh"] }
rand = "0.8.4"
rand_chacha = "0.3"
sha2 = "0.10"
serde_test = "1.0.176"
trussed = { git = "https://github.com/trussed-dev/trussed.git", rev = "0f8df68be879acdde1f8cf428c11e5d29692a47b", features = ["virt"] }
trussed-staging = { git = "https://github.com/trussed-dev/trussed-staging.git", tag = "v0.4.0", features = ["chunked", "hkdf", "virt", "fs-info"] }
trussed-usbip = { git = "https://github.com/trussed-dev/pc-usbip-runner.git", rev = "017921df0930707c4af68882ccb1f8b3f1bbf7c5", default-features = false, features = ["ctaphid"] }
usbd-ctaphid = "0.4"
x509-parser = "0.16"

[package.metadata.docs.rs]
features = ["chunked", "dispatch"]

[patch.crates-io]
trussed = { git = "https://github.com/trussed-dev/trussed.git", rev = "0f8df68be879acdde1f8cf428c11e5d29692a47b" }

[profile.test]
opt-level = 2
