diff --git a/ferveo-tdec/benches/tpke.rs b/ferveo-tdec/benches/tpke.rs index db8a7424..b7a5b8f7 100644 --- a/ferveo-tdec/benches/tpke.rs +++ b/ferveo-tdec/benches/tpke.rs @@ -25,7 +25,7 @@ struct SetupShared { shares_num: usize, msg: Vec, aad: Vec, - pubkey: PublicKeyShare, + pubkey: PublicKey, privkey: PrivateKeyShare, ciphertext: Ciphertext, shared_secret: SharedSecret, diff --git a/ferveo-tdec/src/ciphertext.rs b/ferveo-tdec/src/ciphertext.rs index d5563132..57b6ca13 100644 --- a/ferveo-tdec/src/ciphertext.rs +++ b/ferveo-tdec/src/ciphertext.rs @@ -14,7 +14,7 @@ use sha2::{digest::Digest, Sha256}; use zeroize::ZeroizeOnDrop; use crate::{ - htp_bls12381_g2, Error, PrivateKeyShare, PublicKeyShare, Result, SecretBox, + htp_bls12381_g2, Error, PrivateKeyShare, PublicKey, Result, SecretBox, SharedSecret, }; @@ -98,7 +98,7 @@ impl CiphertextHeader { pub fn encrypt( message: SecretBox>, aad: &[u8], - pubkey: &PublicKeyShare, + pubkey: &PublicKey, rng: &mut impl rand::Rng, ) -> Result> { // r diff --git a/ferveo-tdec/src/context.rs b/ferveo-tdec/src/context.rs index 238db71c..6e565188 100644 --- a/ferveo-tdec/src/context.rs +++ b/ferveo-tdec/src/context.rs @@ -5,13 +5,13 @@ use ark_ec::{pairing::Pairing, CurveGroup}; use crate::{ prepare_combine_simple, BlindedKeyShare, Ciphertext, CiphertextHeader, DecryptionShareFast, DecryptionSharePrecomputed, DecryptionShareSimple, - PrivateKeyShare, PublicKeyShare, Result, + PrivateKeyShare, PublicKey, Result, }; #[derive(Clone, Debug)] pub struct PublicDecryptionContextFast { pub domain: E::ScalarField, - pub public_key_share: PublicKeyShare, + pub public_key: PublicKey, pub blinded_key_share: BlindedKeyShare, // This decrypter's contribution to N(0), namely (-1)^|domain| * \prod_i omega_i pub lagrange_n_0: E::ScalarField, @@ -21,7 +21,7 @@ pub struct PublicDecryptionContextFast { #[derive(Clone, Debug)] pub struct PublicDecryptionContextSimple { pub domain: E::ScalarField, - pub public_key_share: PublicKeyShare, + pub public_key: PublicKey, pub blinded_key_share: BlindedKeyShare, pub h: E::G2Affine, pub validator_public_key: E::G2, diff --git a/ferveo-tdec/src/key_share.rs b/ferveo-tdec/src/key_share.rs index 236386ae..cd04c356 100644 --- a/ferveo-tdec/src/key_share.rs +++ b/ferveo-tdec/src/key_share.rs @@ -11,8 +11,7 @@ use zeroize::{Zeroize, ZeroizeOnDrop}; #[serde_as] #[derive(Debug, Copy, Clone, Serialize, Deserialize, PartialEq, Eq)] -// TODO: Should we rename it to PublicKey or SharedPublicKey? -pub struct PublicKeyShare( +pub struct PublicKey( #[serde_as(as = "serialization::SerdeAs")] pub E::G1Affine, // A_{i, \omega_i} ); @@ -25,15 +24,14 @@ pub struct BlindedKeyShare { impl BlindedKeyShare { pub fn verify_blinding( &self, - public_key_share: &PublicKeyShare, + public_key: &PublicKey, rng: &mut R, ) -> bool { let g = E::G1Affine::generator(); let alpha = E::ScalarField::rand(rng); - let alpha_a = E::G1Prepared::from( - g + public_key_share.0.mul(alpha).into_affine(), - ); + let alpha_a = + E::G1Prepared::from(g + public_key.0.mul(alpha).into_affine()); // \sum_i(Y_i) let alpha_z = E::G2Prepared::from( diff --git a/ferveo-tdec/src/lib.rs b/ferveo-tdec/src/lib.rs index 465b3717..e491bba7 100644 --- a/ferveo-tdec/src/lib.rs +++ b/ferveo-tdec/src/lib.rs @@ -77,7 +77,7 @@ pub mod test_common { shares_num: usize, rng: &mut impl RngCore, ) -> ( - PublicKeyShare, + PublicKey, PrivateKeyShare, Vec>, ) { @@ -157,7 +157,7 @@ pub mod test_common { }); public_contexts.push(PublicDecryptionContextFast:: { domain: *domain, - public_key_share: PublicKeyShare::(*public), + public_key: PublicKey::(*public), blinded_key_share: blinded_key_shares, lagrange_n_0: *domain, h_inv: E::G2Prepared::from(-h.into_group()), @@ -168,7 +168,7 @@ pub mod test_common { } ( - PublicKeyShare(pubkey.into()), + PublicKey(pubkey.into()), PrivateKeyShare(privkey.into()), private_contexts, ) @@ -179,7 +179,7 @@ pub mod test_common { shares_num: usize, rng: &mut impl rand::Rng, ) -> ( - PublicKeyShare, + PublicKey, PrivateKeyShare, Vec>, ) { @@ -245,7 +245,7 @@ pub mod test_common { }); public_contexts.push(PublicDecryptionContextSimple:: { domain: *domain, - public_key_share: PublicKeyShare::(*public), + public_key: PublicKey::(*public), blinded_key_share, h, validator_public_key: h.mul(b), @@ -256,7 +256,7 @@ pub mod test_common { } ( - PublicKeyShare(pubkey.into()), + PublicKey(pubkey.into()), PrivateKeyShare(privkey.into()), private_contexts, ) @@ -266,7 +266,7 @@ pub mod test_common { shares_num: usize, rng: &mut impl rand::Rng, ) -> ( - PublicKeyShare, + PublicKey, PrivateKeyShare, Vec>, ) { diff --git a/ferveo/src/api.rs b/ferveo/src/api.rs index 32449257..4555b436 100644 --- a/ferveo/src/api.rs +++ b/ferveo/src/api.rs @@ -143,13 +143,13 @@ impl From for FerveoVariant { #[derive(Copy, Clone, Debug, Eq, PartialEq, Serialize, Deserialize)] pub struct DkgPublicKey( #[serde(bound( - serialize = "ferveo_tdec::PublicKeyShare: Serialize", - deserialize = "ferveo_tdec::PublicKeyShare: DeserializeOwned" + serialize = "ferveo_tdec::PublicKey: Serialize", + deserialize = "ferveo_tdec::PublicKey: DeserializeOwned" ))] - pub(crate) ferveo_tdec::PublicKeyShare, + pub(crate) ferveo_tdec::PublicKey, ); -// TODO: Consider moving these implementation details to ferveo_tdec::PublicKeyShare +// TODO: Consider moving these implementation details to ferveo_tdec::PublicKey impl DkgPublicKey { pub fn to_bytes(&self) -> Result> { let as_bytes = to_bytes(&self.0 .0)?; @@ -166,7 +166,7 @@ impl DkgPublicKey { ) })?; let pk: G1Affine = from_bytes(&bytes)?; - Ok(DkgPublicKey(ferveo_tdec::PublicKeyShare(pk))) + Ok(DkgPublicKey(ferveo_tdec::PublicKey(pk))) } pub fn serialized_size() -> usize { @@ -178,7 +178,7 @@ impl DkgPublicKey { pub fn random() -> Self { let mut rng = thread_rng(); let g1 = G1Affine::rand(&mut rng); - Self(ferveo_tdec::PublicKeyShare(g1)) + Self(ferveo_tdec::PublicKey(g1)) } } diff --git a/ferveo/src/pvss.rs b/ferveo/src/pvss.rs index cba7f92c..0b966871 100644 --- a/ferveo/src/pvss.rs +++ b/ferveo/src/pvss.rs @@ -393,10 +393,10 @@ pub struct AggregatedTranscript { ))] pub aggregate: PubliclyVerifiableSS, #[serde(bound( - serialize = "ferveo_tdec::PublicKeyShare: Serialize", - deserialize = "ferveo_tdec::PublicKeyShare: DeserializeOwned" + serialize = "ferveo_tdec::PublicKey: Serialize", + deserialize = "ferveo_tdec::PublicKey: DeserializeOwned" ))] - pub public_key: ferveo_tdec::PublicKeyShare, + pub public_key: ferveo_tdec::PublicKey, } impl AggregatedTranscript { @@ -409,7 +409,7 @@ impl AggregatedTranscript { .map(|pvss| pvss.coeffs[0].into_group()) .sum::() .into_affine(); - let public_key = ferveo_tdec::PublicKeyShare::(public_key); + let public_key = ferveo_tdec::PublicKey::(public_key); Ok(AggregatedTranscript { aggregate, public_key, diff --git a/ferveo/src/refresh.rs b/ferveo/src/refresh.rs index ddaa8215..e1c86c31 100644 --- a/ferveo/src/refresh.rs +++ b/ferveo/src/refresh.rs @@ -122,7 +122,6 @@ impl UpdatedPrivateKeyShare { } } -// TODO: Replace with an into trait? /// Trait for types that can be used to update a private key share. pub trait PrivateKeyShareUpdate { fn inner(&self) -> &InnerPrivateKeyShare;