[package]
edition = "2024"
rust-version = "1.88"
name = "encryption-rust"
version = "1.0.1"
authors = ["erik <erik@erik.xyz>"]
build = false
exclude = [
"CLAUDE.md",
"AGENTS.md",
"ruvector.db",
".swarm",
".claude-flow",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "可插拔密码学组件库的 Rust 实现:在统一契约下提供对称加密、非对称加密、哈希与密钥派生(HKDF / PBKDF2),包含 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"
[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 = "sm2"
path = "tests/sm2.rs"
[dependencies.actix-web]
version = "4"
optional = true
[dependencies.aes]
version = "0.8"
[dependencies.aes-gcm]
version = "0.10"
[dependencies.axum]
version = "0.8"
optional = true
[dependencies.bee_router]
version = "1"
optional = true
default-features = false
[dependencies.cbc]
version = "0.1"
features = [
"alloc",
"block-padding",
]
[dependencies.chacha20poly1305]
version = "0.10"
[dependencies.ecat-middleware]
version = "4"
optional = true
default-features = false
[dependencies.getrandom]
version = "0.4"
features = ["sys_rng"]
[dependencies.hkdf]
version = "0.12"
[dependencies.hmac]
version = "0.12"
[dependencies.http]
version = "1"
optional = true
[dependencies.pbkdf2]
version = "0.12"
[dependencies.poem]
version = "3"
optional = true
[dependencies.rand_core]
version = "0.6"
features = ["getrandom"]
[dependencies.rocket]
version = "0.5"
optional = true
[dependencies.salvo]
version = "1"
optional = true
[dependencies.sha2]
version = "0.10"
[dependencies.sm2]
version = "0.14"
features = [
"arithmetic",
"pke",
"alloc",
"std",
"precomputed-tables",
]
default-features = false
[dependencies.sm3]
version = "0.5"
[dependencies.sm4]
version = "0.5"
[dependencies.tower]
version = "0.5"
optional = true
[dependencies.warp]
version = "0.4"
optional = true
[dependencies.zeroize]
version = "1"
[dependencies.zuc]
version = "0.4"
[dev-dependencies.base64]
version = "0.22"
[dev-dependencies.tokio]
version = "1"
features = [
"macros",
"rt",
]
[dev-dependencies.tower]
version = "0.5"
features = ["util"]
[dev-dependencies.warp]
version = "0.4"
features = ["test"]