[package]
name = "coffio"
version = "0.1.0"
authors = ["Rodolphe Bréard <rodolphe@what.tf>"]
edition = "2021"
description = "Abstraction layer for symmetric data encryption, primarily designed for database column encryption."
documentation = "https://docs.rs/coffio/"
readme = "README.md"
repository = "https://github.com/breard-r/coffio"
license = "MIT OR Apache-2.0"
keywords = ["cryptography", "encryption"]
categories = ["cryptography"]

[features]
default = ["aes", "chacha", "ikm-management"]
encryption = []
aes = ["encryption", "aes-gcm", "hkdf", "sha2"]
chacha = ["encryption", "chacha20poly1305", "blake3"]
ikm-management = []
encrypt-at = []

[dependencies]
base64ct = { version = "1.6.0", default-features = false, features = ["std"] }
getrandom = { version = "0.2.12", default-features = false }
thiserror = { version = "1.0.57", default-features = false }

# chacha feature:
# - XChaCha20Poly1305WithBlake3
chacha20poly1305 = { version = "0.10.1", default-features = false, features = ["std"], optional = true }
blake3 = { version = "1.5.0", default-features = false, optional = true }

# aes feature:
# - Aes128GcmWithSha256
aes-gcm = { version = "0.10.3", default-features = false, features = ["std", "aes"], optional = true }
hkdf = { version = "0.12.4", default-features = false, features = ["std"], optional = true }
sha2 = { version = "0.10.8", default-features = false, features = ["std"], optional = true }

[dev-dependencies]
criterion = "0.5.1"

[[bench]]
name = "decryption"
harness = false

[[bench]]
name = "encryption"
harness = false
