[package]
edition = "2024"
name = "ethrex-crypto"
version = "17.0.0"
authors = ["LambdaClass"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Cryptographic primitives and precompile backends for the ethrex Ethereum execution client"
documentation = "https://docs.ethrex.xyz"
readme = false
license = "MIT OR Apache-2.0"
repository = "https://github.com/lambdaclass/ethrex"
resolver = "2"
[features]
aws-lc-rs = [
"dep:aws-lc-rs",
"std",
]
blst = [
"dep:blst",
"std",
]
c-kzg = [
"dep:c-kzg",
"c-kzg/std",
"c-kzg/ethereum_kzg_settings",
"std",
]
default = [
"std",
"kzg-rs",
"secp256k1",
"aws-lc-rs",
"blst",
]
kzg-rs = ["dep:kzg-rs"]
risc0 = [
"c-kzg/std",
"c-kzg/ethereum_kzg_settings",
"c-kzg/portable",
"std",
]
secp256k1 = [
"dep:secp256k1",
"std",
]
std = [
"dep:malachite",
"ark-ff/asm",
"thiserror/std",
]
[lib]
name = "ethrex_crypto"
path = "lib.rs"
[[bench]]
name = "bls_single_op"
path = "benches/bls_single_op.rs"
harness = false
[dependencies.ark-bn254]
version = "0.5.0"
features = ["curve"]
default-features = false
[dependencies.ark-ec]
version = "0.5.0"
default-features = false
[dependencies.ark-ff]
version = "0.5.0"
default-features = false
[dependencies.aws-lc-rs]
version = "1.17"
optional = true
[dependencies.blst]
version = "0.3.16"
optional = true
[dependencies.c-kzg]
version = "2.1.1"
optional = true
default-features = false
[dependencies.ethereum-types]
version = "0.15.1"
default-features = false
[dependencies.hex-literal]
version = "0.4.1"
[dependencies.k256]
version = "0.13.4"
features = ["ecdsa"]
default-features = false
[dependencies.kzg-rs]
version = "0.2.6"
optional = true
[dependencies.malachite]
version = "0.6.1"
optional = true
[dependencies.num-bigint]
version = "0.4.6"
default-features = false
[dependencies.p256]
version = "0.13.2"
features = [
"ecdsa",
"arithmetic",
"expose-field",
]
default-features = false
[dependencies.ripemd]
version = "0.1.3"
default-features = false
[dependencies.secp256k1]
version = "0.30.0"
features = [
"global-context",
"recovery",
"rand",
]
optional = true
default-features = false
[dependencies.sha2]
version = "0.10.9"
default-features = false
[dependencies.thiserror]
version = "2.0.9"
default-features = false
[dependencies.tiny-keccak]
version = "2.0.2"
features = ["keccak"]
[dev-dependencies.blst]
version = "0.3.16"
[dev-dependencies.criterion]
version = "0.5.1"
features = ["html_reports"]
[lints.clippy]
redundant_clone = "warn"