Skip to content

Commit 9799754

Browse files
committed
upgrades reddsa to newer commit to use frost 2.0.0-rc
1 parent 68879fd commit 9799754

File tree

10 files changed

+192
-212
lines changed

10 files changed

+192
-212
lines changed

src/dkg/error.rs

Lines changed: 0 additions & 53 deletions
This file was deleted.

src/dkg/mod.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
* License, v. 2.0. If a copy of the MPL was not distributed with this
33
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
44

5-
pub mod error;
65
pub mod group_key;
76
pub mod round1;
87
pub mod round2;

src/dkg/round1.rs

Lines changed: 20 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
use crate::checksum::Checksum;
66
use crate::checksum::ChecksumHasher;
77
use crate::checksum::CHECKSUM_LEN;
8-
use crate::dkg::error::Error;
98
use crate::dkg::group_key::GroupSecretKeyShard;
9+
use crate::error::IronfishFrostError;
1010
use crate::frost;
1111
use crate::frost::keys::dkg::round1::Package;
1212
use crate::frost::keys::dkg::round1::SecretPackage;
@@ -87,23 +87,24 @@ impl<'a> From<&'a SerializableSecretPackage> for &'a SecretPackage {
8787
}
8888

8989
impl SerializableSecretPackage {
90-
fn serialize_into<W: io::Write>(&self, mut writer: W) -> io::Result<()> {
90+
fn serialize_into<W: io::Write>(&self, mut writer: W) -> Result<(), IronfishFrostError> {
9191
writer.write_all(&self.identifier.serialize())?;
9292
write_variable_length(&mut writer, &self.coefficients, |writer, scalar| {
9393
writer.write_all(&scalar.to_bytes())
9494
})?;
95-
write_variable_length(&mut writer, self.commitment.serialize(), |writer, array| {
95+
let serialized = self.commitment.serialize()?;
96+
write_variable_length(&mut writer, serialized, |writer, array| {
9697
writer.write_all(&array)
9798
})?;
9899
write_u16(&mut writer, self.min_signers)?;
99100
write_u16(&mut writer, self.max_signers)?;
100101
Ok(())
101102
}
102103

103-
fn deserialize_from<R: io::Read>(mut reader: R) -> io::Result<Self> {
104+
fn deserialize_from<R: io::Read>(mut reader: R) -> Result<Self, IronfishFrostError> {
104105
let mut identifier = [0u8; 32];
105106
reader.read_exact(&mut identifier)?;
106-
let identifier = Identifier::deserialize(&identifier).map_err(io::Error::other)?;
107+
let identifier = Identifier::deserialize(&identifier)?;
107108

108109
let coefficients = read_variable_length(&mut reader, |reader| {
109110
let mut scalar = [0u8; 32];
@@ -119,8 +120,7 @@ impl SerializableSecretPackage {
119120
reader.read_exact(&mut array)?;
120121
Ok(array)
121122
},
122-
)?)
123-
.map_err(io::Error::other)?;
123+
)?)?;
124124

125125
let min_signers = read_u16(&mut reader)?;
126126
let max_signers = read_u16(&mut reader)?;
@@ -160,7 +160,7 @@ pub fn export_secret_package<R: RngCore + CryptoRng>(
160160
pub fn import_secret_package(
161161
exported: &[u8],
162162
secret: &participant::Secret,
163-
) -> io::Result<SecretPackage> {
163+
) -> Result<SecretPackage, IronfishFrostError> {
164164
let serialized = multienc::decrypt(secret, exported).map_err(io::Error::other)?;
165165
SerializableSecretPackage::deserialize_from(&serialized[..]).map(|pkg| pkg.into())
166166
}
@@ -254,21 +254,22 @@ impl PublicPackage {
254254
buf
255255
}
256256

257-
pub fn serialize_into<W: io::Write>(&self, mut writer: W) -> io::Result<()> {
257+
pub fn serialize_into<W: io::Write>(&self, mut writer: W) -> Result<(), IronfishFrostError> {
258258
self.identity.serialize_into(&mut writer)?;
259-
let frost_package = self.frost_package.serialize().map_err(io::Error::other)?;
259+
let frost_package = self.frost_package.serialize()?;
260260
write_variable_length_bytes(&mut writer, &frost_package)?;
261261
write_variable_length_bytes(&mut writer, &self.group_secret_key_shard_encrypted)?;
262262
writer.write_all(&self.checksum.to_le_bytes())?;
263263
Ok(())
264264
}
265265

266-
pub fn deserialize_from<R: io::Read>(mut reader: R) -> io::Result<Self> {
266+
pub fn deserialize_from<R: io::Read>(mut reader: R) -> Result<Self, IronfishFrostError> {
267267
let identity = Identity::deserialize_from(&mut reader).expect("reading identity failed");
268268

269269
let frost_package = read_variable_length_bytes(&mut reader)?;
270-
let frost_package = Package::deserialize(&frost_package).map_err(io::Error::other)?;
271-
let group_secret_key_shard_encrypted = read_variable_length_bytes(&mut reader)?;
270+
let frost_package = Package::deserialize(&frost_package)?;
271+
272+
let group_secret_key_shard_encrypted = read_encrypted_blob(&mut reader)?;
272273

273274
let mut checksum = [0u8; CHECKSUM_LEN];
274275
reader.read_exact(&mut checksum)?;
@@ -288,7 +289,7 @@ pub fn round1<'a, I, R>(
288289
min_signers: u16,
289290
participants: I,
290291
mut csrng: R,
291-
) -> Result<(Vec<u8>, PublicPackage), Error>
292+
) -> Result<(Vec<u8>, PublicPackage), IronfishFrostError>
292293
where
293294
I: IntoIterator<Item = &'a Identity>,
294295
R: RngCore + CryptoRng,
@@ -300,25 +301,21 @@ where
300301
let participants = participants;
301302

302303
if !participants.contains(&self_identity) {
303-
return Err(Error::InvalidInput(
304-
"participants must include self_identity".to_string(),
305-
));
304+
return Err(IronfishFrostError::InvalidInput);
306305
}
307306

308-
let max_signers = u16::try_from(participants.len())
309-
.map_err(|_| Error::InvalidInput("too many participants".to_string()))?;
307+
let max_signers =
308+
u16::try_from(participants.len()).map_err(|_| IronfishFrostError::InvalidInput)?;
310309

311310
let (secret_package, public_package) = frost::keys::dkg::part1(
312311
self_identity.to_frost_identifier(),
313312
max_signers,
314313
min_signers,
315314
&mut csrng,
316-
)
317-
.map_err(Error::FrostError)?;
315+
)?;
318316

319317
let encrypted_secret_package =
320-
export_secret_package(&secret_package, self_identity, &mut csrng)
321-
.map_err(Error::EncryptionError)?;
318+
export_secret_package(&secret_package, self_identity, &mut csrng)?;
322319

323320
let group_secret_key_shard = GroupSecretKeyShard::random(&mut csrng);
324321

0 commit comments

Comments
 (0)