[package]
name = "reallyme-crypto-dispatch"
version = "0.1.6"
edition.workspace = true
rust-version.workspace = true
license.workspace = true
repository.workspace = true
publish = true
description = "Algorithm dispatch, codec binding, and structural validation for cryptographic primitives."
[lib]
name = "crypto_dispatch"
[features]
default = []
native = [
"crypto-ed25519?/native",
"crypto-hmac?/native",
"crypto-p256?/native",
"crypto-p384?/native",
"crypto-p521?/native",
"crypto-secp256k1?/native",
"crypto-x25519?/native",
"crypto-ml-dsa-44?/native",
"crypto-ml-dsa-65?/native",
"crypto-ml-dsa-87?/native",
"crypto-ml-kem-512?/native",
"crypto-ml-kem-768?/native",
"crypto-ml-kem-1024?/native",
"crypto-aes256-gcm?/native",
"crypto-aes256-gcm-siv?/native",
"crypto-chacha20-poly1305?/native",
"crypto-sha2?/native",
"crypto-sha2-256?/native",
"crypto-sha3?/native",
"crypto-sha3-256?/native",
"crypto-x-wing?/native",
]
wasm = [
"crypto-ed25519?/wasm",
"crypto-hmac?/wasm",
"crypto-p256?/wasm",
"crypto-p384?/wasm",
"crypto-p521?/wasm",
"crypto-secp256k1?/wasm",
"crypto-x25519?/wasm",
"crypto-ml-dsa-44?/wasm",
"crypto-ml-dsa-65?/wasm",
"crypto-ml-dsa-87?/wasm",
"crypto-ml-kem-512?/wasm",
"crypto-ml-kem-768?/wasm",
"crypto-ml-kem-1024?/wasm",
"crypto-aes256-gcm?/wasm",
"crypto-aes256-gcm-siv?/wasm",
"crypto-chacha20-poly1305?/wasm",
"crypto-sha2?/wasm",
"crypto-sha2-256?/wasm",
"crypto-sha3?/wasm",
"crypto-sha3-256?/wasm",
"crypto-x-wing?/wasm",
]
aes = ["dep:crypto-aes256-gcm"]
aes-gcm-siv = ["dep:crypto-aes256-gcm-siv"]
chacha20-poly1305 = ["dep:crypto-chacha20-poly1305"]
ed25519 = ["dep:crypto-ed25519"]
hmac = ["dep:crypto-hmac"]
ml-dsa-44 = ["dep:crypto-ml-dsa-44"]
ml-dsa-65 = ["dep:crypto-ml-dsa-65"]
ml-dsa-87 = ["dep:crypto-ml-dsa-87"]
ml-kem-512 = ["dep:crypto-ml-kem-512"]
ml-kem-768 = ["dep:crypto-ml-kem-768"]
ml-kem-1024 = ["dep:crypto-ml-kem-1024"]
p256 = ["dep:crypto-p256"]
p384 = ["dep:crypto-p384"]
p521 = ["dep:crypto-p521"]
secp256k1 = ["dep:crypto-secp256k1"]
sha2 = ["dep:crypto-sha2", "dep:crypto-sha2-256"]
sha3 = ["dep:crypto-sha3", "dep:crypto-sha3-256"]
x25519 = ["dep:crypto-x25519"]
x-wing = ["dep:crypto-x-wing"]
[dependencies]
thiserror = { workspace = true }
crypto-core = { package = "reallyme-crypto-core", version = "0.1.2", path = "../core" }
codec-multikey = { package = "reallyme-codec-multikey", version = "0.1.1", path = "../../codec/multikey" }
crypto-ed25519 = { package = "reallyme-crypto-ed25519", version = "0.1.2", path = "../primitives/ed25519", optional = true, default-features = false }
crypto-hmac = { package = "reallyme-crypto-hmac", version = "0.1.1", path = "../primitives/hmac", optional = true, default-features = false }
crypto-p256 = { package = "reallyme-crypto-p256", version = "0.1.3", path = "../primitives/p256", optional = true, default-features = false }
crypto-p384 = { package = "reallyme-crypto-p384", version = "0.1.3", path = "../primitives/p384", optional = true, default-features = false }
crypto-p521 = { package = "reallyme-crypto-p521", version = "0.1.3", path = "../primitives/p521", optional = true, default-features = false }
crypto-secp256k1 = { package = "reallyme-crypto-secp256k1", version = "0.1.3", path = "../primitives/secp256k1", optional = true, default-features = false }
crypto-x25519 = { package = "reallyme-crypto-x25519", version = "0.1.2", path = "../primitives/x25519", optional = true, default-features = false }
crypto-ml-dsa-44 = { package = "reallyme-crypto-ml-dsa-44", version = "0.1.2", path = "../primitives/ml-dsa-44", optional = true, default-features = false }
crypto-ml-dsa-65 = { package = "reallyme-crypto-ml-dsa-65", version = "0.1.2", path = "../primitives/ml-dsa-65", optional = true, default-features = false }
crypto-ml-dsa-87 = { package = "reallyme-crypto-ml-dsa-87", version = "0.1.2", path = "../primitives/ml-dsa-87", optional = true, default-features = false }
crypto-ml-kem-512 = { package = "reallyme-crypto-ml-kem-512", version = "0.1.2", path = "../primitives/ml-kem-512", optional = true, default-features = false }
crypto-ml-kem-768 = { package = "reallyme-crypto-ml-kem-768", version = "0.1.3", path = "../primitives/ml-kem-768", optional = true, default-features = false }
crypto-ml-kem-1024 = { package = "reallyme-crypto-ml-kem-1024", version = "0.1.3", path = "../primitives/ml-kem-1024", optional = true, default-features = false }
crypto-aes256-gcm = { package = "reallyme-crypto-aes256-gcm", version = "0.1.3", path = "../primitives/aes256-gcm", optional = true, default-features = false }
crypto-aes256-gcm-siv = { package = "reallyme-crypto-aes256-gcm-siv", version = "0.1.2", path = "../primitives/aes256-gcm-siv", optional = true, default-features = false }
crypto-chacha20-poly1305 = { package = "reallyme-crypto-chacha20-poly1305", version = "0.1.2", path = "../primitives/chacha20-poly1305", optional = true, default-features = false }
crypto-sha2 = { package = "reallyme-crypto-sha2", version = "0.1.1", path = "../primitives/sha2", optional = true, default-features = false }
crypto-sha2-256 = { package = "reallyme-crypto-sha2-256", version = "0.1.1", path = "../primitives/sha2-256", optional = true, default-features = false }
crypto-sha3 = { package = "reallyme-crypto-sha3", version = "0.1.1", path = "../primitives/sha3", optional = true, default-features = false }
crypto-sha3-256 = { package = "reallyme-crypto-sha3-256", version = "0.1.1", path = "../primitives/sha3-256", optional = true, default-features = false }
crypto-x-wing = { package = "reallyme-crypto-x-wing", version = "0.1.1", path = "../primitives/x-wing", optional = true, default-features = false }
zeroize = { workspace = true }
[dev-dependencies]
hex = { workspace = true }
wasm-bindgen-test = { workspace = true }
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies]
aes-gcm = { workspace = true }
[lints]
workspace = true