[package]
name = "ethrex-crypto"
version.workspace = true
edition.workspace = true
authors.workspace = true
documentation.workspace = true
license.workspace = true
description = "Cryptographic primitives and precompile backends for the ethrex Ethereum execution client"
repository.workspace = true
[lib]
path = "./lib.rs"
[dependencies]
c-kzg = { version = "2.1.1", default-features = false, optional = true }
kzg-rs = { workspace = true, optional = true }
ethereum-types = { version = "0.15.1", default-features = false }
thiserror = { version = "2.0.9", default-features = false }
hex-literal = "0.4.1"
sha2 = { version = "0.10.9", default-features = false }
ripemd = { version = "0.1.3", default-features = false }
ark-bn254 = { version = "0.5.0", default-features = false, features = ["curve"] }
ark-ec = { version = "0.5.0", default-features = false }
ark-ff = { version = "0.5.0", default-features = false }
p256 = { version = "0.13.2", default-features = false, features = ["ecdsa", "arithmetic", "expose-field"] }
k256 = { version = "0.13.4", default-features = false, features = ["ecdsa"] }
num-bigint = { version = "0.4.6", default-features = false }
secp256k1 = { workspace = true, optional = true }
malachite = { version = "0.6.1", optional = true }
aws-lc-rs = { version = "1.17", optional = true }
blst = { version = "0.3.16", optional = true }
tiny-keccak = { version = "2.0.2", features = ["keccak"] }
[features]
default = ["std", "kzg-rs", "secp256k1", "aws-lc-rs", "blst"]
std = [
"dep:malachite",
"ark-ff/asm",
"thiserror/std",
]
aws-lc-rs = ["dep:aws-lc-rs", "std"]
blst = ["dep:blst", "std"]
secp256k1 = ["dep:secp256k1", "std"]
c-kzg = ["dep:c-kzg", "c-kzg/std", "c-kzg/ethereum_kzg_settings", "std"]
kzg-rs = ["dep:kzg-rs"]
risc0 = ["c-kzg/std", "c-kzg/ethereum_kzg_settings", "c-kzg/portable", "std"]
[dev-dependencies]
criterion = { version = "0.5.1", features = ["html_reports"] }
blst = "0.3.16"
[[bench]]
name = "bls_single_op"
harness = false
[lints]
workspace = true