Rename ElGamalKeypair fields
This commit is contained in:
@@ -155,7 +155,7 @@ mod test {
|
||||
let source = ElGamalKeypair::default();
|
||||
|
||||
// invalid ciphertexts
|
||||
let balance = source.pk.encrypt(0_u64);
|
||||
let balance = source.public.encrypt(0_u64);
|
||||
|
||||
let zeroed_comm = Pedersen::with(0_u64, &PedersenOpening::default());
|
||||
let handle = balance.decrypt_handle;
|
||||
@@ -165,7 +165,7 @@ mod test {
|
||||
decrypt_handle: handle,
|
||||
};
|
||||
|
||||
let proof = CloseAccountProof::new(&source.sk, &zeroed_comm_ciphertext);
|
||||
let proof = CloseAccountProof::new(&source.secret, &zeroed_comm_ciphertext);
|
||||
assert!(proof.verify(&zeroed_comm_ciphertext).is_err());
|
||||
|
||||
let zeroed_handle_ciphertext = ElGamalCiphertext {
|
||||
@@ -173,24 +173,24 @@ mod test {
|
||||
decrypt_handle: PedersenDecryptHandle::default(),
|
||||
};
|
||||
|
||||
let proof = CloseAccountProof::new(&source.sk, &zeroed_handle_ciphertext);
|
||||
let proof = CloseAccountProof::new(&source.secret, &zeroed_handle_ciphertext);
|
||||
assert!(proof.verify(&zeroed_handle_ciphertext).is_err());
|
||||
|
||||
// valid ciphertext, but encryption of non-zero amount
|
||||
let balance = source.pk.encrypt(55_u64);
|
||||
let balance = source.public.encrypt(55_u64);
|
||||
|
||||
let proof = CloseAccountProof::new(&source.sk, &balance);
|
||||
let proof = CloseAccountProof::new(&source.secret, &balance);
|
||||
assert!(proof.verify(&balance).is_err());
|
||||
|
||||
// all-zeroed ciphertext interpretted as a valid encryption of zero
|
||||
let zeroed_ct: ElGamalCiphertext = pod::ElGamalCiphertext::zeroed().try_into().unwrap();
|
||||
let proof = CloseAccountProof::new(&source.sk, &zeroed_ct);
|
||||
let proof = CloseAccountProof::new(&source.secret, &zeroed_ct);
|
||||
assert!(proof.verify(&zeroed_ct).is_ok());
|
||||
|
||||
// general case: valid encryption of zero
|
||||
let balance = source.pk.encrypt(0_u64);
|
||||
let balance = source.public.encrypt(0_u64);
|
||||
|
||||
let proof = CloseAccountProof::new(&source.sk, &balance);
|
||||
let proof = CloseAccountProof::new(&source.secret, &balance);
|
||||
assert!(proof.verify(&balance).is_ok());
|
||||
}
|
||||
}
|
||||
|
@@ -471,11 +471,11 @@ mod test {
|
||||
fn test_transfer_correctness() {
|
||||
// ElGamalKeypair keys for source, destination, and auditor accounts
|
||||
let ElGamalKeypair {
|
||||
pk: source_pk,
|
||||
sk: source_sk,
|
||||
public: source_pk,
|
||||
secret: source_sk,
|
||||
} = ElGamalKeypair::default();
|
||||
let dest_pk = ElGamalKeypair::default().pk;
|
||||
let auditor_pk = ElGamalKeypair::default().pk;
|
||||
let dest_pk = ElGamalKeypair::default().public;
|
||||
let auditor_pk = ElGamalKeypair::default().public;
|
||||
|
||||
// create source account spendable ciphertext
|
||||
let spendable_balance: u64 = 77;
|
||||
@@ -502,14 +502,14 @@ mod test {
|
||||
fn test_source_dest_ciphertext() {
|
||||
// ElGamalKeypair keys for source, destination, and auditor accounts
|
||||
let ElGamalKeypair {
|
||||
pk: source_pk,
|
||||
sk: source_sk,
|
||||
public: source_pk,
|
||||
secret: source_sk,
|
||||
} = ElGamalKeypair::default();
|
||||
let ElGamalKeypair {
|
||||
pk: dest_pk,
|
||||
sk: dest_sk,
|
||||
public: dest_pk,
|
||||
secret: dest_sk,
|
||||
} = ElGamalKeypair::default();
|
||||
let auditor_pk = ElGamalKeypair::default().pk;
|
||||
let auditor_pk = ElGamalKeypair::default().public;
|
||||
|
||||
// create source account spendable ciphertext
|
||||
let spendable_balance: u64 = 77;
|
||||
|
@@ -224,16 +224,18 @@ mod test {
|
||||
|
||||
// If current_ct and new_ct encrypt same values, then the proof verification should succeed
|
||||
let balance: u64 = 77;
|
||||
let current_ct = current.pk.encrypt(balance);
|
||||
let new_ct = new.pk.encrypt(balance);
|
||||
let current_ct = current.public.encrypt(balance);
|
||||
let new_ct = new.public.encrypt(balance);
|
||||
|
||||
let proof = UpdateAccountPkProof::new(balance, ¤t.sk, &new.sk, ¤t_ct, &new_ct);
|
||||
let proof =
|
||||
UpdateAccountPkProof::new(balance, ¤t.secret, &new.secret, ¤t_ct, &new_ct);
|
||||
assert!(proof.verify(¤t_ct, &new_ct).is_ok());
|
||||
|
||||
// If current_ct and new_ct encrypt different values, then the proof verification should fail
|
||||
let new_ct = new.pk.encrypt(55_u64);
|
||||
let new_ct = new.public.encrypt(55_u64);
|
||||
|
||||
let proof = UpdateAccountPkProof::new(balance, ¤t.sk, &new.sk, ¤t_ct, &new_ct);
|
||||
let proof =
|
||||
UpdateAccountPkProof::new(balance, ¤t.secret, &new.secret, ¤t_ct, &new_ct);
|
||||
assert!(proof.verify(¤t_ct, &new_ct).is_err());
|
||||
}
|
||||
|
||||
@@ -246,23 +248,23 @@ mod test {
|
||||
let balance: u64 = 0;
|
||||
let zeroed_ct_as_current_ct: ElGamalCiphertext =
|
||||
pod::ElGamalCiphertext::zeroed().try_into().unwrap();
|
||||
let new_ct: ElGamalCiphertext = new.pk.encrypt(balance);
|
||||
let new_ct: ElGamalCiphertext = new.public.encrypt(balance);
|
||||
let proof = UpdateAccountPkProof::new(
|
||||
balance,
|
||||
¤t.sk,
|
||||
&new.sk,
|
||||
¤t.secret,
|
||||
&new.secret,
|
||||
&zeroed_ct_as_current_ct,
|
||||
&new_ct,
|
||||
);
|
||||
assert!(proof.verify(&zeroed_ct_as_current_ct, &new_ct).is_ok());
|
||||
|
||||
let current_ct = current.pk.encrypt(balance);
|
||||
let current_ct = current.public.encrypt(balance);
|
||||
let zeroed_ct_as_new_ct: ElGamalCiphertext =
|
||||
pod::ElGamalCiphertext::zeroed().try_into().unwrap();
|
||||
let proof = UpdateAccountPkProof::new(
|
||||
balance,
|
||||
¤t.sk,
|
||||
&new.sk,
|
||||
¤t.secret,
|
||||
&new.secret,
|
||||
¤t_ct,
|
||||
&zeroed_ct_as_new_ct,
|
||||
);
|
||||
@@ -274,8 +276,8 @@ mod test {
|
||||
pod::ElGamalCiphertext::zeroed().try_into().unwrap();
|
||||
let proof = UpdateAccountPkProof::new(
|
||||
balance,
|
||||
¤t.sk,
|
||||
&new.sk,
|
||||
¤t.secret,
|
||||
&new.secret,
|
||||
&zeroed_ct_as_current_ct,
|
||||
&zeroed_ct_as_new_ct,
|
||||
);
|
||||
@@ -290,7 +292,7 @@ mod test {
|
||||
let new = ElGamalKeypair::default();
|
||||
|
||||
let balance = 0_u64;
|
||||
let balance_ciphertext = new.pk.encrypt(balance);
|
||||
let balance_ciphertext = new.public.encrypt(balance);
|
||||
|
||||
let zeroed_comm = Pedersen::with(0_u64, &PedersenOpening::default());
|
||||
let handle = balance_ciphertext.decrypt_handle;
|
||||
@@ -300,12 +302,12 @@ mod test {
|
||||
message_comm: zeroed_comm,
|
||||
decrypt_handle: handle,
|
||||
};
|
||||
let new_ct: ElGamalCiphertext = new.pk.encrypt(balance);
|
||||
let new_ct: ElGamalCiphertext = new.public.encrypt(balance);
|
||||
|
||||
let proof = UpdateAccountPkProof::new(
|
||||
balance,
|
||||
¤t.sk,
|
||||
&new.sk,
|
||||
¤t.secret,
|
||||
&new.secret,
|
||||
&zeroed_comm_ciphertext,
|
||||
&new_ct,
|
||||
);
|
||||
@@ -318,8 +320,8 @@ mod test {
|
||||
|
||||
let proof = UpdateAccountPkProof::new(
|
||||
balance,
|
||||
¤t.sk,
|
||||
&new.sk,
|
||||
¤t.secret,
|
||||
&new.secret,
|
||||
&zeroed_handle_ciphertext,
|
||||
&new_ct,
|
||||
);
|
||||
@@ -330,12 +332,12 @@ mod test {
|
||||
message_comm: zeroed_comm,
|
||||
decrypt_handle: handle,
|
||||
};
|
||||
let current_ct: ElGamalCiphertext = current.pk.encrypt(balance);
|
||||
let current_ct: ElGamalCiphertext = current.public.encrypt(balance);
|
||||
|
||||
let proof = UpdateAccountPkProof::new(
|
||||
balance,
|
||||
¤t.sk,
|
||||
&new.sk,
|
||||
¤t.secret,
|
||||
&new.secret,
|
||||
¤t_ct,
|
||||
&zeroed_comm_ciphertext,
|
||||
);
|
||||
@@ -348,8 +350,8 @@ mod test {
|
||||
|
||||
let proof = UpdateAccountPkProof::new(
|
||||
balance,
|
||||
¤t.sk,
|
||||
&new.sk,
|
||||
¤t.secret,
|
||||
&new.secret,
|
||||
¤t_ct,
|
||||
&zeroed_handle_ciphertext,
|
||||
);
|
||||
|
@@ -179,17 +179,17 @@ mod test {
|
||||
#[ignore]
|
||||
fn test_withdraw_correctness() {
|
||||
// generate and verify proof for the proper setting
|
||||
let ElGamalKeypair { pk, sk } = ElGamalKeypair::default();
|
||||
let ElGamalKeypair { public, secret } = ElGamalKeypair::default();
|
||||
|
||||
let current_balance: u64 = 77;
|
||||
let current_balance_ct = pk.encrypt(current_balance);
|
||||
let current_balance_ct = public.encrypt(current_balance);
|
||||
|
||||
let withdraw_amount: u64 = 55;
|
||||
|
||||
let data = WithdrawData::new(
|
||||
withdraw_amount,
|
||||
pk,
|
||||
&sk,
|
||||
public,
|
||||
&secret,
|
||||
current_balance,
|
||||
current_balance_ct,
|
||||
);
|
||||
@@ -197,7 +197,13 @@ mod test {
|
||||
|
||||
// generate and verify proof with wrong balance
|
||||
let wrong_balance: u64 = 99;
|
||||
let data = WithdrawData::new(withdraw_amount, pk, &sk, wrong_balance, current_balance_ct);
|
||||
let data = WithdrawData::new(
|
||||
withdraw_amount,
|
||||
public,
|
||||
&secret,
|
||||
wrong_balance,
|
||||
current_balance_ct,
|
||||
);
|
||||
assert!(data.verify().is_err());
|
||||
|
||||
// TODO: test for ciphertexts that encrypt numbers outside the 0, 2^64 range
|
||||
|
Reference in New Issue
Block a user