[package]
name = "blueprint-crypto"
version = "0.2.0-alpha.7"
description = "Crypto metapackage for Tangle Blueprints"
authors.workspace = true
edition.workspace = true
license.workspace = true
homepage.workspace = true
repository.workspace = true
rust-version.workspace = true

[dependencies]
blueprint-crypto-core = { workspace = true }
blueprint-crypto-k256 = { workspace = true, optional = true }
blueprint-crypto-sr25519 = { workspace = true, optional = true }
blueprint-crypto-ed25519 = { workspace = true, optional = true }
blueprint-crypto-hashing = { workspace = true, optional = true }
blueprint-crypto-bls = { workspace = true, optional = true }
blueprint-crypto-bn254 = { workspace = true, optional = true }
thiserror = { workspace = true }

[features]
default = [
	"std",
	"k256",
	"sr25519-schnorrkel",
	"ed25519",
	"bls",
	"bn254",
	"hashing",
]
std = [
	"blueprint-crypto-core/std",
	"blueprint-crypto-k256?/std",
	"blueprint-crypto-sr25519?/std",
	"blueprint-crypto-ed25519?/std",
	"blueprint-crypto-bls?/std",
	"blueprint-crypto-bn254?/std",
]
k256 = ["dep:blueprint-crypto-k256", "blueprint-crypto-core/k256"]
sr25519-schnorrkel = ["dep:blueprint-crypto-sr25519", "blueprint-crypto-core/sr25519-schnorrkel"]
ed25519 = ["dep:blueprint-crypto-ed25519", "blueprint-crypto-core/zebra"]
bls = ["dep:blueprint-crypto-bls", "blueprint-crypto-core/bls"]
bn254 = ["dep:blueprint-crypto-bn254", "blueprint-crypto-core/bn254"]

hashing = [
	"blueprint-crypto-hashing/sha2-hasher",
	"blueprint-crypto-hashing/sha3-hasher",
	"blueprint-crypto-hashing/blake3-hasher",
	"blueprint-crypto-hashing/kdf-hkdf",
	"blueprint-crypto-hashing/kdf-argon2",
]
aggregation = [
	"blueprint-crypto-bls/aggregation",
	"blueprint-crypto-bn254/aggregation",
]

[lints]
workspace = true
