[package] name = "pddb" version = "0.1.0" authors = ["bunnie "] 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"]