forked from enarx/enarx
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Cargo.toml
239 lines (217 loc) · 11.3 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
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
[package]
name = "enarx"
version = "0.7.1"
edition = "2021"
description = "Tools for deploying WebAssembly into Enarx Keeps"
authors = ["The Enarx Project Developers"]
homepage = "https://enarx.dev/"
repository = "https://github.com/enarx/enarx"
license = "Apache-2.0"
keywords = ["sgx", "sev", "kvm", "tee"]
categories = ["os", "os::linux-apis", "network-programming", "hardware-support"]
exclude = [".github/", "docs/", "tests/"]
[features]
default = []
# non-default features
gdb = ["dep:gdbstub", "enarx-shim-kvm/gdb", "enarx-shim-sgx/gdb"]
dbg = [ "enarx-exec-wasmtime/dbg", "enarx-shim-kvm/dbg", "enarx-shim-sgx/dbg" ]
disable-sgx-attestation = ["enarx-shim-sgx/disable-sgx-attestation"]
bench = ["dep:tracing-flame", "enarx-exec-wasmtime/bench", "enarx-shim-kvm/bench", "enarx-shim-sgx/bench"]
[dependencies]
anyhow = { workspace = true, features = ["std"] }
atty = { workspace = true }
bitflags = { workspace = true }
camino = { workspace = true }
clap = { workspace = true }
colorful = { workspace = true }
der = { workspace = true }
dirs = { workspace = true }
drawbridge-client = { workspace = true }
enarx-exec-wasmtime = { workspace = true }
enarx-config = { workspace = true }
hex = { workspace = true }
keyring = { workspace = true }
libc = { workspace = true }
tracing = { workspace = true, features = ["release_max_level_info", "std"] }
tracing-subscriber = { workspace = true, features = ["ansi", "smallvec", "std", "tracing-log"] }
oauth2 = { workspace = true }
once_cell = { workspace = true, features = ["std"] }
openidconnect = { workspace = true, features = ["ureq"] }
ring = { workspace = true }
rsa = { workspace = true }
rustls = { workspace = true }
rustls-pemfile = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
sha2 = { workspace = true }
toml = { workspace = true }
url = { workspace = true }
x509-cert = { workspace = true }
# optional dependencies
gdbstub = { workspace = true, features = ["std"], optional = true }
tracing-flame = { workspace = true, optional = true }
[target.'cfg(all(target_os = "linux", target_arch = "x86_64"))'.dependencies]
chrono = { workspace = true }
const-default = { workspace = true }
der = { workspace = true }
goblin = { workspace = true, features = ["elf32", "endian_fd", "std"], default-features = false }
iocuddle = { workspace = true }
kvm-bindings = { workspace = true }
kvm-ioctls = { workspace = true }
lset = { workspace = true }
mmarinus = { workspace = true }
nbytes = { workspace = true }
p384 = { workspace = true }
percent-encoding = { workspace = true }
pkcs8 = { workspace = true, features = ["std", "pem"] }
primordial = { workspace = true, features = ["alloc"] }
protobuf = { workspace = true }
rand = { workspace = true }
sallyport = { workspace = true }
shared = { workspace = true }
semver = { workspace = true }
sgx = { workspace = true, features = ["rcrypto"] }
static_assertions = { workspace = true }
ureq = { workspace = true }
vdso = { workspace = true }
x509-cert = { workspace = true }
x86_64 = { workspace = true, features = ["instructions"] }
# binary dependencies
enarx-exec-wasmtime = { version = "0.7.1", path = "crates/exec-wasmtime", artifact = "bin", target = "x86_64-unknown-linux-musl", default-features = false }
enarx-shim-kvm = { version = "0.7.1", path = "crates/shim-kvm", artifact = "bin", target = "x86_64-unknown-none", default-features = false }
enarx-shim-sgx = { version = "0.7.1", path = "crates/shim-sgx", artifact = "bin", target = "x86_64-unknown-none", default-features = false }
[build-dependencies]
protobuf-codegen-pure = { workspace = true }
[dev-dependencies]
process_control = { workspace = true }
rustls = { workspace = true, features = ["dangerous_configuration"] } # `dangerous_configuration` is required to specify a custom TLS verifier
shell-words = { workspace = true }
testaso = { workspace = true }
tempfile = { workspace = true }
wat = { workspace = true }
# binary dependencies
enarx_wasm_tests = { path = "tests/crates/enarx_wasm_tests", artifact = "bin", target = "wasm32-wasi", default-features = false }
[target.'cfg(all(target_os = "linux", target_arch = "x86_64"))'.dev-dependencies]
enarx_exec_tests = { path = "tests/crates/enarx_exec_tests", artifact = "bin", target = "x86_64-unknown-linux-musl", default-features = false }
enarx_syscall_tests = { path = "tests/crates/enarx_syscall_tests", artifact = "bin", target = "x86_64-unknown-none", default-features = false }
[target.'cfg(not(windows))'.dev-dependencies]
async-h1 = { workspace = true }
async-std = { workspace = true }
drawbridge-server = { workspace = true }
futures = { workspace = true }
http-types = { workspace = true }
[profile.release]
codegen-units = 1
lto = true
strip = true
[profile.dev.package.rcrt1]
opt-level = 3
[profile.dev.package.num-bigint-dig]
opt-level = 3
[profile.release.package.enarx-exec-wasmtime]
overflow-checks = true
[profile.release.package.enarx-shim-kvm]
overflow-checks = true
[profile.release.package.enarx-shim-sgx]
overflow-checks = true
[profile.release.package.sallyport]
overflow-checks = true
[profile.release.package.shared]
overflow-checks = true
[workspace]
members = ["crates/*", "tests/crates/*"]
[workspace.dependencies]
aes-gcm = { version = "0.10.1", features = ["aes"], default-features = false }
anyhow = { version = "1.0.66", default-features = false }
array-const-fn-init = { version = "0.1.0", default-features = false }
async-h1 = { version = "2.3.3", default-features = false }
async-std = { version = "1.11.0", default-features = false, features = ["attributes"] }
atty = { version = "0.2.14", default-features = false }
bitflags = { version = "1.2.0", default-features = false }
camino = { version = "1.0.9", default-features = false }
cfg-if = { version = "1.0.0", default-features = false }
chrono = { version = "0.4.19", features = ["clock", "serde", "std"], default-features = false }
clap = { version = "4.0", features = ["std", "derive", "env", "error-context", "help", "usage", "wrap_help"], default-features = false }
colorful = { version = "0.2.0", default-features = false }
const-default = { version = "1.0.0", default-features = false }
const-oid = { version = "0.9.0", default-features = false }
crt0stack = { version = "0.1.0", default-features = false }
der = { version = "0.6.1", features = ["std"], default-features = false }
dirs = { version = "4.0.0", default-features = false }
drawbridge-client = { version = "0.2.2", default-features = false }
drawbridge-server = { version = "0.2.2", default-features = false }
enarx-exec-wasmtime = { version = "0.7.1", path = "crates/exec-wasmtime", default-features = false }
enarx-config = { version = "0.7.1", path = "crates/enarx-config", default-features = false }
futures = { version = "0.3.21", default-features = false }
getrandom = { version = "0.2.6", features = ["rdrand"], default-features = false }
gdbstub = { version = "0.5.0", default-features = false }
gdbstub_arch = { version = "0.1.1", default-features = false }
goblin = { version = "0.6.0", features = ["elf64"], default-features = false }
hex = { version = "0.4.3", features = ["std"], default-features = false }
http-types = { version = "2.12.0", default-features = false }
io-extras = { version = "=0.17.0", default-features = false }
iocuddle = { version = "0.1.1", default-features = false }
keyring = { version = "1.1.2", default-features = false }
kvm-bindings = { version = "0.6.0", default-features = false }
kvm-ioctls = { version = "0.12.0", default-features = false }
libc = { version = "0.2.141", default-features = false }
linked_list_allocator = { version = "0.10.1", default-features = false }
lset = { version = "0.3.0", default-features = false }
mmarinus = { version = "0.4.0", default-features = false }
mmledger = { version = "0.4.0", default-features = false }
nbytes = { version = "0.1.0", default-features = false }
noted = { version = "1.0.0", default-features = false }
numtoa = { version = "0.2.4", default-features = false }
oauth2 = { version = "4.2.2", default-features = false, features = ["ureq"] }
once_cell = { version = "1.13.0", default-features = false }
openidconnect = { version = "2.3.1", default-features = false }
p384 = { version = "0.11.1", features = ["std", "pem", "ecdsa"], default-features = false }
paste = { version = "1.0.0", default-features = false }
percent-encoding = { version = "2.2.0", default-features = false }
pkcs8 = { version = "0.9.0" }
primordial = { version = "0.5.0", default-features = false }
process_control = { version = "4.0.1", default-features = false }
protobuf = { version = "2.22.0", default-features = false }
protobuf-codegen-pure = { version = "2.27.0", default-features = false }
rand = { version = "0.8.0", features = ["std", "std_rng"], default-features = false }
rcrt1 = { version = "2.5.0", default-features = false }
ring = { version = "0.16.20", features = ["std"], default-features = false }
rsa = { version = "0.7.2", default-features = false }
rustls = { version = "0.20.6", default-features = false }
rustls-pemfile = { version = "1.0.0", default-features = false }
sallyport = { version = "0.7.1", path = "crates/sallyport", default-features = false }
shared = { version = "0.7.1", path = "crates/shared", default-features = false }
sec1 = { version = "0.3.0-pre.1", features = ["der"], default-features = false }
semver = { version = "1.0.0", default-features = false }
serde = { version = "1.0.136", features = ["derive"], default-features = false }
serde_json = { version = "1.0.79", features = ["std"], default-features = false }
serial_test = { version = "0.10.0", default-features = false }
sgx = { version = "0.6.0", default-features = false }
sha2 = { version = "0.10.2", default-features = false }
shell-words = { version = "1.1.0", default-features = false }
spin = { version = "0.9.8", default-features = false, features = ["lock_api", "spin_mutex", "rwlock", "lazy"] }
static_assertions = { version = "1.1.0", default-features = false }
tempfile = { version = "3.5.0", default-features = false }
testaso = { version = "0.1.0", default-features = false }
toml = { version = "0.5.9", default-features = false }
tracing = { version = "0.1.36", features = ["attributes"], default-features = false }
tracing-flame = { version = "0.2.0", default-features = false }
tracing-subscriber = { version = "0.3.15", features = ["env-filter", "fmt"], default-features = false }
ureq = { version = "2.4.0", default-features = false }
url = { version = "2.2.2", default-features = false }
vdso = { version = "0.2.2", default-features = false }
wat = { version = "1.0.0", default-features = false }
webpki-roots = { version = "0.22.2", default-features = false }
x509-cert = { version = "0.1.0", features = ["std"], default-features = false }
x86_64 = { version = "0.14.9", default-features = false }
xsave = { version = "2.0.2", default-features = false }
zeroize = { version = "1.5.4", features = ["alloc"], default-features = false }
# wasmtime and its pinned dependencies
# these will need to be updated together
wasmtime = { version = "5.0.1", features = ["cranelift", "pooling-allocator"], default-features = false }
cap-std = { version = "1.0.0", default-features = false }
io-lifetimes = { version = "1.0.0", default-features = false }
rustix = { version = "0.36.0", features = ["std"], default-features = false }
wasi-common = { version = "5.0.1", default-features = false }
wasmtime-wasi = { version = "5.0.1", features = ["sync"], default-features = false }
wiggle = { version = "5.0.1", default-features = false }