35 lines
1.3 KiB
TOML
35 lines
1.3 KiB
TOML
[package]
|
|
name = "engram-crypto"
|
|
version = "0.1.0"
|
|
edition = "2021"
|
|
description = "Quantum-secure encryption at rest for Engram — AES-256-GCM with PQ upgrade path"
|
|
license = "MIT"
|
|
|
|
[dependencies]
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_json = "1"
|
|
uuid = { version = "1", features = ["v4", "serde"] }
|
|
thiserror = "1"
|
|
# AES-256-GCM symmetric encryption (quantum-resistant at 256-bit key length)
|
|
aes-gcm = "0.10"
|
|
# BLAKE3 for key derivation (fast, cryptographically strong)
|
|
blake3 = "1"
|
|
# Random number generation
|
|
rand = "0.8"
|
|
# Base64 encoding for serialization (used in EncryptedContent serialization)
|
|
base64 = "0.22"
|
|
|
|
# TODO: Upgrade to post-quantum KEM/signature once crates stabilize.
|
|
# Target: ml-kem (CRYSTALS-Kyber / NIST ML-KEM) and ml-dsa (CRYSTALS-Dilithium / NIST ML-DSA).
|
|
# As of 2025, the `ml-kem` and `ml-dsa` crates are available on crates.io but not yet
|
|
# production-stable for all platforms. The algorithm registry structure below is designed
|
|
# so that the upgrade is a drop-in: add the PQ crate, implement the KemAlgorithm variant,
|
|
# and new writes use the new algorithm while old records continue to decrypt via the registry.
|
|
#
|
|
# Uncomment when ready:
|
|
# ml-kem = "0.2" # CRYSTALS-Kyber (NIST ML-KEM 768/1024)
|
|
# ml-dsa = "0.1" # CRYSTALS-Dilithium (NIST ML-DSA)
|
|
|
|
[dev-dependencies]
|
|
tempfile = "3"
|