frost/frost-secp256k1-tr/Cargo.toml

68 lines
2.3 KiB
TOML
Raw Normal View History

Add frost-secp256k1-tr crate (BIP340/BIP341) [moved] (#730) * modify frost-core traits to enable taproot compatibility This commit contains changes to the frost-core crate which allow ciphersuites to better customize how signatures are computed. This will enable taproot support without requiring major changes to existing frost ciphersuites. Co-authored by @zebra-lucky and @mimoo This work sponsored by dlcbtc.com and lightspark.com * add frost-secp256k1-tr crate and ciphersuite Co-authored by @zebra-lucky and @mimoo This work sponsored by dlcbtc.com and lightspark.com * test coverage for taproot crate Co-authored by @zebra-lucky and @mimoo This work sponsored by dlcbtc.com and lightspark.com * clippy fixes * tweak DKG output to avoid rogue taproot tweaks * add interoperability tests * cleanup taproot implementation to minimize impact in frost_core * Update PoK test vector to use nonce which generates an even-parity point Uses r = e99ae2676eab512a3572c7b7655d633642a717250af57a7e0ccd5f9618b69f3f * BIP341 key package tweaks shouldn't cause key negation * prune the Context type, instead negate signature.R before verifying With a couple of small adjustments to the code, we can remove the need for this extra associated type on the Ciphersuite crate. Accepting signature with odd-parity nonce values is OK, because BIP340 discard the nonce parity bit anyway. * proper TapTweak point-addition operates on even internal key representation Thanks to @conradoplg for spotting this. The internal key is supposed to be represented as an even-parity point when adding the TapTweak point t*G. I added a regression test to ensure the tweaked verifying key and its parity match the BIP341 spec. * clippy test fixes * fix no-std issues and warnings --------- Co-authored-by: Conrado Gouvea <conradoplg@gmail.com>
2024-11-14 05:50:18 -08:00
[package]
name = "frost-secp256k1-tr"
edition = "2021"
# When releasing to crates.io:
# - Update CHANGELOG.md
# - Create git tag.
version = "2.0.0"
Add frost-secp256k1-tr crate (BIP340/BIP341) [moved] (#730) * modify frost-core traits to enable taproot compatibility This commit contains changes to the frost-core crate which allow ciphersuites to better customize how signatures are computed. This will enable taproot support without requiring major changes to existing frost ciphersuites. Co-authored by @zebra-lucky and @mimoo This work sponsored by dlcbtc.com and lightspark.com * add frost-secp256k1-tr crate and ciphersuite Co-authored by @zebra-lucky and @mimoo This work sponsored by dlcbtc.com and lightspark.com * test coverage for taproot crate Co-authored by @zebra-lucky and @mimoo This work sponsored by dlcbtc.com and lightspark.com * clippy fixes * tweak DKG output to avoid rogue taproot tweaks * add interoperability tests * cleanup taproot implementation to minimize impact in frost_core * Update PoK test vector to use nonce which generates an even-parity point Uses r = e99ae2676eab512a3572c7b7655d633642a717250af57a7e0ccd5f9618b69f3f * BIP341 key package tweaks shouldn't cause key negation * prune the Context type, instead negate signature.R before verifying With a couple of small adjustments to the code, we can remove the need for this extra associated type on the Ciphersuite crate. Accepting signature with odd-parity nonce values is OK, because BIP340 discard the nonce parity bit anyway. * proper TapTweak point-addition operates on even internal key representation Thanks to @conradoplg for spotting this. The internal key is supposed to be represented as an even-parity point when adding the TapTweak point t*G. I added a regression test to ensure the tweaked verifying key and its parity match the BIP341 spec. * clippy test fixes * fix no-std issues and warnings --------- Co-authored-by: Conrado Gouvea <conradoplg@gmail.com>
2024-11-14 05:50:18 -08:00
authors = [
"Deirdre Connolly <durumcrustulum@gmail.com>",
"Chelsea Komlo <me@chelseakomlo.com>",
"Conrado Gouvea <conradoplg@gmail.com>"
]
readme = "README.md"
license = "MIT OR Apache-2.0"
repository = "https://github.com/ZcashFoundation/frost"
categories = ["cryptography"]
keywords = ["cryptography", "crypto", "threshold", "signature"]
description = "A Schnorr signature scheme over the secp256k1 curve that supports FROST and Taproot."
[package.metadata.docs.rs]
features = ["serde"]
rustdoc-args = ["--cfg", "docsrs"]
[dependencies]
document-features = "0.2.7"
frost-core = { path = "../frost-core", version = "2.0.0", default-features = false }
frost-rerandomized = { path = "../frost-rerandomized", version = "2.0.0", default-features = false }
Add frost-secp256k1-tr crate (BIP340/BIP341) [moved] (#730) * modify frost-core traits to enable taproot compatibility This commit contains changes to the frost-core crate which allow ciphersuites to better customize how signatures are computed. This will enable taproot support without requiring major changes to existing frost ciphersuites. Co-authored by @zebra-lucky and @mimoo This work sponsored by dlcbtc.com and lightspark.com * add frost-secp256k1-tr crate and ciphersuite Co-authored by @zebra-lucky and @mimoo This work sponsored by dlcbtc.com and lightspark.com * test coverage for taproot crate Co-authored by @zebra-lucky and @mimoo This work sponsored by dlcbtc.com and lightspark.com * clippy fixes * tweak DKG output to avoid rogue taproot tweaks * add interoperability tests * cleanup taproot implementation to minimize impact in frost_core * Update PoK test vector to use nonce which generates an even-parity point Uses r = e99ae2676eab512a3572c7b7655d633642a717250af57a7e0ccd5f9618b69f3f * BIP341 key package tweaks shouldn't cause key negation * prune the Context type, instead negate signature.R before verifying With a couple of small adjustments to the code, we can remove the need for this extra associated type on the Ciphersuite crate. Accepting signature with odd-parity nonce values is OK, because BIP340 discard the nonce parity bit anyway. * proper TapTweak point-addition operates on even internal key representation Thanks to @conradoplg for spotting this. The internal key is supposed to be represented as an even-parity point when adding the TapTweak point t*G. I added a regression test to ensure the tweaked verifying key and its parity match the BIP341 spec. * clippy test fixes * fix no-std issues and warnings --------- Co-authored-by: Conrado Gouvea <conradoplg@gmail.com>
2024-11-14 05:50:18 -08:00
k256 = { version = "0.13.0", features = ["arithmetic", "expose-field", "hash2curve"], default-features = false }
rand_core = "0.6"
sha2 = { version = "0.10.2", default-features = false }
[dev-dependencies]
criterion = "0.5"
frost-core = { path = "../frost-core", version = "2.0.0", features = ["test-impl"] }
frost-rerandomized = { path = "../frost-rerandomized", version = "2.0.0", features = ["test-impl"] }
Add frost-secp256k1-tr crate (BIP340/BIP341) [moved] (#730) * modify frost-core traits to enable taproot compatibility This commit contains changes to the frost-core crate which allow ciphersuites to better customize how signatures are computed. This will enable taproot support without requiring major changes to existing frost ciphersuites. Co-authored by @zebra-lucky and @mimoo This work sponsored by dlcbtc.com and lightspark.com * add frost-secp256k1-tr crate and ciphersuite Co-authored by @zebra-lucky and @mimoo This work sponsored by dlcbtc.com and lightspark.com * test coverage for taproot crate Co-authored by @zebra-lucky and @mimoo This work sponsored by dlcbtc.com and lightspark.com * clippy fixes * tweak DKG output to avoid rogue taproot tweaks * add interoperability tests * cleanup taproot implementation to minimize impact in frost_core * Update PoK test vector to use nonce which generates an even-parity point Uses r = e99ae2676eab512a3572c7b7655d633642a717250af57a7e0ccd5f9618b69f3f * BIP341 key package tweaks shouldn't cause key negation * prune the Context type, instead negate signature.R before verifying With a couple of small adjustments to the code, we can remove the need for this extra associated type on the Ciphersuite crate. Accepting signature with odd-parity nonce values is OK, because BIP340 discard the nonce parity bit anyway. * proper TapTweak point-addition operates on even internal key representation Thanks to @conradoplg for spotting this. The internal key is supposed to be represented as an even-parity point when adding the TapTweak point t*G. I added a regression test to ensure the tweaked verifying key and its parity match the BIP341 spec. * clippy test fixes * fix no-std issues and warnings --------- Co-authored-by: Conrado Gouvea <conradoplg@gmail.com>
2024-11-14 05:50:18 -08:00
insta = { version = "1.31.0", features = ["yaml"] }
hex = { version = "0.4.3", default-features = false, features = ["alloc"] }
lazy_static = "1.4"
proptest = "1.0"
rand = "0.8"
rand_chacha = "0.3"
secp256k1 = "0.30.0"
serde_json = "1.0"
[features]
nightly = []
default = ["serialization", "cheater-detection", "std"]
#! ## Features
## Enable standard library support.
std = ["frost-core/std"]
## Enable `serde` support for types that need to be communicated. You
## can use `serde` to serialize structs with any encoder that supports
## `serde` (e.g. JSON with `serde_json`).
serde = ["frost-core/serde"]
Add frost-secp256k1-tr crate (BIP340/BIP341) [moved] (#730) * modify frost-core traits to enable taproot compatibility This commit contains changes to the frost-core crate which allow ciphersuites to better customize how signatures are computed. This will enable taproot support without requiring major changes to existing frost ciphersuites. Co-authored by @zebra-lucky and @mimoo This work sponsored by dlcbtc.com and lightspark.com * add frost-secp256k1-tr crate and ciphersuite Co-authored by @zebra-lucky and @mimoo This work sponsored by dlcbtc.com and lightspark.com * test coverage for taproot crate Co-authored by @zebra-lucky and @mimoo This work sponsored by dlcbtc.com and lightspark.com * clippy fixes * tweak DKG output to avoid rogue taproot tweaks * add interoperability tests * cleanup taproot implementation to minimize impact in frost_core * Update PoK test vector to use nonce which generates an even-parity point Uses r = e99ae2676eab512a3572c7b7655d633642a717250af57a7e0ccd5f9618b69f3f * BIP341 key package tweaks shouldn't cause key negation * prune the Context type, instead negate signature.R before verifying With a couple of small adjustments to the code, we can remove the need for this extra associated type on the Ciphersuite crate. Accepting signature with odd-parity nonce values is OK, because BIP340 discard the nonce parity bit anyway. * proper TapTweak point-addition operates on even internal key representation Thanks to @conradoplg for spotting this. The internal key is supposed to be represented as an even-parity point when adding the TapTweak point t*G. I added a regression test to ensure the tweaked verifying key and its parity match the BIP341 spec. * clippy test fixes * fix no-std issues and warnings --------- Co-authored-by: Conrado Gouvea <conradoplg@gmail.com>
2024-11-14 05:50:18 -08:00
## Enable a default serialization format. Enables `serde`.
serialization = ["serde", "frost-core/serialization", "frost-rerandomized/serialization"]
## Enable cheater detection
cheater-detection = ["frost-core/cheater-detection", "frost-rerandomized/cheater-detection"]
[lib]
# Disables non-criterion benchmark which is not used; prevents errors
# when using criterion-specific flags
bench = false
[[bench]]
name = "bench"
harness = false