[package]
name = "synor-crypto-wasm"
version = "0.1.0"
edition = "2021"
description = "WASM-compatible cryptography for Synor web wallet"
license = "MIT OR Apache-2.0"

[lib]
crate-type = ["cdylib", "rlib"]

[dependencies]
# WASM bindings
wasm-bindgen = "0.2"
js-sys = "0.3"

# Classical cryptography (pure Rust, WASM compatible)
ed25519-dalek = { version = "2.1", default-features = false, features = ["rand_core"] }
rand = { version = "0.8", default-features = false, features = ["std_rng"] }
getrandom = { version = "0.2", features = ["js"] }

# Hashing (pure Rust)
sha3 = "0.10"
blake3 = "1.5"

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

# BIP-39
bip39 = { package = "tiny-bip39", version = "1.0" }

# Post-quantum cryptography (WASM compatible)
pqc_dilithium = { version = "0.2", default-features = false, features = ["wasm"] }

# Serialization
serde = { version = "1.0", features = ["derive"] }
serde-wasm-bindgen = "0.6"

# Utilities
hex = "0.4"
zeroize = { version = "1.7", features = ["derive"] }

[dev-dependencies]
wasm-bindgen-test = "0.3"

[features]
default = []
# Enable when we have WASM-compatible Dilithium
pqc = []

[profile.release]
# Optimize for size in WASM
lto = true
opt-level = "s"
