-
Notifications
You must be signed in to change notification settings - Fork 13
/
BankWithdrawTool.h
45 lines (33 loc) · 1.26 KB
/
BankWithdrawTool.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#ifndef BANKWITHDRAWTOOL_H_
#define BANKWITHDRAWTOOL_H_
#include "BankParameters.h"
#include "ZKP/Environment.h"
class BankWithdrawTool {
public:
BankWithdrawTool(const BankParameters *bp, const ZZ &userPK,
int stat, int lx, int wSize, int denom,
const hashalg_t &hashAlg);
BankWithdrawTool(const BankWithdrawTool &original);
// computes and stores random number from Z*_primeOrder
ZZ getBankContribution() { return bankContribution; }
// input: a commitment to s'
// output: A commitment to s = s' + r'
// r' is the bank's contribution of randomness
void computeFullCommitment(const ZZ &partialCommitment);
// This method will return the bank's signature if the sigma proofs
// are verified, and will throw exceptions if they are not verified
ProofMessage* sign(ProofMessage* id, ProofMessage* cl);
int getWalletSize() const { return walletSize; }
int getDenom() const { return coinDenom; }
private:
const BankParameters* bankParameters;
ZZ userPublicKey;
int stat, lx, walletSize, coinDenom;
ZZ bankContribution;
hashalg_t hashAlg;
// the full commitment to s = s' + r' which is computed in
// getFullCommitment(partialCommitment)
ZZ fullCommitment;
};
#define NUM_WALLET_SIZES 7
#endif // BANKWITHDRAWTOOL_H_