[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 }
cfg-if = "1.0.0"
chacha20poly1305 = { version = "0.10.1", optional = true }
jsonwebtoken = { workspace = true }
pbkdf2 = { version = "0.12.2", optional = true }
rand = { workspace = true, optional = true }
sha2 = { version = "0.10.8", optional = true }
thiserror.workspace = true
serde_json.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",
]
