-
Notifications
You must be signed in to change notification settings - Fork 31
Expand file tree
/
Copy pathCargo.toml
More file actions
126 lines (118 loc) · 4.55 KB
/
Copy pathCargo.toml
File metadata and controls
126 lines (118 loc) · 4.55 KB
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
118
119
120
121
122
123
124
125
126
[workspace]
members = [
"integration",
"qos_bridge",
"qos_client",
"qos_clock",
"qos_core",
"qos_crypto",
"qos_host",
"qos_hex",
"qos_net",
"qos_test_primitives",
"qos_p256",
"qos_nsm",
# special members that are not default-members
"qos_crypto/fuzz",
"qos_net/fuzz",
"qos_nsm/fuzz",
"qos_p256/fuzz",
]
default-members = [
"integration",
"qos_bridge",
"qos_client",
"qos_clock",
"qos_core",
"qos_crypto",
"qos_host",
"qos_hex",
"qos_net",
"qos_test_primitives",
"qos_p256",
"qos_nsm",
]
exclude = [
"init",
"qos_aws",
"qos_system",
"qos_enclave",
]
# We need this to avoid issues with the mock feature uinintentionally being
# enabled just because some tests need it.
# https://nickb.dev/blog/cargo-workspace-and-the-feature-unification-pitfall/
resolver = "2"
[workspace.package]
rust-version = "1.88"
version = "0.6.1"
edition = "2021"
license = "AGPL-3.0-only"
[workspace.lints.rust]
missing_docs = "warn"
unsafe_code = "deny"
[workspace.lints.clippy]
missing_errors_doc = "allow"
module_name_repetitions = "allow"
[workspace.lints.rustdoc]
missing_docs = "warn"
[workspace.dependencies]
# External dependencies
aes-gcm = { version = "0.10.3", features = ["aes", "alloc"], default-features = false }
aws-nitro-enclaves-cose = { version = "0.5", default-features = false }
aws-nitro-enclaves-nsm-api = { version = "0.4", default-features = false }
axum = { version = "0.6.20", features = ["http1", "tokio", "json"], default-features = false }
borsh = { version = "1.0", features = ["std", "derive"], default-features = false }
chunked_transfer = { version = "1.5.0", default-features = false }
futures = { version = "0.3.30" }
der = { version = "0.7", default-features = false }
hex-literal = "0.4.0"
hickory-resolver = { version = "0.25.2", features = ["tokio", "dnssec-ring"], default-features = false }
hkdf = { version = "0.12", default-features = false }
hmac = { version = "0.12", default-features = false }
httparse = { version = "1.9.4", default-features = false }
lazy_static = "1.4"
libc = "=0.2.174"
nix = { version = "0.30.1", features = ["socket"], default-features = false }
p256 = { version = "0.13.2", default-features = false }
p384 = { version = "0.13", features = ["ecdsa", "std"], default-features = false }
rand = "0.9"
rand_core = { version = "0.9", default-features = false, features = ["os_rng"] }
rpassword = { version = "7", default-features = false }
rustls = { version = "0.23.5" }
serde = { version = "1", features = ["derive"], default-features = false }
serde_bytes = { version = "0.11.10", default-features = false }
serde_json = { version = "1" }
sha2 = { version = "0.10", default-features = false }
thiserror = { version = "2.0.12", features = ["std"], default-features = false }
tokio = { version = "1.47.1", features = ["macros", "rt-multi-thread"], default-features = false }
tokio-rustls = { version = "0.26.2" }
tokio-vsock = { version = "0.7.2" }
ureq = { version = "2.9", default-features = false }
vsss-rs = { version = "5.1", default-features = false, features = ["std", "zeroize"] }
webpki = { version = "0.22.4", default-features = false }
webpki-roots = { version = "1.0.2" }
x509-cert = { version = "0.2.5", features = ["pem"], default-features = false }
yubikey = { version = "0.8", features = ["untested"], default-features = false }
zeroize = { version = "1.8", default-features = false }
# Internal workspace dependencies
integration = { path = "integration" }
qos_host = { path = "qos_host", default-features = false }
qos_client = { path = "qos_client", version = "0.6.1", default-features = false }
qos_clock = { path = "qos_clock", version = "0.6.1", default-features = false }
qos_core = { path = "qos_core", version = "0.6.1", default-features = false }
qos_crypto = { path = "qos_crypto", version = "0.6.1", default-features = false }
qos_hex = { path = "qos_hex", version = "0.6.1", default-features = false }
qos_net = { path = "qos_net", version = "0.6.1", default-features = false }
qos_nsm = { path = "qos_nsm", version = "0.6.1", default-features = false }
qos_p256 = { path = "qos_p256", version = "0.6.1" }
qos_test_primitives = { path = "qos_test_primitives", version = "0.6.1" }
# Option for the future: build all QOS applications with additional runtime checks
# to intentionally panic on integer overflows instead of continuing execution
# with unexpected values.
# This turns some logic bugs into denial-of-service, which is a tradeoff we're
# likely willing to take.
#
# reminder: test extensively before enabling by default
# [profile.release]
# # enable arithmetic checks at runtime
# overflow-checks = true