78 lines
1.9 KiB
Rust
78 lines
1.9 KiB
Rust
#[macro_export]
|
|
macro_rules! with_ciphersuite {
|
|
($curve:expr, |$alias:ident| $body:block) => {
|
|
match $curve {
|
|
NetworkCurve::Secp256k1 => {
|
|
#[allow(unused_imports)]
|
|
use frost_secp256k1_tr as $alias;
|
|
|
|
#[allow(unused_imports)]
|
|
use frost_secp256k1_tr::Secp256K1Sha256TR as Ciphersuite;
|
|
|
|
use $alias::keys::EvenY;
|
|
|
|
#[allow(dead_code)]
|
|
trait UniversalNormalizer {
|
|
fn normalize_package(self) -> Self;
|
|
fn is_normalized(&self) -> bool;
|
|
}
|
|
|
|
impl<T: EvenY> UniversalNormalizer for T {
|
|
#[inline]
|
|
fn normalize_package(self) -> Self {
|
|
self.into_even_y(None)
|
|
}
|
|
|
|
#[inline]
|
|
fn is_normalized(&self) -> bool {
|
|
self.has_even_y()
|
|
}
|
|
}
|
|
|
|
$body
|
|
},
|
|
NetworkCurve::Ed25519 => {
|
|
#[allow(unused_imports)]
|
|
use frost_ed25519 as $alias;
|
|
|
|
#[allow(unused_imports)]
|
|
use frost_ed25519::Ed25519Sha512 as Ciphersuite;
|
|
|
|
#[allow(dead_code)]
|
|
trait UniversalNormalizer {
|
|
fn normalize_package(self) -> Self;
|
|
fn is_normalized(&self) -> bool;
|
|
}
|
|
|
|
impl<T> UniversalNormalizer for T {
|
|
#[inline]
|
|
fn normalize_package(self) -> Self { self }
|
|
|
|
#[inline]
|
|
fn is_normalized(&self) -> bool { true }
|
|
}
|
|
|
|
$body
|
|
},
|
|
}
|
|
}
|
|
}
|
|
|
|
#[macro_use]
|
|
mod converter;
|
|
|
|
#[macro_use]
|
|
mod merkle;
|
|
|
|
#[macro_use]
|
|
mod dkg;
|
|
|
|
#[macro_use]
|
|
mod ecdh;
|
|
|
|
#[macro_use]
|
|
mod frost;
|
|
|
|
#[macro_use]
|
|
mod sizes;
|