/
Cargo.toml
101 lines (92 loc) · 3.67 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
[package]
name = "pddb"
version = "0.1.0"
authors = ["bunnie <bunnie@kosagi.com>"]
edition = "2018"
description = "Plausibly Deniable Database"
# Dependency versions enforced by Cargo.lock.
[dependencies]
bitflags = { version = "1" }
xous = "0.9.60"
xous-ipc = "0.9.60"
log-server = { package = "xous-api-log", version = "0.1.56" }
ticktimer-server = { package = "xous-api-ticktimer", version = "0.9.56" }
xous-names = { package = "xous-api-names", version = "0.9.58" }
susres = { package = "xous-api-susres", version = "0.9.56" }
log = "0.4.14"
num-derive = { version = "0.3.3", default-features = false }
num-traits = { version = "0.2.14", default-features = false }
rkyv = { version = "0.4.3", features = ["const_generics"] }
trng = { path = "../trng" }
spinor = { path = "../spinor" }
aes = { path = "../aes" }
root-keys = { path = "../root-keys" }
cipher = "0.4.2"
bitfield = "0.13.2"
aes-gcm-siv = { version = "0.11.1", default-features = false, features = [
"alloc",
"aes",
] }
# aes-gcm-siv = {git="https://github.com/RustCrypto/AEADs.git", branch="master"}
llio = { path = "../llio" }
subtle = { version = "2.4.1", default-features = false }
tts-frontend = { path = "../tts" }
rand_core = "0.6.4"
# passwords
sha2 = { version = "0.10.8" }
digest = "0.10.7"
hkdf = "0.12.4"
zeroize = { version = "1.7.0", features = ["zeroize_derive"] }
zeroize_derive = "1.4.2"
# bcrypt
blowfish = { version = "0.9.1", features = ["bcrypt"] }
# UX (for password entry and notifications)
gam = { path = "../gam" }
locales = { path = "../../locales" }
modals = { path = "../modals" }
utralib = { version = "0.1.24", optional = true, default-features = false }
# performance profiling
perflib = { path = "../../libs/perflib", optional = true }
[target.'cfg(any(windows,unix))'.dependencies]
rand = "0.8.5"
rand_chacha = "0.3.1"
hex = { version = "0.4.3", default-features = false, features = [
"alloc",
], optional = true }
[features]
precursor = ["utralib/precursor", "sha2/precursor"]
hosted = ["utralib/hosted", "sha2/hosted"]
renode = ["utralib/renode", "sha2/renode"]
# when selected, physical disk addresses are set to 64 bits, otherwise, they are 32 bits.
# 32 bit addressing is recommended for Precursor, as its disk is only 128MiB and it has limited RAM for bookkeeping.
u64_pa = []
# selecting mbbb employs a "make before break" update on the page table. This minimizes risk of corruption of
# the page table when being updated in the case of a power loss, in exchange for more than doubling the time it
# takes to update the page table.
mbbb = []
# selecting deterministic makes the allocation and page replacement algorithms deterministic. normally we don't want
# this but it's helpful for debugging.
deterministic = []
# this flag adds CI tests to the build
ci = []
# hosted mode manual tests
pddbtest = []
# turns on automatic basis tracking. must also be used in conjunction with pddbtest
autobasis = []
# this feature is for text-to-speech support
tts = []
# support migration type 1, from version 00.00.01.01 -> 00.00.02.01, incurs a 42kiB penalty in binary size
migration1 = []
# hazardous debug flag decorates any debug paths that might accidentally leak key material
hazardous-debug = []
test-rekey = []
# hardware tests
hwtest = []
# routines to help with performance profiling of the PDDB in hosted mode
pddb-flamegraph = ["hex"]
perfcounter = ["perflib"]
# introduce a slight delay after UX boxes swap, in case of race conditions. Shouldn't be necessary anymore, but kept around in case there's a new edge case we missed.
ux-swap-delay = []
# make the PDDB very small (4MiB). Note that booting a device with an incompatible `smalldb` setting will break the PDDB image. Use with caution.
smalldb = []
default = ["mbbb"]