Skip to content

Commit 2e01ea4

Browse files
authored
add serialize/deserialize_unchecked for CRS (#62)
1 parent 93d1a29 commit 2e01ea4

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

src/kzg10/data_structures.rs

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,14 @@ impl<E: PairingEngine> CanonicalSerialize for UniversalParams<E> {
5353
+ self.beta_h.serialized_size()
5454
+ self.neg_powers_of_h.serialized_size()
5555
}
56+
57+
fn serialize_unchecked<W: Write>(&self, mut writer: W) -> Result<(), SerializationError> {
58+
self.powers_of_g.serialize_unchecked(&mut writer)?;
59+
self.powers_of_gamma_g.serialize_unchecked(&mut writer)?;
60+
self.h.serialize_unchecked(&mut writer)?;
61+
self.beta_h.serialize_unchecked(&mut writer)?;
62+
self.neg_powers_of_h.serialize_unchecked(&mut writer)
63+
}
5664
}
5765

5866
impl<E: PairingEngine> CanonicalDeserialize for UniversalParams<E> {
@@ -76,6 +84,27 @@ impl<E: PairingEngine> CanonicalDeserialize for UniversalParams<E> {
7684
prepared_beta_h,
7785
})
7886
}
87+
88+
fn deserialize_unchecked<R: Read>(mut reader: R) -> Result<Self, SerializationError> {
89+
let powers_of_g = Vec::<E::G1Affine>::deserialize_unchecked(&mut reader)?;
90+
let powers_of_gamma_g = BTreeMap::<usize, E::G1Affine>::deserialize_unchecked(&mut reader)?;
91+
let h = E::G2Affine::deserialize_unchecked(&mut reader)?;
92+
let beta_h = E::G2Affine::deserialize_unchecked(&mut reader)?;
93+
let neg_powers_of_h = BTreeMap::<usize, E::G2Affine>::deserialize_unchecked(&mut reader)?;
94+
95+
let prepared_h = E::G2Prepared::from(h.clone());
96+
let prepared_beta_h = E::G2Prepared::from(beta_h.clone());
97+
98+
Ok(Self {
99+
powers_of_g,
100+
powers_of_gamma_g,
101+
h,
102+
beta_h,
103+
neg_powers_of_h,
104+
prepared_h,
105+
prepared_beta_h,
106+
})
107+
}
79108
}
80109

81110
/// `Powers` is used to commit to and create evaluation proofs for a given

0 commit comments

Comments
 (0)