[package] name = "trussed" version = "0.1.0" authors = ["Nicolas Stalder "] edition = "2021" homepage = "https://trussed.dev" repository = "https://github.com/trussed-dev/trussed" license = "Apache-2.0 OR MIT" description = "Modern Cryptographic Firmware" readme = "README.md" [dependencies] # general bitflags = "1.2" # const-oid = "0.4.5" cfg-if = "1.0" embedded-hal = { version = "0.2.3", features = ["unproven"] } flexiber = { version = "0.1.0", features = ["derive", "heapless"] } generic-array = "0.14.4" heapless = { version = "0.7", features = ["serde"] } hex-literal = "0.3.1" nb = "1" postcard = "0.7.0" rand_core = "0.6" serde = { version = "1.0", default-features = false } zeroize = { version = "1.2", default-features = false, features = ["zeroize_derive"] } # RustCrypto aes = { version = "0.7", default-features = false } blake2 = { version = "0.9", default-features = false, optional = true } block-modes = { version = "0.8", default-features = false } chacha20 = { version = "0.7", default-features = false, features = ["rng"] } chacha20poly1305 = { version = "0.8", default-features = false, features = ["heapless", "reduced-round"] } des = { version = "0.7", optional = true } hmac = "0.11" sha-1 = { version = "0.9", default-features = false, optional = true } sha2 = { version = "0.9", default-features = false } # ours cosey = "0.3" delog = "0.1.0" cbor-smol = "0.4" heapless-bytes = { version = "0.3.0", features = ["cbor"] } interchange = "0.2.1" littlefs2 = "0.3.1" p256-cortex-m4 = { version = "0.1.0-alpha.5", features = ["prehash", "sec1-signatures"] } salty = { version = "0.2.0", features = ["cose"] } serde-indexed = "0.1.0" [dev-dependencies] # Testing serial_test = { version = "0.6" } entropy = "0.4.0" # Somehow, this is causing a regression. # rand_core = { version = "0.5", features = ["getrandom"] } [features] default = ["default-mechanisms", "clients-1"] verbose-tests = ["littlefs2/ll-assertions"] verbose-lfs = ["littlefs2/ll-assertions", "littlefs2/ll-trace"] log-all = [] log-none = [] log-info = [] log-debug = [] log-warn = [] log-error = [] # mechanisms # default-mechanisms = ["aes256-cbc", "chacha8-poly1305", "ed255", "hmac-sha256", "p256", "sha256", "trng"] default-mechanisms = [ "aes256-cbc", "chacha8-poly1305", "ed255", "x255", # "hmac-blake2s", "hmac-sha1", "hmac-sha256", # For some reason, this breaks Solo 2 firmware # At minimum, this seems to have a huge "block" method # "hmac-sha512", "p256", "sha256", "tdes", "totp", "trng", ] aes256-cbc = [] chacha8-poly1305 = [] ed255 = [] x255 = [] hmac-blake2s = ["blake2"] hmac-sha1 = [] hmac-sha256 = [] hmac-sha512 = [] p256 = [] sha256 = [] tdes = ["des"] totp = ["sha-1"] trng = ["sha-1"] clients-1 = [] clients-2 = [] clients-3 = [] clients-4 = [] clients-5 = [] clients-6 = [] clients-7 = [] clients-8 = [] clients-9 = [] clients-10 = [] clients-11 = [] clients-12 = [] test-attestation-cert-ids = [] # [patch.crates-io] # interchange = { git = "https://github.com/trussed-dev/interchange", branch = "main" }