trussed 0.1.0

Modern Cryptographic Firmware
Documentation
[package]
name = "trussed"
version = "0.1.0"
authors = ["Nicolas Stalder <n@stalder.io>"]
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" }