[package]
edition = "2021"
rust-version = "1.88"
name = "ironcrypt"
version = "0.1.2"
authors = ["Paterne G. G."]
build = false
exclude = [
"/images/",
"/.github/",
"/.cargo/",
"/sdks/",
"/prometheus/",
"/loki/",
"/alertmanager/",
"/nginx/",
"Dockerfile",
".dockerignore",
"docker-compose.yml",
"docker-compose.prod.yml",
"docker-compose.lab.yml",
"Makefile",
"audit.toml",
"deny.toml",
".env.example",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Library-first crypto toolkit: Argon2 password hashing, AES-256-GCM / XChaCha20 streaming, RSA/ECC hybrid encryption, and optional CLI/daemon."
homepage = "https://github.com/teamflp/ironcrypt"
documentation = "https://docs.rs/ironcrypt"
readme = "README.md"
keywords = [
"cryptography",
"argon2",
"aes-gcm",
"rsa",
"security",
]
categories = [
"cryptography",
"authentication",
]
license = "MIT"
repository = "https://github.com/teamflp/ironcrypt"
[package.metadata.docs.rs]
all-features = false
rustdoc-args = [
"--cfg",
"docsrs",
]
[features]
aws = [
"dep:aws-config",
"dep:aws-sdk-secretsmanager",
]
azure = [
"dep:azure_security_keyvault_secrets",
"dep:azure_identity",
]
cli = [
"dep:clap",
"dep:tar",
"dep:flate2",
"dep:tempfile",
]
cloud = [
"aws",
"azure",
"vault",
]
daemon = [
"dep:axum",
"dep:tower-http",
"dep:tokio-util",
"dep:futures",
"dep:tokio-rustls",
"dep:rustls",
"dep:aws-lc-rs",
"dep:rustls-pki-types",
"dep:hyper",
"dep:hyper-util",
"dep:tower",
"tokio/net",
"tokio/io-util",
"dep:clap",
]
default = []
full = [
"cli",
"daemon",
"cloud",
"interactive",
]
gcp = ["dep:google-cloud-secretmanager-v1"]
hsm = ["dep:pkcs11"]
interactive = [
"dep:indicatif",
"cli",
]
vault = ["dep:vaultrs"]
[lib]
name = "ironcrypt"
crate-type = [
"lib",
"cdylib",
]
path = "src/lib.rs"
[[bin]]
name = "ironcrypt"
path = "src/main.rs"
required-features = ["cli"]
[[bin]]
name = "ironcryptd"
path = "src/bin/daemon.rs"
required-features = ["daemon"]
[[example]]
name = "basic-usage"
path = "examples/basic-usage.rs"
[[example]]
name = "password"
path = "examples/password.rs"
[[example]]
name = "stream_aes"
path = "examples/stream_aes.rs"
[[test]]
name = "cli"
path = "tests/cli.rs"
required-features = ["cli"]
[[test]]
name = "crypto_negative_test"
path = "tests/crypto_negative_test.rs"
[[test]]
name = "crypto_test"
path = "tests/crypto_test.rs"
[[test]]
name = "data_type_test"
path = "tests/data_type_test.rs"
[[test]]
name = "integration_test"
path = "tests/integration_test.rs"
required-features = ["cli"]
[[test]]
name = "secrets_integration_test"
path = "tests/secrets_integration_test.rs"
required-features = [
"aws",
"azure",
]
[[test]]
name = "signing_test"
path = "tests/signing_test.rs"
[[test]]
name = "standards_test"
path = "tests/standards_test.rs"
harness = true
[dependencies.aes-gcm]
version = "0.10.3"
[dependencies.aes-gcm-stream]
version = "0.2.4"
[dependencies.argon2]
version = "0.5.3"
[dependencies.async-trait]
version = "0.1"
[dependencies.aws-config]
version = "1.10"
optional = true
[dependencies.aws-lc-rs]
version = "1.17.3"
optional = true
[dependencies.aws-sdk-secretsmanager]
version = "1.111"
optional = true
[dependencies.axum]
version = "0.7.5"
features = [
"ws",
"macros",
"json",
]
optional = true
[dependencies.azure_identity]
version = "0.27.0"
optional = true
[dependencies.azure_security_keyvault_secrets]
version = "0.6.0"
optional = true
[dependencies.base64]
version = "0.22.1"
[dependencies.byteorder]
version = "1.5.0"
[dependencies.chacha20poly1305]
version = "0.10.1"
[dependencies.chrono]
version = "0.4"
features = ["serde"]
[dependencies.cipher]
version = "0.4.4"
[dependencies.clap]
version = "4.5.20"
features = [
"derive",
"env",
]
optional = true
[dependencies.elliptic-curve]
version = "0.13.8"
[dependencies.flate2]
version = "1.0.30"
optional = true
[dependencies.futures]
version = "0.3"
optional = true
[dependencies.google-cloud-secretmanager-v1]
version = "0.4.5"
optional = true
[dependencies.hex]
version = "0.4.3"
[dependencies.hkdf]
version = "0.12.3"
[dependencies.hyper]
version = "1"
optional = true
[dependencies.hyper-util]
version = "0.1"
features = [
"tokio",
"server-auto",
"service",
]
optional = true
[dependencies.indicatif]
version = "0.18.0"
optional = true
[dependencies.metrics]
version = "0.24.2"
[dependencies.metrics-exporter-prometheus]
version = "0.17.2"
[dependencies.p256]
version = "0.13.2"
features = ["ecdh"]
[dependencies.pkcs11]
version = "0.2.0"
optional = true
[dependencies.pkcs8]
version = "0.10.2"
features = [
"pem",
"encryption",
]
[dependencies.rand]
version = "0.8.6"
features = [
"std_rng",
"getrandom",
]
default-features = false
[dependencies.rsa]
version = "0.9.10"
features = ["pem"]
[dependencies.rustls]
version = "0.23"
optional = true
[dependencies.rustls-pki-types]
version = "1.9"
optional = true
[dependencies.serde]
version = "1.0.228"
features = ["derive"]
[dependencies.serde_json]
version = "1.0"
[dependencies.sha2]
version = "0.10.6"
[dependencies.signature]
version = "2.2.0"
[dependencies.subtle]
version = "2.5.0"
[dependencies.tar]
version = "0.4.46"
optional = true
[dependencies.tempfile]
version = "3.20.0"
optional = true
[dependencies.thiserror]
version = "2.0.12"
[dependencies.tokio]
version = "1"
features = [
"rt",
"macros",
"sync",
"time",
]
[dependencies.tokio-rustls]
version = "0.26"
optional = true
[dependencies.tokio-util]
version = "0.7.11"
features = ["io-util"]
optional = true
[dependencies.toml]
version = "0.8.14"
[dependencies.tower]
version = "0.5"
optional = true
[dependencies.tower-http]
version = "0.5.2"
features = [
"cors",
"trace",
]
optional = true
[dependencies.tracing]
version = "0.1"
[dependencies.tracing-appender]
version = "0.2.3"
[dependencies.tracing-subscriber]
version = "0.3"
features = [
"fmt",
"json",
"env-filter",
]
[dependencies.unicode-general-category]
version = "1.0.0"
[dependencies.vaultrs]
version = "0.7.4"
optional = true
[dependencies.zeroize]
version = "1.8.1"
[dev-dependencies.assert_cmd]
version = "2.0"
[dev-dependencies.doc-comment]
version = "0.3"
[dev-dependencies.mockall]
version = "0.12"
[dev-dependencies.predicates]
version = "3.1"
[dev-dependencies.rand]
version = "0.8.6"
[dev-dependencies.sha2]
version = "0.10.8"
[dev-dependencies.tempfile]
version = "3.20.0"