update to frost 2.0.0-rc.0

This commit is contained in:
Conrado Gouvea 2024-06-24 14:47:49 -03:00 committed by natalie
parent c5451602a8
commit 82b2ef8c40
17 changed files with 111 additions and 151 deletions

84
Cargo.lock generated
View File

@ -181,17 +181,17 @@ dependencies = [
[[package]]
name = "axum-test"
version = "15.2.0"
version = "14.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0882240a5cff2c0af7b01a684cb4048629841ccbd20305948e12ddc25f1c36c2"
checksum = "167294800740b4b6bc7bfbccbf3a1d50a6c6e097342580ec4c11d1672e456292"
dependencies = [
"anyhow",
"async-trait",
"auto-future",
"axum",
"bytes",
"cookie",
"http 1.1.0",
"http-body",
"http-body-util",
"hyper",
"hyper-util",
@ -373,10 +373,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
[[package]]
name = "const-crc32"
version = "1.3.0"
name = "const-crc32-nostd"
version = "1.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "68d13f542d70e5b339bf46f6f74704ac052cfd526c58cd87996bd1ef4615b9a0"
checksum = "808ac43170e95b11dd23d78aa9eaac5bea45776a602955552c4e833f3f0f823d"
[[package]]
name = "constant_time_eq"
@ -406,7 +406,7 @@ dependencies = [
"frost-ed25519",
"frost-rerandomized",
"hex",
"itertools 0.13.0",
"itertools",
"message-io",
"rand",
"reddsa",
@ -475,15 +475,14 @@ dependencies = [
[[package]]
name = "curve25519-dalek"
version = "4.1.2"
version = "4.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0a677b8922c94e01bdbb12126b0bc852f00447528dee1782229af9c720c3f348"
checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be"
dependencies = [
"cfg-if",
"cpufeatures",
"curve25519-dalek-derive",
"fiat-crypto",
"platforms",
"rand_core",
"rustc_version",
"subtle",
@ -535,13 +534,13 @@ dependencies = [
[[package]]
name = "derive-getters"
version = "0.3.0"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7a2c35ab6e03642397cdda1dd58abbc05d418aef8e36297f336d5aba060fe8df"
checksum = "0a6433aac097572ea8ccc60b3f2e756c661c9aeed9225cdd4d0cb119cb7ff6ba"
dependencies = [
"proc-macro2",
"quote",
"syn 1.0.109",
"syn 2.0.53",
]
[[package]]
@ -570,7 +569,7 @@ dependencies = [
"frost-core",
"frost-ed25519",
"hex",
"itertools 0.13.0",
"itertools",
"pipe",
"rand",
"reddsa",
@ -694,31 +693,32 @@ dependencies = [
[[package]]
name = "frost-core"
version = "1.0.0"
version = "2.0.0-rc.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "45d6280625f1603d160df24b23e4984a6a7286f41455ae606823d0104c32e834"
checksum = "ed1383227a6606aacf5df9a17ff57824c6971a0ab225b69b911bec0ba7bbb869"
dependencies = [
"byteorder",
"const-crc32",
"const-crc32-nostd",
"debugless-unwrap",
"derive-getters",
"document-features",
"hex",
"itertools 0.12.1",
"itertools",
"postcard",
"rand_core",
"serde",
"serdect",
"thiserror",
"thiserror-nostd-notrait",
"visibility",
"zeroize",
]
[[package]]
name = "frost-ed25519"
version = "1.0.0"
version = "2.0.0-rc.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b359e465bc1024663fd6cb68c3eda44d00c151246419857885f2bf267f1168ea"
checksum = "bab23316e09987113dc8a2a8f0b656d7f1b24dc2afdc8c34df98276d1158c97d"
dependencies = [
"curve25519-dalek",
"document-features",
@ -730,13 +730,14 @@ dependencies = [
[[package]]
name = "frost-rerandomized"
version = "1.0.0"
version = "2.0.0-rc.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "52c58f58ea009000db490efd9a3936d0035647a2b00c7ba8f3868c2ed0306b0b"
checksum = "bdb14a6054f9ce5aa4912c60c11392d42c43acec8295ee1df1f67a9d0b7a73ee"
dependencies = [
"derive-getters",
"document-features",
"frost-core",
"hex",
"rand_core",
]
@ -1076,15 +1077,6 @@ version = "2.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3"
[[package]]
name = "itertools"
version = "0.12.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569"
dependencies = [
"either",
]
[[package]]
name = "itertools"
version = "0.13.0"
@ -1482,12 +1474,6 @@ version = "0.3.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
[[package]]
name = "platforms"
version = "3.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "626dec3cac7cc0e1577a2ec3fc496277ec2baa084bebad95bb6fdbfae235f84c"
[[package]]
name = "postcard"
version = "1.0.8"
@ -1579,7 +1565,7 @@ dependencies = [
[[package]]
name = "reddsa"
version = "0.5.1"
source = "git+https://github.com/ZcashFoundation/reddsa.git?rev=81c649c412e5b6ba56d491d2857f91fbd28adbc7#81c649c412e5b6ba56d491d2857f91fbd28adbc7"
source = "git+https://github.com/ZcashFoundation/reddsa.git?rev=4d8c4bb337231e6e89117334d7c61dada589a953#4d8c4bb337231e6e89117334d7c61dada589a953"
dependencies = [
"blake2b_simd",
"byteorder",
@ -2175,6 +2161,26 @@ dependencies = [
"syn 2.0.53",
]
[[package]]
name = "thiserror-nostd-notrait"
version = "1.0.57"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a8444e638022c44d2a9337031dee8acb732bcc7fbf52ac654edc236b26408b61"
dependencies = [
"thiserror-nostd-notrait-impl",
]
[[package]]
name = "thiserror-nostd-notrait-impl"
version = "1.0.57"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "585e5ef40a784ce60b49c67d762110688d211d395d39e096be204535cf64590e"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.53",
]
[[package]]
name = "thread_local"
version = "1.1.8"
@ -2412,7 +2418,7 @@ dependencies = [
"frost-core",
"frost-ed25519",
"hex",
"itertools 0.13.0",
"itertools",
"rand",
"reddsa",
"serde_json",

View File

@ -8,10 +8,10 @@ edition = "2021"
[dependencies]
async-trait = "0.1.80"
eyre = "0.6.12"
frost-core = { version = "1.0.0", features = ["serde"] }
frost-rerandomized = { version = "1.0.0", features = ["serde"] }
frost-ed25519 = { version = "1.0.0", features = ["serde"] }
reddsa = { git = "https://github.com/ZcashFoundation/reddsa.git", rev = "81c649c412e5b6ba56d491d2857f91fbd28adbc7", features = ["frost", "serde"] }
frost-core = { version = "2.0.0-rc.0", features = ["serde"] }
frost-rerandomized = { version = "2.0.0-rc.0", features = ["serde"] }
frost-ed25519 = { version = "2.0.0-rc.0", features = ["serde"] }
reddsa = { git = "https://github.com/ZcashFoundation/reddsa.git", rev = "4d8c4bb337231e6e89117334d7c61dada589a953", features = ["frost", "serde"] }
hex = { version = "0.4", features = ["serde"] }
thiserror = "1.0"
rand = "0.8"

View File

@ -4,8 +4,6 @@ use frost_core as frost;
use frost_core::Ciphersuite;
use eyre::eyre;
use async_trait::async_trait;
use frost::{
@ -106,8 +104,7 @@ pub fn read_identifier<C: Ciphersuite + 'static>(
let mut identifier_input = String::new();
input.read_line(&mut identifier_input)?;
let bytes = hex::decode(identifier_input.trim())?;
let serialization = bytes.try_into().map_err(|_| eyre!("Invalid Identifier"))?;
let identifier = Identifier::<C>::deserialize(&serialization)?;
let identifier = Identifier::<C>::deserialize(&bytes)?;
Ok(identifier)
}

View File

@ -87,7 +87,6 @@ mod tests {
keys::{PublicKeyPackage, VerifyingShare},
Error, Identifier, VerifyingKey,
};
use hex::FromHex;
use crate::comms::cli::validate;
@ -103,15 +102,15 @@ mod tests {
let mut signer_pubkeys = BTreeMap::new();
signer_pubkeys.insert(
id_1,
VerifyingShare::deserialize(<[u8; 32]>::from_hex(PUBLIC_KEY_1).unwrap()).unwrap(),
VerifyingShare::deserialize(&hex::decode(PUBLIC_KEY_1).unwrap()).unwrap(),
);
signer_pubkeys.insert(
id_2,
VerifyingShare::deserialize(<[u8; 32]>::from_hex(PUBLIC_KEY_2).unwrap()).unwrap(),
VerifyingShare::deserialize(&hex::decode(PUBLIC_KEY_2).unwrap()).unwrap(),
);
let group_public =
VerifyingKey::deserialize(<[u8; 32]>::from_hex(GROUP_PUBLIC_KEY).unwrap()).unwrap();
VerifyingKey::deserialize(&hex::decode(GROUP_PUBLIC_KEY).unwrap()).unwrap();
PublicKeyPackage::new(signer_pubkeys, group_public)
}

View File

@ -32,14 +32,10 @@ pub fn request_randomizer<C: RandomizedCiphersuite + 'static>(
fs::read(&args.randomizer)?
};
Ok(frost_rerandomized::Randomizer::deserialize(
&randomizer
.try_into()
.map_err(|_| frost::Error::<C>::MalformedIdentifier)?,
)?)
Ok(frost_rerandomized::Randomizer::deserialize(&randomizer)?)
}
pub async fn step_3<C: Ciphersuite>(
pub async fn step_3<C: Ciphersuite + 'static>(
args: &Args,
comms: &mut dyn Comms<C>,
input: &mut dyn BufRead,
@ -101,7 +97,7 @@ async fn request_inputs_signature_shares<C: Ciphersuite>(
Ok(group_signature)
}
fn print_signature<C: Ciphersuite>(
fn print_signature<C: Ciphersuite + 'static>(
args: &Args,
logger: &mut dyn Write,
group_signature: Signature<C>,
@ -113,7 +109,7 @@ fn print_signature<C: Ciphersuite>(
serde_json::to_string(&group_signature)?
)?;
} else {
fs::write(&args.signature, group_signature.serialize())?;
fs::write(&args.signature, group_signature.serialize()?)?;
eprintln!("Raw signature written to {}", &args.signature);
};
Ok(())

View File

@ -13,7 +13,6 @@ use frost::{
Identifier, SigningPackage, VerifyingKey,
};
use frost_ed25519 as frost;
use hex::FromHex;
use std::{collections::BTreeMap, io::BufWriter};
use super::common::get_helpers;
@ -35,19 +34,18 @@ fn build_pub_key_package() -> (BTreeMap<Identifier, VerifyingShare>, VerifyingKe
let mut signer_pubkeys = BTreeMap::new();
signer_pubkeys.insert(
id_1,
VerifyingShare::deserialize(<[u8; 32]>::from_hex(public_key_1).unwrap()).unwrap(),
VerifyingShare::deserialize(&hex::decode(public_key_1).unwrap()).unwrap(),
);
signer_pubkeys.insert(
id_2,
VerifyingShare::deserialize(<[u8; 32]>::from_hex(public_key_2).unwrap()).unwrap(),
VerifyingShare::deserialize(&hex::decode(public_key_2).unwrap()).unwrap(),
);
signer_pubkeys.insert(
id_3,
VerifyingShare::deserialize(<[u8; 32]>::from_hex(public_key_3).unwrap()).unwrap(),
VerifyingShare::deserialize(&hex::decode(public_key_3).unwrap()).unwrap(),
);
let group_public =
VerifyingKey::deserialize(<[u8; 32]>::from_hex(verifying_key).unwrap()).unwrap();
let group_public = VerifyingKey::deserialize(&hex::decode(verifying_key).unwrap()).unwrap();
(signer_pubkeys, group_public)
}
@ -65,12 +63,12 @@ fn build_signing_commitments() -> BTreeMap<Identifier, SigningCommitments> {
let id_3 = Identifier::try_from(3).unwrap();
let signer_commitments_1 = SigningCommitments::new(
NonceCommitment::deserialize(<[u8; 32]>::from_hex(hiding_commitment_1).unwrap()).unwrap(),
NonceCommitment::deserialize(<[u8; 32]>::from_hex(binding_commitment_1).unwrap()).unwrap(),
NonceCommitment::deserialize(&hex::decode(hiding_commitment_1).unwrap()).unwrap(),
NonceCommitment::deserialize(&hex::decode(binding_commitment_1).unwrap()).unwrap(),
);
let signer_commitments_3 = SigningCommitments::new(
NonceCommitment::deserialize(<[u8; 32]>::from_hex(hiding_commitment_3).unwrap()).unwrap(),
NonceCommitment::deserialize(<[u8; 32]>::from_hex(binding_commitment_3).unwrap()).unwrap(),
NonceCommitment::deserialize(&hex::decode(hiding_commitment_3).unwrap()).unwrap(),
NonceCommitment::deserialize(&hex::decode(binding_commitment_3).unwrap()).unwrap(),
);
let mut signing_commitments = BTreeMap::new();

View File

@ -7,9 +7,9 @@ edition = "2021"
[dependencies]
eyre = "0.6.12"
frost-core = { version = "1.0.0", features = ["serde"] }
frost-ed25519 = { version = "1.0.0", features = ["serde"] }
reddsa = { git = "https://github.com/ZcashFoundation/reddsa.git", rev = "81c649c412e5b6ba56d491d2857f91fbd28adbc7", features = ["frost"] }
frost-core = { version = "2.0.0-rc.0", features = ["serde"] }
frost-ed25519 = { version = "2.0.0-rc.0", features = ["serde"] }
reddsa = { git = "https://github.com/ZcashFoundation/reddsa.git", rev = "4d8c4bb337231e6e89117334d7c61dada589a953", features = ["frost"] }
clap = { version = "4.5.7", features = ["derive"] }
hex = { version = "0.4", features = ["serde"] }
thiserror = "1.0"

View File

@ -5,8 +5,6 @@ use frost::{
Error, Identifier,
};
use eyre::eyre;
use std::io::{BufRead, Write};
#[derive(Debug, PartialEq, Clone)]
@ -87,8 +85,7 @@ pub fn read_identifier<C: Ciphersuite + 'static>(
let mut identifier_input = String::new();
input.read_line(&mut identifier_input)?;
let bytes = hex::decode(identifier_input.trim())?;
let serialization = bytes.try_into().map_err(|_| eyre!("Invalid Identifier"))?;
let identifier = Identifier::<C>::deserialize(&serialization)?;
let identifier = Identifier::<C>::deserialize(&bytes)?;
Ok(identifier)
}

View File

@ -7,10 +7,10 @@ edition = "2021"
[dependencies]
async-trait = "0.1.80"
frost-core = { version = "1.0.0", features = ["serde"] }
frost-rerandomized = { version = "1.0.0", features = ["serde"] }
frost-ed25519 = { version = "1.0.0", features = ["serde"] }
reddsa = { git = "https://github.com/ZcashFoundation/reddsa.git", rev = "81c649c412e5b6ba56d491d2857f91fbd28adbc7", features = ["frost"] }
frost-core = { version = "2.0.0-rc.0", features = ["serde"] }
frost-rerandomized = { version = "2.0.0-rc.0", features = ["serde"] }
frost-ed25519 = { version = "2.0.0-rc.0", features = ["serde"] }
reddsa = { git = "https://github.com/ZcashFoundation/reddsa.git", rev = "4d8c4bb337231e6e89117334d7c61dada589a953", features = ["frost"] }
hex = "0.4"
rand = "0.8"
eyre = "0.6.12"

View File

@ -6,8 +6,6 @@ use frost_core::Ciphersuite;
use async_trait::async_trait;
use eyre::eyre;
use frost::{
keys::PublicKeyPackage, round1::SigningCommitments, round2::SignatureShare, Identifier,
SigningPackage,
@ -71,11 +69,8 @@ where
let mut json = String::new();
input.read_line(&mut json).unwrap();
let randomizer = frost_rerandomized::Randomizer::<C>::deserialize(
&hex::decode(json.trim())?
.try_into()
.map_err(|_| eyre!("Invalid randomizer"))?,
)?;
let randomizer =
frost_rerandomized::Randomizer::<C>::deserialize(&hex::decode(json.trim())?)?;
Ok((signing_package, Some(randomizer)))
} else {
Ok((signing_package, None))
@ -97,8 +92,7 @@ pub fn read_identifier<C: Ciphersuite + 'static>(
let mut identifier_input = String::new();
input.read_line(&mut identifier_input)?;
let bytes = hex::decode(identifier_input.trim())?;
let serialization = bytes.try_into().map_err(|_| eyre!("Invalid Identifier"))?;
let identifier = Identifier::<C>::deserialize(&serialization)?;
let identifier = Identifier::<C>::deserialize(&bytes)?;
Ok(identifier)
}

View File

@ -9,7 +9,6 @@ use frost::{
keys::{KeyPackage, SigningShare, VerifyingShare},
round1, Error, VerifyingKey,
};
use hex::FromHex;
use participant::{
args::Args,
round1::{print_values, request_inputs, Round1Config},
@ -25,9 +24,9 @@ const SECRET_SHARE_JSON: &str = r#"{"header":{"version":0,"ciphersuite":"FROST-E
async fn build_key_package() -> KeyPackage {
KeyPackage::new(
Identifier::try_from(1).unwrap(),
SigningShare::deserialize(<[u8; 32]>::from_hex(SIGNING_SHARE).unwrap()).unwrap(),
VerifyingShare::deserialize(<[u8; 32]>::from_hex(PUBLIC_KEY).unwrap()).unwrap(),
VerifyingKey::deserialize(<[u8; 32]>::from_hex(GROUP_PUBLIC_KEY).unwrap()).unwrap(),
SigningShare::deserialize(&hex::decode(SIGNING_SHARE).unwrap()).unwrap(),
VerifyingShare::deserialize(&hex::decode(PUBLIC_KEY).unwrap()).unwrap(),
VerifyingKey::deserialize(&hex::decode(GROUP_PUBLIC_KEY).unwrap()).unwrap(),
3,
)
}
@ -135,8 +134,7 @@ async fn check_invalid_length_vss_commitment() {
async fn check_print_values() {
let mut buf = BufWriter::new(Vec::new());
let signing_share =
SigningShare::deserialize(<[u8; 32]>::from_hex(SIGNING_SHARE).unwrap()).unwrap();
let signing_share = SigningShare::deserialize(&hex::decode(SIGNING_SHARE).unwrap()).unwrap();
let mut rng = thread_rng();
let (_nonces, commitments) = round1::commit(&signing_share, &mut rng);
@ -144,7 +142,7 @@ async fn check_print_values() {
let out = String::from_utf8(buf.into_inner().unwrap()).unwrap();
let log = format!("=== Round 1 ===\nSigningNonces were generated and stored in memory\nSigningCommitments:\n{{\"header\":{{\"version\":0,\"ciphersuite\":\"FROST-ED25519-SHA512-v1\"}},\"hiding\":\"{}\",\"binding\":\"{}\"}}\n=== Round 1 Completed ===\nPlease send your SigningCommitments to the coordinator\n", &hex::encode(commitments.hiding().serialize()), &hex::encode(commitments.binding().serialize()));
let log = format!("=== Round 1 ===\nSigningNonces were generated and stored in memory\nSigningCommitments:\n{{\"header\":{{\"version\":0,\"ciphersuite\":\"FROST-ED25519-SHA512-v1\"}},\"hiding\":\"{}\",\"binding\":\"{}\"}}\n=== Round 1 Completed ===\nPlease send your SigningCommitments to the coordinator\n", &hex::encode(commitments.hiding().serialize().unwrap()), &hex::encode(commitments.binding().serialize().unwrap()));
assert_eq!(out, log)
}

View File

@ -31,7 +31,7 @@ const BINDING_COMMITMENT_2: &str =
"b0e13794eaf00be2e430b16ec7f72ab0b6579e52ca604d17406a4fd1597afd66";
pub fn nonce_commitment(input: &str) -> NonceCommitment {
NonceCommitment::deserialize(<[u8; 32]>::from_hex(input).unwrap()).unwrap()
NonceCommitment::deserialize(&hex::decode(input).unwrap()).unwrap()
}
#[tokio::test]
@ -92,9 +92,9 @@ async fn check_valid_round_2_inputs() {
async fn check_sign() {
let key_package = KeyPackage::new(
Identifier::try_from(1).unwrap(),
SigningShare::deserialize(<[u8; 32]>::from_hex(SIGNING_SHARE).unwrap()).unwrap(),
VerifyingShare::deserialize(<[u8; 32]>::from_hex(PUBLIC_KEY).unwrap()).unwrap(),
VerifyingKey::deserialize(<[u8; 32]>::from_hex(GROUP_PUBLIC_KEY).unwrap()).unwrap(),
SigningShare::deserialize(&hex::decode(SIGNING_SHARE).unwrap()).unwrap(),
VerifyingShare::deserialize(&hex::decode(PUBLIC_KEY).unwrap()).unwrap(),
VerifyingKey::deserialize(&hex::decode(GROUP_PUBLIC_KEY).unwrap()).unwrap(),
2,
);
@ -102,13 +102,13 @@ async fn check_sign() {
// TODO: Nonce doesn't seem to be exported. Look into this to improve these tests
let (nonces, my_commitments) = round1::commit(
&SigningShare::deserialize(<[u8; 32]>::from_hex(SIGNING_SHARE).unwrap()).unwrap(),
&SigningShare::deserialize(&hex::decode(SIGNING_SHARE).unwrap()).unwrap(),
&mut rng,
);
let signer_commitments_2 = SigningCommitments::new(
NonceCommitment::deserialize(<[u8; 32]>::from_hex(HIDING_COMMITMENT_2).unwrap()).unwrap(),
NonceCommitment::deserialize(<[u8; 32]>::from_hex(BINDING_COMMITMENT_2).unwrap()).unwrap(),
NonceCommitment::deserialize(&hex::decode(HIDING_COMMITMENT_2).unwrap()).unwrap(),
NonceCommitment::deserialize(&hex::decode(BINDING_COMMITMENT_2).unwrap()).unwrap(),
);
let mut signer_commitments = BTreeMap::new();
@ -116,10 +116,9 @@ async fn check_sign() {
signer_commitments.insert(Identifier::try_from(2).unwrap(), signer_commitments_2);
let message =
<[u8; 32]>::from_hex("15d21ccd7ee42959562fc8aa63224c8851fb3ec85a3faf66040d380fb9738673")
.unwrap();
&hex::decode("15d21ccd7ee42959562fc8aa63224c8851fb3ec85a3faf66040d380fb9738673").unwrap();
let signing_package = SigningPackage::new(signer_commitments, &message);
let signing_package = SigningPackage::new(signer_commitments, message);
let config = Round2Config {
signing_package,
@ -138,7 +137,7 @@ async fn check_print_values_round_2() {
const SIGNATURE_SHARE: &str =
"44055c54d0604cbd006f0d1713a22474d7735c5e8816b1878f62ca94bf105900";
let signature_response =
SignatureShare::deserialize(<[u8; 32]>::from_hex(SIGNATURE_SHARE).unwrap()).unwrap();
SignatureShare::deserialize(&hex::decode(SIGNATURE_SHARE).unwrap()).unwrap();
print_values_round_2(signature_response, &mut buf).unwrap();

View File

@ -10,22 +10,22 @@ axum = "0.7.5"
clap = { version = "4.5.7", features = ["derive"] }
derivative = "2.2.0"
eyre = "0.6.11"
frost-core = { version = "1.0.0-rc.0", features = ["serde"] }
frost-rerandomized = { version = "1.0.0-rc.0", features = ["serde"] }
frost-core = { version = "2.0.0-rc.0", features = ["serde"] }
frost-rerandomized = { version = "2.0.0-rc.0", features = ["serde"] }
rand = "0.8"
serde = { version = "1.0", features = ["derive"] }
serdect = { version = "0.2.0" }
serde_json = "1.0.118"
serde_json = "1.0.117"
tokio = { version = "1.38", features = ["full"] }
tower-http = { version = "0.5.2", features = ["trace"] }
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
uuid = { version = "1.9.1", features = ["v4", "fast-rng", "serde"] }
uuid = { version = "1.6.1", features = ["v4", "fast-rng", "serde"] }
[dev-dependencies]
axum-test = "15.2.0"
frost-ed25519 = { version = "1.0.0-rc.0", features = ["serde"] }
reddsa = { git = "https://github.com/ZcashFoundation/reddsa.git", rev = "81c649c412e5b6ba56d491d2857f91fbd28adbc7", features = [
axum-test = "14.10.0"
frost-ed25519 = { version = "2.0.0-rc.0", features = ["serde"] }
reddsa = { git = "https://github.com/ZcashFoundation/reddsa.git", rev = "4d8c4bb337231e6e89117334d7c61dada589a953", features = [
"frost",
"serde",
] }

View File

@ -15,7 +15,7 @@ pub struct SerializedIdentifier(
impl<C: frost_core::Ciphersuite> From<frost_core::Identifier<C>> for SerializedIdentifier {
fn from(identifier: frost_core::Identifier<C>) -> Self {
Self(identifier.serialize().as_ref().to_vec())
Self(identifier.serialize().to_vec())
}
}
@ -23,13 +23,7 @@ impl<C: frost_core::Ciphersuite> TryFrom<&SerializedIdentifier> for frost_core::
type Error = frost_core::Error<C>;
fn try_from(serialized_identifier: &SerializedIdentifier) -> Result<Self, Self::Error> {
frost_core::Identifier::<C>::deserialize(
&serialized_identifier
.clone()
.0
.try_into()
.map_err(|_| frost_core::Error::<C>::DeserializationError)?,
)
frost_core::Identifier::<C>::deserialize(&serialized_identifier.0)
}
}
@ -111,7 +105,7 @@ pub struct SerializedRandomizer(
impl<C: frost_core::Ciphersuite> From<frost_rerandomized::Randomizer<C>> for SerializedRandomizer {
fn from(randomizer: frost_rerandomized::Randomizer<C>) -> Self {
Self(randomizer.serialize().as_ref().to_vec())
Self(randomizer.serialize().to_vec())
}
}
@ -121,13 +115,7 @@ impl<C: frost_core::Ciphersuite> TryFrom<&SerializedRandomizer>
type Error = frost_core::Error<C>;
fn try_from(serialized_randomizer: &SerializedRandomizer) -> Result<Self, Self::Error> {
frost_rerandomized::Randomizer::<C>::deserialize(
&serialized_randomizer
.0
.clone()
.try_into()
.map_err(|_| frost_core::Error::<C>::DeserializationError)?,
)
frost_rerandomized::Randomizer::<C>::deserialize(&serialized_randomizer.0)
}
}
@ -145,7 +133,7 @@ impl<C: frost_core::Ciphersuite> From<frost_core::round2::SignatureShare<C>>
for SerializedSignatureShare
{
fn from(randomizer: frost_core::round2::SignatureShare<C>) -> Self {
Self(randomizer.serialize().as_ref().to_vec())
Self(randomizer.serialize().to_vec())
}
}
@ -155,13 +143,7 @@ impl<C: frost_core::Ciphersuite> TryFrom<&SerializedSignatureShare>
type Error = frost_core::Error<C>;
fn try_from(serialized_randomizer: &SerializedSignatureShare) -> Result<Self, Self::Error> {
frost_core::round2::SignatureShare::<C>::deserialize(
serialized_randomizer
.0
.clone()
.try_into()
.map_err(|_| frost_core::Error::<C>::DeserializationError)?,
)
frost_core::round2::SignatureShare::<C>::deserialize(&serialized_randomizer.0)
}
}

View File

@ -4,8 +4,8 @@ version = "0.1.0"
edition = "2021"
[dependencies]
frost-ed25519 = { version = "1.0.0", features = ["serde"] }
reddsa = { git = "https://github.com/ZcashFoundation/reddsa.git", rev = "81c649c412e5b6ba56d491d2857f91fbd28adbc7", features = ["frost"] }
frost-ed25519 = { version = "2.0.0-rc.0", features = ["serde"] }
reddsa = { git = "https://github.com/ZcashFoundation/reddsa.git", rev = "4d8c4bb337231e6e89117334d7c61dada589a953", features = ["frost"] }
hex = "0.4"
rand = "0.8"
exitcode = "1.1.2"
@ -13,7 +13,7 @@ serde_json = "1.0"
tokio = { version = "1", features = ["full"] }
[dev-dependencies]
frost-ed25519 = { version = "1.0.0", features = ["serde"] }
frost-ed25519 = { version = "2.0.0-rc.0", features = ["serde"] }
dkg = { path = "../dkg"}
trusted-dealer = { path = "../trusted-dealer"}
participant = { path = "../participant"}

View File

@ -6,9 +6,9 @@ edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
frost-core = { version = "1.0.0", features = ["serde"] }
frost-ed25519 = { version = "1.0.0", features = ["serde"] }
reddsa = { git = "https://github.com/ZcashFoundation/reddsa.git", rev = "81c649c412e5b6ba56d491d2857f91fbd28adbc7", features = ["frost"] }
frost-core = { version = "2.0.0-rc.0", features = ["serde"] }
frost-ed25519 = { version = "2.0.0-rc.0", features = ["serde"] }
reddsa = { git = "https://github.com/ZcashFoundation/reddsa.git", rev = "4d8c4bb337231e6e89117334d7c61dada589a953", features = ["frost"] }
clap = { version = "4.5.7", features = ["derive"] }
thiserror = "1.0"
rand = "0.8"

View File

@ -33,13 +33,7 @@ pub fn split_secret<C: Ciphersuite>(
identifiers: IdentifierList<C>,
rng: &mut ThreadRng,
) -> Result<(BTreeMap<Identifier<C>, SecretShare<C>>, PublicKeyPackage<C>), Error<C>> {
let secret_key = SigningKey::deserialize(
config
.secret
.clone()
.try_into()
.map_err(|_| Error::MalformedSigningKey)?,
)?;
let secret_key = SigningKey::deserialize(&config.secret)?;
let (shares, pubkeys) = frost::keys::split(
&secret_key,
config.max_signers,