Skip to content

Commit 3972bf6

Browse files
authored
add uncompressed serialization (#63)
1 parent 2e01ea4 commit 3972bf6

File tree

1 file changed

+39
-0
lines changed

1 file changed

+39
-0
lines changed

src/kzg10/data_structures.rs

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,22 @@ impl<E: PairingEngine> CanonicalSerialize for UniversalParams<E> {
6161
self.beta_h.serialize_unchecked(&mut writer)?;
6262
self.neg_powers_of_h.serialize_unchecked(&mut writer)
6363
}
64+
65+
fn serialize_uncompressed<W: Write>(&self, mut writer: W) -> Result<(), SerializationError> {
66+
self.powers_of_g.serialize_uncompressed(&mut writer)?;
67+
self.powers_of_gamma_g.serialize_uncompressed(&mut writer)?;
68+
self.h.serialize_uncompressed(&mut writer)?;
69+
self.beta_h.serialize_uncompressed(&mut writer)?;
70+
self.neg_powers_of_h.serialize_uncompressed(&mut writer)
71+
}
72+
73+
fn uncompressed_size(&self) -> usize {
74+
self.powers_of_g.uncompressed_size()
75+
+ self.powers_of_gamma_g.uncompressed_size()
76+
+ self.h.uncompressed_size()
77+
+ self.beta_h.uncompressed_size()
78+
+ self.neg_powers_of_h.uncompressed_size()
79+
}
6480
}
6581

6682
impl<E: PairingEngine> CanonicalDeserialize for UniversalParams<E> {
@@ -85,6 +101,29 @@ impl<E: PairingEngine> CanonicalDeserialize for UniversalParams<E> {
85101
})
86102
}
87103

104+
fn deserialize_uncompressed<R: Read>(mut reader: R) -> Result<Self, SerializationError> {
105+
let powers_of_g = Vec::<E::G1Affine>::deserialize_uncompressed(&mut reader)?;
106+
let powers_of_gamma_g =
107+
BTreeMap::<usize, E::G1Affine>::deserialize_uncompressed(&mut reader)?;
108+
let h = E::G2Affine::deserialize_uncompressed(&mut reader)?;
109+
let beta_h = E::G2Affine::deserialize_uncompressed(&mut reader)?;
110+
let neg_powers_of_h =
111+
BTreeMap::<usize, E::G2Affine>::deserialize_uncompressed(&mut reader)?;
112+
113+
let prepared_h = E::G2Prepared::from(h.clone());
114+
let prepared_beta_h = E::G2Prepared::from(beta_h.clone());
115+
116+
Ok(Self {
117+
powers_of_g,
118+
powers_of_gamma_g,
119+
h,
120+
beta_h,
121+
neg_powers_of_h,
122+
prepared_h,
123+
prepared_beta_h,
124+
})
125+
}
126+
88127
fn deserialize_unchecked<R: Read>(mut reader: R) -> Result<Self, SerializationError> {
89128
let powers_of_g = Vec::<E::G1Affine>::deserialize_unchecked(&mut reader)?;
90129
let powers_of_gamma_g = BTreeMap::<usize, E::G1Affine>::deserialize_unchecked(&mut reader)?;

0 commit comments

Comments
 (0)