[package]
name = "btctax-store"
version = "0.2.0"
edition.workspace = true
license.workspace = true
description = "Encrypted, atomic, single-user vault storage for the btctax Bitcoin tax ledger."
repository.workspace = true
homepage.workspace = true
keywords.workspace = true
categories = ["finance"]

[dependencies]
# crypto-rust = pure-Rust backend (no system crypto lib) → cross-platform (NFR8); allow-variable-time-crypto needed for RSA.
sequoia-openpgp = { version = "1", default-features = false, features = ["crypto-rust", "allow-variable-time-crypto", "allow-experimental-crypto"] }
rusqlite = { version = "0.31", features = ["bundled", "serialize"] }
fs2 = "0.4"            # cross-platform exclusive single-instance lock (flock on Unix / LockFileEx on Windows) — NFR8
zeroize = "1"
anyhow = "1"
thiserror = "1"

[target.'cfg(unix)'.dependencies]
rustix = { version = "0.38", features = ["mm"] }                       # mlock/munlock

[target.'cfg(windows)'.dependencies]
windows-sys = { version = "0.59", features = ["Win32_System_Memory", "Win32_Foundation"] } # VirtualLock/VirtualUnlock

[dev-dependencies]
tempfile = "3"
