[package]
name = "oqs-safe"
version = "0.4.1"
edition = "2021"
license = "MIT OR Apache-2.0"
authors = ["Orlando Trajano <orlychikka@gmail.com>"]
repository = "https://github.com/0rlych1kk4/oqs-safe-0"
documentation = "https://docs.rs/oqs-safe"
readme = "README.md"
categories = ["cryptography", "api-bindings"]
keywords = ["post-quantum", "pqc", "ml-kem", "ml-dsa", "liboqs"]
description = "Safe Rust wrapper over libOQS for ML-KEM and ML-DSA with mock fallback."

include = [
  "src/**",
  "examples/**",
  "tests/**",
  "Cargo.toml",
  "Cargo.lock",
  "build.rs",
  "README.md",
  "CHANGELOG.md",
  "SECURITY.md",
  "LICENSE-MIT",
  "LICENSE-APACHE",
  ".github/workflows/ci.yml",
]

[dependencies]
zeroize = { version = "1", features = ["derive"] }
rand_core = { version = "0.6", features = ["getrandom"] }
getrandom = "0.2"
hkdf = "0.12"
subtle = "2"
sha2 = "0.10"
x25519-dalek = { version = "2", features = ["static_secrets"] }

[build-dependencies]
pkg-config = "0.3"
cc = "1"

[features]
default = []

# Real liboqs backend
liboqs = []

# ML-KEM / Kyber
ml_kem_512 = ["kyber512"]
ml_kem_768 = ["kyber768"]
ml_kem_1024 = ["kyber1024"]

kyber512 = []
kyber768 = []
kyber1024 = []

# ML-DSA / Dilithium
ml_dsa_44 = ["dilithium2"]
ml_dsa_65 = ["dilithium3"]
ml_dsa_87 = ["dilithium5"]

dilithium2 = []
dilithium3 = []
dilithium5 = []

[dev-dependencies]
hex = "0.4"
rand = "0.8"

[package.metadata.docs.rs]
features = [
  "ml_kem_512",
  "ml_kem_768",
  "ml_kem_1024",
  "ml_dsa_44",
  "ml_dsa_65",
  "ml_dsa_87"
]
no-default-features = true
rustdoc-args = ["--cfg", "docsrs"]
