[package]
name = "product-os-security"
version = "0.0.44"
authors = ["Jeremy de Oliveira-Kumar <eremyj@gmail.com>"]
edition = "2021"
rust-version = "1.69"
description = "Product OS : Security provides a suite of helper tools to easily perform cryptograhpic operations including generating hashes, encrypting and decryting content."
readme = "readme.md"
license = "AGPL-3.0-only"
keywords = ["product-os"]
categories = []
build = false
exclude = []
include = []
autobins = true
autoexamples = true
autotests = true
autobenches = true
resolver = "2"
[dependencies]
no-std-compat = { version = "0.4.1", features = ["alloc"], optional = false }
blake2 = { version = "0.10.6", features = [], default-features = false, optional = true }
argon2 = { version = "0.5.3", features = [], default-features = false, optional = true }
orion = { version = "0.17.6", features = [], default-features = false, optional = true }
ring = { version = "0.17.8", features = [], default-features = false, optional = true }
x25519-dalek = { version = "2.0.1", default-features = false, optional = true }
hkdf = { version = "0.12.4", features = [], default-features = false, optional = true }
jwt-compact = { version = "0.8.0", features = [], default-features = false, optional = true }
sha2 = { version = "0.10.8", features = [], default-features = false, optional = true }
urlencoding = { version = "2.1.3", features = [], default-features = false, optional = true }
serde = { version = "1.0.215", features = [], default-features = false, optional = true }
serde_json = { version = "1.0.133", features = [], default-features = false, optional = true }
hex = { version = "0.4.3", features = [], default-features = false, optional = true }
base64 = { version = "0.21.7", features = [], default-features = false, optional = true }
uuid = { version = "1.11.0", features = [], default-features = false, optional = true }
chrono = { version = "0.4.38", features = [], default-features = false, optional = true }
totp-lite = { version = "2.0.1", features = [], default-features = false, optional = true }
const-oid = { version = "0.9.6", features = ["db"], default-features = false, optional = true }
der = { version = "0.7.9", features = ["alloc", "derive", "flagset", "oid"], default-features = false, optional = true }
spki = { version = "0.7.3", features = ["alloc"], default-features = false, optional = true }
arbitrary = { version = "1.4.1", features = ["derive"], default-features = false, optional = true }
signature = { version = "2.2.0", features = ["rand_core"], default-features = false, optional = true }
rsa = { version = "0.9.6", features = ["sha2"], default-features = false, optional = true }
rustls = { version = "0.23.21", features = [], default-features = false, optional = true }
rcgen = { version = "0.12.1", features = [], default-features = false, optional = true }
rustls-pemfile = { version = "2.2.0", features = [], default-features = false, optional = true }
rustls-pki-types = { version = "1.10.1", features = [], default-features = false, optional = true }
openssl = { version = "0.10.42", features = [], default-features = false, optional = true }
tracing = { version = "0.1.40", features = [], default-features = false, optional = false }
product-os-random = { version = ">= 0.0.1", features = [], default-features = false, optional = true }
product-os-async-executor = { version = ">= 0.0.1", features = [], default-features = false, optional = true }
product-os-urlencoding = { version = ">= 0.0.1", features = [], default-features = false, optional = true }
[patch.crates-io]
product-os-random = { path = "../product-os-random", features = [], default-features = false, optional = true }
product-os-async-executor = { path = "../product-os-async-executor", features = [], default-features = false, optional = true }
product-os-urlencoding = { path = "../product-os-urlencoding", features = [], default-features = false, optional = true }
[features]
default = ["no-std-compat/std", "product-os-random/default", "product-os-async-executor/default", "chrono/clock"]
all = ["default", "generator", "hash", "password_hash", "mac", "auth_verify", "jwt_auth_verify", "jwt_encrypt_decrypt",
"diffie_hellman_key_store", "diffie_hellman_client_server_key_store", "symmetric_encrypt_decrypt",
"public_private_encrypt_decrypt", "public_private_sign_verify", "time_otp", "string_safe", "certificates",
"vendored-openssl", "byte_vector", "file"]
generator = ["product-os-random/constrained"]
mac = ["blake2"]
password_hash = ["argon2/alloc", "argon2/password-hash", "product-os-random/constrained"]
hash = ["blake2", "generator"]
hasher = ["blake2"]
jwt_encrypt_decrypt = ["orion", "base64/alloc"]
jwt_auth_verify = ["jwt-compact", "chrono/alloc", "serde", "generator", "product-os-async-executor/moment", "serde_json/alloc"]
byte_vector = ["serde_json/alloc"]
auth_verify = ["hash", "mac", "generator", "serde_json/alloc", "product-os-urlencoding", "hex/alloc"]
diffie_hellman_key_store = ["x25519-dalek", "product-os-random/constrained", "uuid", "uuid/v4", "hkdf", "sha2"]
symmetric_encrypt_decrypt = ["orion", "product-os-random/constrained"]
time_otp = ["mac", "chrono/alloc", "product-os-async-executor/moment"]
string_safe = ["product-os-urlencoding"]
certificates_custom = ["chrono/alloc", "const-oid", "der", "spki", "signature", "rsa", "sha2", "rustls", "rustls-pemfile", "product-os-random/constrained"]
random = ["product-os-random/core"]
thread_send = ["product-os-random/send_only"]
custom = ["product-os-random/custom"]
jwt_encrypt_decrypt_std = ["orion/safe_api"]
diffie_hellman_client_server_key_store = ["orion/safe_api", "no-std-compat/std", "uuid/serde", "uuid/v4"]
public_private_encrypt_decrypt = ["no-std-compat/std", "product-os-random/default"]
public_private_sign_verify = ["ring/std"]
vendored-openssl = ["openssl/vendored"]
certificates = ["rustls", "rcgen", "rcgen/ring", "rustls-pemfile", "rustls-pemfile/std", "rustls-pki-types"]
open_ssl = ["openssl"]
file = []
[workspace]