xous-core/services/pddb/Cargo.toml
2023-01-18 00:02:46 +08:00

95 lines
3.5 KiB
TOML

[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.31"
xous-ipc = "0.9.31"
log-server = { package = "xous-api-log", version = "0.1.26" }
ticktimer-server = { package = "xous-api-ticktimer", version = "0.9.26" }
xous-names = { package = "xous-api-names", version = "0.9.28" }
susres = {package = "xous-api-susres", version = "0.9.26"}
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"}
# passwords
sha2 = {path = "../engine-sha512"}
digest = "0.9.0"
hkdf = "0.11.0"
zeroize = "1.3.0"
zeroize_derive = "1.1.0"
# 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.13", optional = true, default-features = false }
# performance profiling
perflib = {path="../../tools/perflib", optional = true}
[target.'cfg(any(windows,unix))'.dependencies]
rand = "0.7.3"
rand_chacha = "0.3.1"
hex = { version = "0.4.3", default-features = false, features = ["alloc"], optional = true }
[features]
precursor = ["utralib/precursor"]
hosted = ["utralib/hosted"]
renode = ["utralib/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"]