Add picloud_shared::crypto: AES-256-GCM encrypt/decrypt envelope (12-byte CSPRNG nonce, 128-bit tag appended to ciphertext) plus a MasterKey sourced from PICLOUD_SECRET_KEY (base64 of 32 bytes), with a deterministic dev-key fallback gated on PICLOUD_DEV_MODE=true. Unset key without dev mode is fatal. Key rotation is out of v1.1.7 scope. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
31 lines
837 B
TOML
31 lines
837 B
TOML
[package]
|
|
name = "picloud-shared"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
rust-version.workspace = true
|
|
license.workspace = true
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[dependencies]
|
|
async-trait.workspace = true
|
|
serde.workspace = true
|
|
serde_json.workspace = true
|
|
thiserror.workspace = true
|
|
uuid.workspace = true
|
|
chrono.workspace = true
|
|
# Realtime broadcaster trait returns a broadcast::Receiver; subscriber
|
|
# tokens are HMAC-SHA256 over a base64url payload (v1.1.6).
|
|
tokio = { workspace = true, features = ["sync"] }
|
|
hmac.workspace = true
|
|
sha2.workspace = true
|
|
base64.workspace = true
|
|
# AES-256-GCM envelope + master-key sourcing (v1.1.7 crypto module).
|
|
aes-gcm.workspace = true
|
|
rand.workspace = true
|
|
tracing.workspace = true
|
|
|
|
[dev-dependencies]
|
|
tokio = { workspace = true, features = ["macros", "rt", "rt-multi-thread", "time", "sync"] }
|