[package]
edition = "2021"
rust-version = "1.96"
name = "reallyme-crypto-dispatch"
version = "0.1.6"
build = false
publish = true
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Algorithm dispatch, codec binding, and structural validation for cryptographic primitives."
readme = false
license = "Apache-2.0"
repository = "https://github.com/reallyme/crypto"
[features]
aes = ["dep:crypto-aes256-gcm"]
aes-gcm-siv = ["dep:crypto-aes256-gcm-siv"]
chacha20-poly1305 = ["dep:crypto-chacha20-poly1305"]
default = []
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-1024 = ["dep:crypto-ml-kem-1024"]
ml-kem-512 = ["dep:crypto-ml-kem-512"]
ml-kem-768 = ["dep:crypto-ml-kem-768"]
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",
]
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",
]
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",
]
x-wing = ["dep:crypto-x-wing"]
x25519 = ["dep:crypto-x25519"]
[lib]
name = "crypto_dispatch"
path = "src/lib.rs"
[[test]]
name = "aead_dispatch_runtime_lane_tests"
path = "tests/aead_dispatch_runtime_lane_tests.rs"
[[test]]
name = "aead_dispatch_tests"
path = "tests/aead_dispatch_tests.rs"
[[test]]
name = "dispatch_boundary_tests"
path = "tests/dispatch_boundary_tests.rs"
[[test]]
name = "dispatch_integration_tests"
path = "tests/dispatch_integration_tests.rs"
[[test]]
name = "feature_lane_tests"
path = "tests/feature_lane_tests.rs"
[[test]]
name = "hash_dispatch_tests"
path = "tests/hash_dispatch_tests.rs"
[[test]]
name = "hash_dispatch_wasm_runtime_tests"
path = "tests/hash_dispatch_wasm_runtime_tests.rs"
[[test]]
name = "mac_dispatch_tests"
path = "tests/mac_dispatch_tests.rs"
[[test]]
name = "multikey_canonicalization_tests"
path = "tests/multikey_canonicalization_tests.rs"
[[test]]
name = "multikey_tests"
path = "tests/multikey_tests.rs"
[[test]]
name = "validation_tests"
path = "tests/validation_tests.rs"
[dependencies.codec-multikey]
version = "0.1.1"
package = "reallyme-codec-multikey"
[dependencies.crypto-aes256-gcm]
version = "0.1.3"
optional = true
default-features = false
package = "reallyme-crypto-aes256-gcm"
[dependencies.crypto-aes256-gcm-siv]
version = "0.1.2"
optional = true
default-features = false
package = "reallyme-crypto-aes256-gcm-siv"
[dependencies.crypto-chacha20-poly1305]
version = "0.1.2"
optional = true
default-features = false
package = "reallyme-crypto-chacha20-poly1305"
[dependencies.crypto-core]
version = "0.1.2"
package = "reallyme-crypto-core"
[dependencies.crypto-ed25519]
version = "0.1.2"
optional = true
default-features = false
package = "reallyme-crypto-ed25519"
[dependencies.crypto-hmac]
version = "0.1.1"
optional = true
default-features = false
package = "reallyme-crypto-hmac"
[dependencies.crypto-ml-dsa-44]
version = "0.1.2"
optional = true
default-features = false
package = "reallyme-crypto-ml-dsa-44"
[dependencies.crypto-ml-dsa-65]
version = "0.1.2"
optional = true
default-features = false
package = "reallyme-crypto-ml-dsa-65"
[dependencies.crypto-ml-dsa-87]
version = "0.1.2"
optional = true
default-features = false
package = "reallyme-crypto-ml-dsa-87"
[dependencies.crypto-ml-kem-1024]
version = "0.1.3"
optional = true
default-features = false
package = "reallyme-crypto-ml-kem-1024"
[dependencies.crypto-ml-kem-512]
version = "0.1.2"
optional = true
default-features = false
package = "reallyme-crypto-ml-kem-512"
[dependencies.crypto-ml-kem-768]
version = "0.1.3"
optional = true
default-features = false
package = "reallyme-crypto-ml-kem-768"
[dependencies.crypto-p256]
version = "0.1.3"
optional = true
default-features = false
package = "reallyme-crypto-p256"
[dependencies.crypto-p384]
version = "0.1.3"
optional = true
default-features = false
package = "reallyme-crypto-p384"
[dependencies.crypto-p521]
version = "0.1.3"
optional = true
default-features = false
package = "reallyme-crypto-p521"
[dependencies.crypto-secp256k1]
version = "0.1.3"
optional = true
default-features = false
package = "reallyme-crypto-secp256k1"
[dependencies.crypto-sha2]
version = "0.1.1"
optional = true
default-features = false
package = "reallyme-crypto-sha2"
[dependencies.crypto-sha2-256]
version = "0.1.1"
optional = true
default-features = false
package = "reallyme-crypto-sha2-256"
[dependencies.crypto-sha3]
version = "0.1.1"
optional = true
default-features = false
package = "reallyme-crypto-sha3"
[dependencies.crypto-sha3-256]
version = "0.1.1"
optional = true
default-features = false
package = "reallyme-crypto-sha3-256"
[dependencies.crypto-x-wing]
version = "0.1.1"
optional = true
default-features = false
package = "reallyme-crypto-x-wing"
[dependencies.crypto-x25519]
version = "0.1.2"
optional = true
default-features = false
package = "reallyme-crypto-x25519"
[dependencies.thiserror]
version = "2.0"
[dependencies.zeroize]
version = "1.9"
[dev-dependencies.hex]
version = "0.4"
[dev-dependencies.wasm-bindgen-test]
version = "0.3"
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.aes-gcm]
version = "0.11"
[lints.clippy]
dbg_macro = "deny"
expect_used = "deny"
large_include_file = "deny"
panic = "deny"
print_stderr = "deny"
print_stdout = "deny"
todo = "deny"
unimplemented = "deny"
unreachable = "deny"
unwrap_used = "deny"
wildcard_imports = "deny"
[lints.rust]
missing_docs = "warn"
unsafe_code = "deny"