[package]
edition = "2024"
rust-version = "1.88"
name = "encryption-rust"
version = "1.3.0"
authors = ["erik <erik@erik.xyz>"]
build = false
exclude = [
"CLAUDE.md",
"AGENTS.md",
"ruvector.db",
".swarm",
".claude-flow",
".claude",
".agents",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "可插拔密码学组件库的 Rust 实现:在统一契约下提供对称加密、非对称加密、哈希、密钥派生(HKDF / PBKDF2 / Argon2 / scrypt)、签名(SM2 / ECDSA / Ed25519)、密钥协商(ECDH / X25519)与后量子密钥封装(ML-KEM),包含 AES/Sodium 与国密 SM2/SM3/SM4/ZUC 等实现"
readme = "README.md"
keywords = [
"encryption",
"cryptography",
"sm2",
"sm3",
"sm4",
]
categories = ["cryptography"]
license = "MIT"
repository = "https://github.com/erikwang2013/encryption-rust"
[package.metadata.docs.rs]
all-features = true
[features]
actix-web = ["dep:actix-web"]
axum = ["dep:axum"]
bee-rust = [
"axum",
"dep:bee_router",
]
default = []
ecat = [
"axum",
"dep:ecat-middleware",
"dep:tower",
"dep:http",
]
poem = ["dep:poem"]
rocket = ["dep:rocket"]
salvo = ["dep:salvo"]
warp = ["dep:warp"]
[lib]
name = "encryption"
path = "src/lib.rs"
[[example]]
name = "quickstart"
path = "examples/quickstart.rs"
[[test]]
name = "crypto_roundtrip"
path = "tests/crypto_roundtrip.rs"
[[test]]
name = "invariants"
path = "tests/invariants.rs"
[[test]]
name = "known_answer"
path = "tests/known_answer.rs"
[[test]]
name = "sm2"
path = "tests/sm2.rs"
[[bench]]
name = "crypto_bench"
path = "benches/crypto_bench.rs"
harness = false
[dependencies.actix-web]
version = "4"
optional = true
[dependencies.aes]
version = "0.8"
features = ["zeroize"]
[dependencies.aes-gcm]
version = "0.10"
features = ["zeroize"]
[dependencies.aes-gcm-siv]
version = "0.11.1"
[dependencies.argon2]
version = "0.5.3"
features = ["zeroize"]
[dependencies.aria]
version = "0.1.0"
features = ["zeroize"]
[dependencies.axum]
version = "0.8"
optional = true
[dependencies.base64]
version = "0.22"
[dependencies.bee_router]
version = "1"
optional = true
default-features = false
[dependencies.belt-hash]
version = "0.1.1"
[dependencies.blake2]
version = "0.10.6"
[dependencies.blake3]
version = "1.8"
[dependencies.camellia]
version = "0.1.0"
features = ["zeroize"]
[dependencies.cbc]
version = "0.1"
features = [
"alloc",
"block-padding",
]
[dependencies.chacha20]
version = "0.9"
features = ["zeroize"]
[dependencies.chacha20poly1305]
version = "0.10"
[dependencies.ctr]
version = "0.9"
[dependencies.ecat-middleware]
version = "4"
optional = true
default-features = false
[dependencies.ed25519-dalek]
version = "2.2"
features = ["rand_core"]
[dependencies.getrandom]
version = "0.4"
features = ["sys_rng"]
[dependencies.ghash]
version = "0.5.1"
[dependencies.hkdf]
version = "0.12"
[dependencies.hmac]
version = "0.12"
[dependencies.http]
version = "1"
optional = true
[dependencies.k256]
version = "0.13.4"
features = [
"ecdsa",
"ecdh",
]
[dependencies.kuznyechik]
version = "0.8.2"
features = ["zeroize"]
[dependencies.ml-kem]
version = "0.2.3"
features = ["zeroize"]
[dependencies.p256]
version = "0.13.2"
features = [
"ecdsa",
"ecdh",
]
[dependencies.p384]
version = "0.13.1"
features = [
"ecdsa",
"ecdh",
]
[dependencies.pbkdf2]
version = "0.12"
[dependencies.poem]
version = "3"
optional = true
[dependencies.poly1305]
version = "0.8"
features = ["zeroize"]
[dependencies.rand_core]
version = "0.6"
features = ["getrandom"]
[dependencies.rocket]
version = "0.5"
optional = true
[dependencies.rsa]
version = "0.9.10"
features = ["getrandom"]
[dependencies.salsa20]
version = "0.10.2"
features = ["zeroize"]
[dependencies.salvo]
version = "1"
optional = true
[dependencies.scrypt]
version = "0.11.0"
[dependencies.sha2]
version = "0.10"
[dependencies.sha3]
version = "0.10.9"
[dependencies.sm2]
version = "0.14"
features = [
"arithmetic",
"pke",
"dsa",
"alloc",
"std",
"precomputed-tables",
]
default-features = false
[dependencies.sm3]
version = "0.5"
[dependencies.sm4]
version = "0.5"
features = ["zeroize"]
[dependencies.streebog]
version = "0.10.2"
[dependencies.threefish]
version = "0.5.2"
features = ["zeroize"]
[dependencies.tower]
version = "0.5"
optional = true
[dependencies.warp]
version = "0.4"
optional = true
[dependencies.x25519-dalek]
version = "2.0.1"
features = [
"static_secrets",
"zeroize",
"getrandom",
]
[dependencies.zeroize]
version = "1"
[dependencies.zuc]
version = "0.4"
[dev-dependencies.criterion]
version = "0.8"
[dev-dependencies.ml-kem]
version = "0.2.3"
features = [
"deterministic",
"zeroize",
]
[dev-dependencies.tokio]
version = "1"
features = [
"macros",
"rt",
]
[dev-dependencies.tower]
version = "0.5"
features = ["util"]
[dev-dependencies.warp]
version = "0.4"
features = ["test"]
[profile.release]
lto = true
codegen-units = 1