forked from trussed-dev/trussed
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Cargo.toml
117 lines (108 loc) · 3.02 KB
/
Cargo.toml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
[package]
name = "trussed"
version = "0.1.0"
authors = ["Nicolas Stalder <[email protected]>"]
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-5"]
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" }