Files
rustfs/crypto/Cargo.toml
DamonXue ab88166990 feat: Add KMS support with RustyVault integration for object encryption
- Updated Cargo.lock to include the crypto dependency.
- Modified crypto/Cargo.toml to add KMS feature dependency.
- Enhanced error handling in crypto/src/error.rs with new ErrNotSupported variant.
- Made rusty_vault_client and sse_kms modules public in crypto/src/lib.rs.
- Refactored sse.rs to support KMS initialization and updated SSE headers to lowercase for AWS compatibility.
- Implemented lazy initialization of KMS client in sse_kms.rs, allowing deferred setup until first use.
- Updated SSEKMSEncryption to utilize RustyVault for key management and encryption operations.
- Integrated KMS encryption into the object storage layer in ecstore/src/set_disk.rs, allowing part-level encryption.
- Added metadata handling for encrypted parts in the storage API.
- Cleaned up unused imports and improved code organization across various files.
2025-05-25 21:37:12 +08:00

50 lines
1.2 KiB
TOML

[package]
name = "crypto"
edition.workspace = true
license.workspace = true
repository.workspace = true
rust-version.workspace = true
version.workspace = true
[lints]
workspace = true
[dependencies]
aes-gcm = { version = "0.10.3", features = ["std"], optional = true }
argon2 = { version = "0.5.3", features = ["std"], optional = true }
base64 = "0.22.1"
cfg-if = "1.0.0"
chacha20poly1305 = { version = "0.10.1", optional = true }
hex = "0.4.3"
http = { workspace = true }
jsonwebtoken = { workspace = true }
lazy_static = "1.4.0"
pbkdf2 = { version = "0.12.2", optional = true }
rand = { workspace = true, optional = true }
reqwest = { workspace = true, features = ["json"] }
ring = { version = "0.17.14", features = ["std"] }
sha2 = { workspace = true, optional = true }
thiserror.workspace = true
serde = { workspace = true }
serde_json.workspace = true
tracing = { workspace = true }
tokio = { workspace = true, features = ["full"] }
uuid = { workspace = true }
[dev-dependencies]
test-case.workspace = true
time.workspace = true
[features]
default = ["crypto", "fips"]
fips = []
crypto = [
"dep:aes-gcm",
"dep:argon2",
"dep:chacha20poly1305",
"dep:pbkdf2",
"dep:rand",
"dep:sha2",
]
kms = ["crypto"] # KMS功能依赖crypto feature