[package]
name = "synor-crypto"
version.workspace = true
edition.workspace = true
authors.workspace = true
license.workspace = true
description = "Quantum-resistant cryptography for Synor blockchain"

[dependencies]
synor-types = { path = "../synor-types" }

# Classical cryptography
ed25519-dalek = { workspace = true }
x25519-dalek = { workspace = true }
rand = { workspace = true }
rand_core = { workspace = true }

# Post-quantum cryptography (NIST FIPS 203-206)
pqcrypto-dilithium = { workspace = true }   # FIPS 204 (ML-DSA)
pqcrypto-kyber = { workspace = true }       # FIPS 203 (ML-KEM)
pqcrypto-sphincsplus = { workspace = true } # FIPS 205 (SLH-DSA)
pqcrypto-falcon = { workspace = true }      # FIPS 206 (FN-DSA)
pqcrypto-traits = { workspace = true }

# Hashing
sha3 = { workspace = true }
blake3 = { workspace = true }

# Key derivation
hkdf = "0.12"
pbkdf2 = { version = "0.12", features = ["simple"] }
hmac = "0.12"

# BIP-39 mnemonics
tiny-bip39 = "1.0"

# Utilities
serde = { workspace = true }
serde_json = { workspace = true }
borsh = { workspace = true }
thiserror = { workspace = true }
zeroize = { version = "1.7", features = ["derive"] }
hex = { workspace = true }

[dev-dependencies]
criterion = { workspace = true }
proptest = { workspace = true }

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