workspace = { members = [ "crypt_guard_proc"], exclude = ["old"] }
[package]
name = "crypt_guard"
version = "2.0.0"
edition = "2021"
description = "CryptGuard is a post-quantum cryptography framework with NIST FIPS 203/204/205 (ML-KEM, ML-DSA, SLH-DSA) plus legacy Kyber/Falcon/Dilithium, combined with AES and XChaCha20."
license = "MIT"
repository = "https://github.com/mm9942/crypt_guard"
[features]
default = [
"ml-kem-backend",
"ml-dsa-backend",
]
ml-kem-backend = ["dep:ml-kem"]
ml-dsa-backend = ["dep:ml-dsa"]
sign-slhdsa = ["dep:slh-dsa"]
legacy-pqclean = [
"dep:pqcrypto-kyber",
"dep:pqcrypto-falcon",
"dep:pqcrypto-dilithium",
"dep:pqcrypto-traits",
"aes-gcm-siv-cipher",
"xchacha20poly1305-cipher",
"archive",
"zip",
"aes-ctr",
"aes-xts",
"legacy-aes",
]
aes-gcm-siv-cipher = []
xchacha20poly1305-cipher = []
aes-ctr = ["dep:ctr"]
aes-xts = ["dep:xts-mode"]
legacy-aes = ["dep:aes", "dep:cbc", "dep:block-padding"]
archive = ["dep:tar", "dep:xz2", "dep:flate2", "dep:walkdir"]
zip = ["dep:zip"]
[dependencies]
hex = "0.4.3"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter", "fmt", "registry", "time"] }
tracing-appender = "0.2"
hmac = "0.12.1"
rand = "0.8.5"
sha2 = "0.10.8"
chacha20 = "0.9.1"
once_cell = "1"
crypt_guard_proc = { path = "./crypt_guard_proc", version = "0.2.0" }
zeroize = { version = "1.8.1", features = ["derive"] }
digest = "0.10.7"
generic-array = "1.1.0"
aes-gcm-siv = "0.11.1"
chacha20poly1305 = "0.10.1"
chrono = "0.4.37"
hkdf = "0.13.0"
ml-kem = { version = "0.3.2", optional = true, features = ["zeroize"] }
ml-dsa = { version = "0.1.1", optional = true, features = ["zeroize", "rand_core"] }
slh-dsa = { version = "0.2.0-rc.5", optional = true }
pqcrypto-falcon = { version = "0.3.0", optional = true }
pqcrypto-traits = { version = "0.3.5", optional = true }
pqcrypto-dilithium = { version = "0.5.0", optional = true }
pqcrypto-kyber = { version = "0.8.1", optional = true }
aes = { version = "0.8.4", optional = true }
block-padding = { version = "0.3.3", optional = true }
cbc = { version = "0.1.2", optional = true, features = ["alloc", "std"] }
ctr = { version = "0.9.2", optional = true }
xts-mode = { version = "0.5.1", optional = true }
xz2 = { version = "0.1.7", optional = true, features = ["static"] }
tar = { version = "0.4.43", optional = true }
flate2 = { version = "1.0.35", optional = true }
walkdir = { version = "2.5.0", optional = true }
zip = { version = "2.2.2", optional = true }
rand_core_010 = { version = "0.10", package = "rand_core" }
sha2_011 = { version = "0.11", package = "sha2" }
getrandom = { version = "0.4.2", features = ["std"] }
[dev-dependencies]
tempfile = "3.10.1"
trybuild = "1.0.103"
[[example]]
name = "encrypt_aes"
path = "examples/encrypt_aes.rs"
required-features = ["ml-kem-backend"]
[[example]]
name = "encrypt_xchacha"
path = "examples/encrypt_xchacha.rs"
required-features = ["ml-kem-backend"]
[[example]]
name = "macro_example"
path = "examples/macro_example.rs"
required-features = ["legacy-pqclean"]
[[example]]
name = "signed_message"
path = "examples/signed_message.rs"
required-features = ["legacy-pqclean"]