@@ -139,6 +139,7 @@ use libpaillier::{Ciphertext, EncryptionKey, Nonce};
139139
140140pub use crate :: common:: InvalidProof ;
141141
142+ #[ derive( Debug , Clone ) ]
142143pub struct SecurityParams {
143144 /// l in paper, bit size of x
144145 pub l_x : usize ,
@@ -149,6 +150,7 @@ pub struct SecurityParams {
149150}
150151
151152/// Public data that both parties know
153+ #[ derive( Debug , Clone ) ]
152154pub struct Data < C : Curve > {
153155 /// N0 in paper, public key that C was encrypted on
154156 pub key0 : EncryptionKey ,
@@ -165,6 +167,7 @@ pub struct Data<C: Curve> {
165167}
166168
167169/// Private data of prover
170+ #[ derive( Clone ) ]
168171pub struct PrivateData {
169172 /// x or epsilon in paper, preimage of X
170173 pub x : BigNumber ,
@@ -178,6 +181,7 @@ pub struct PrivateData {
178181
179182// As described in cggmp21 at page 35
180183/// Prover's first message, obtained by `commit`
184+ #[ derive( Debug , Clone ) ]
181185pub struct Commitment < C : Curve > {
182186 pub a : BigNumber ,
183187 pub b_x : Point < C > ,
@@ -190,6 +194,7 @@ pub struct Commitment<C: Curve> {
190194
191195/// Prover's data accompanying the commitment. Kept as state between rounds in
192196/// the interactive protocol.
197+ #[ derive( Clone ) ]
193198pub struct PrivateCommitment {
194199 pub alpha : BigNumber ,
195200 pub beta : BigNumber ,
@@ -206,6 +211,7 @@ pub struct PrivateCommitment {
206211pub type Challenge = BigNumber ;
207212
208213/// The ZK proof. Computed by `prove`
214+ #[ derive( Debug , Clone ) ]
209215pub struct Proof {
210216 pub z1 : BigNumber ,
211217 pub z2 : BigNumber ,
0 commit comments