This adds support for encrypting and decrypting secrets. It implements the APIs required for unsealing. The APIs are not complete or compliant. Reviewed-on: #1 Squashed commit of the following: commitd77237aefeAuthor: C0ffeeCode <ritters_werth@outlook.com> Date: Wed Apr 2 18:59:33 2025 +0200 Refactor: Secret struct and feature-gates - Shamir and its dependencies behind a default feature - Secret has its own struct commit6eb02c8412Author: C0ffeeCode <ritters_werth@outlook.com> Date: Wed Apr 2 08:28:28 2025 +0200 Feat (sealing): Shamir Secret Sharing scheme commit5de9e1d74eAuthor: C0ffeeCode <ritters_werth@outlook.com> Date: Thu Mar 27 22:13:57 2025 +0100 Fix (sealing): Simple sealing with random nonce commit88ed714e22Author: C0ffeeCode <ritters_werth@outlook.com> Date: Thu Mar 27 17:13:48 2025 +0100 Feat (sealing): Simple Password sealing Password is generated on first startup. The password given to the user is not same as the one used to encrypt secrets commit4d342e8b99Author: C0ffeeCode <ritters_werth@outlook.com> Date: Wed Mar 26 21:51:27 2025 +0100 Feat (kv2): Support Sealing commit1accd45648Author: C0ffeeCode <ritters_werth@outlook.com> Date: Wed Mar 26 21:49:59 2025 +0100 WIP feat (sealing): Implement basic sealing functionality Currently, the key is just stored plainly in the database commit7949d64649Author: C0ffeeCode <ritters_werth@outlook.com> Date: Wed Mar 26 21:39:07 2025 +0100 Chore: Rename `DatabaseDriver` to `DbPool` and add a custom serde serializer `serialize_reject_none` as a utility
49 lines
1.2 KiB
TOML
49 lines
1.2 KiB
TOML
[package]
|
|
name = "rvault-server"
|
|
version = "0.1.0"
|
|
edition = "2024"
|
|
|
|
[features]
|
|
default = ["shamir"]
|
|
# default = ["insecure-dev-sealing"]
|
|
insecure-dev-sealing = []
|
|
shamir = ["vsss-rs", "p256"]
|
|
|
|
[dependencies]
|
|
log = "0.4.27"
|
|
env_logger = "0.11.7"
|
|
zeroize = { version = "1.8.1", features = ["zeroize_derive"] }
|
|
time = { version = "0.3.41", features = ["serde", "formatting"]}
|
|
tokio = { version = "1.44.1", features = ["full"] }
|
|
tower = { version = "0.5.2", features = [] }
|
|
axum = "0.8.3"
|
|
serde = "1.0.219"
|
|
serde_json = "1.0.140"
|
|
dotenvy = "0.15.7"
|
|
base64 = "0.22.1"
|
|
|
|
# utoipa = { version = "4.2.0", features = ["axum_extras"] }
|
|
sqlx = { version = "0.8.3", features = [
|
|
"sqlite",
|
|
# "postgres",
|
|
# "any",
|
|
"macros",
|
|
"runtime-tokio",
|
|
"tls-rustls",
|
|
"time"
|
|
] }
|
|
|
|
aes-gcm-siv = "0.11.1"
|
|
vsss-rs = { version = "5.1.0", optional = true, default-features = false, features = ["zeroize", "std"] }
|
|
p256 = { version = "0.13.2", optional = true, default-features = false, features = ["std", "ecdsa"] }
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[workspace.lints.clippy]
|
|
uninlined_format_args = "warn"
|
|
correctness = "warn"
|
|
suspicious = "warn"
|
|
complexity = "warn"
|
|
perf = "warn"
|
|
style = "warn"
|