From ddd5192489e880428136472423e5e13e6036a70d Mon Sep 17 00:00:00 2001 From: wborgeaud Date: Fri, 18 Mar 2022 08:04:40 +0100 Subject: [PATCH] Move `secret_to_public` to a `ECDSASecretKey` method --- ecdsa/src/curve/ecdsa.rs | 21 ++++++++++++--------- plonky2/src/gadgets/ecdsa.rs | 0 2 files changed, 12 insertions(+), 9 deletions(-) delete mode 100644 plonky2/src/gadgets/ecdsa.rs diff --git a/ecdsa/src/curve/ecdsa.rs b/ecdsa/src/curve/ecdsa.rs index 52262830..bb4ebe4a 100644 --- a/ecdsa/src/curve/ecdsa.rs +++ b/ecdsa/src/curve/ecdsa.rs @@ -1,8 +1,8 @@ +use plonky2_field::field_types::Field; use serde::{Deserialize, Serialize}; use crate::curve::curve_msm::msm_parallel; use crate::curve::curve_types::{base_to_scalar, AffinePoint, Curve, CurveScalar}; -use crate::field::field_types::Field; #[derive(Copy, Clone, Debug, Deserialize, Eq, Hash, PartialEq, Serialize)] pub struct ECDSASignature { @@ -13,13 +13,15 @@ pub struct ECDSASignature { #[derive(Copy, Clone, Debug, Deserialize, Eq, Hash, PartialEq, Serialize)] pub struct ECDSASecretKey(pub C::ScalarField); +impl ECDSASecretKey { + pub fn to_public(&self) -> ECDSAPublicKey { + ECDSAPublicKey((CurveScalar(self.0) * C::GENERATOR_PROJECTIVE).to_affine()) + } +} + #[derive(Copy, Clone, Debug, Deserialize, Eq, Hash, PartialEq, Serialize)] pub struct ECDSAPublicKey(pub AffinePoint); -pub fn secret_to_public(sk: ECDSASecretKey) -> ECDSAPublicKey { - ECDSAPublicKey((CurveScalar(sk.0) * C::GENERATOR_PROJECTIVE).to_affine()) -} - pub fn sign_message(msg: C::ScalarField, sk: ECDSASecretKey) -> ECDSASignature { let (k, rr) = { let mut k = C::ScalarField::rand(); @@ -61,10 +63,11 @@ pub fn verify_message( #[cfg(test)] mod tests { - use crate::curve::ecdsa::{secret_to_public, sign_message, verify_message, ECDSASecretKey}; + use plonky2_field::field_types::Field; + use plonky2_field::secp256k1_scalar::Secp256K1Scalar; + + use crate::curve::ecdsa::{sign_message, verify_message, ECDSASecretKey}; use crate::curve::secp256k1::Secp256K1; - use crate::field::field_types::Field; - use crate::field::secp256k1_scalar::Secp256K1Scalar; #[test] fn test_ecdsa_native() { @@ -72,7 +75,7 @@ mod tests { let msg = Secp256K1Scalar::rand(); let sk = ECDSASecretKey::(Secp256K1Scalar::rand()); - let pk = secret_to_public(sk); + let pk = sk.to_public(); let sig = sign_message(msg, sk); let result = verify_message(msg, sig, pk); diff --git a/plonky2/src/gadgets/ecdsa.rs b/plonky2/src/gadgets/ecdsa.rs deleted file mode 100644 index e69de29b..00000000