Пример #1
0
 def test_schnorr_proofs_invalid_public_key(self, keypair: ElGamalKeyPair,
                                            nonce: ElementModQ,
                                            other: ElementModP) -> None:
     proof = make_schnorr_proof(keypair, nonce)
     assume(other != proof.k)
     proof2 = SchnorrProof(other, proof.h, proof.u)
     self.assertFalse(proof2.is_valid())
Пример #2
0
 def test_schnorr_proofs_bounds_checking(self, keypair: ElGamalKeyPair,
                                         nonce: ElementModQ) -> None:
     proof = make_schnorr_proof(keypair, nonce)
     proof2 = SchnorrProof(ZERO_MOD_P, proof.h, proof.u)
     proof3 = SchnorrProof(int_to_p_unchecked(P), proof.h, proof.u)
     self.assertFalse(proof2.is_valid())
     self.assertFalse(proof3.is_valid())
Пример #3
0
 def test_schnorr_proofs_invalid_public_key(self, keypair: ElGamalKeyPair,
                                            nonce: ElementModQ,
                                            other: ElementModP) -> None:
     proof = make_schnorr_proof(keypair, nonce)
     assume(other != proof.public_key)
     proof2 = SchnorrProof(other, proof.commitment, proof.challenge,
                           proof.response)
     self.assertFalse(proof2.is_valid())
 def test_schnorr_proofs_invalid_h(
     self, keypair: ElGamalKeyPair, nonce: ElementModQ, other: ElementModP
 ) -> None:
     proof = make_schnorr_proof(keypair, nonce)
     (k, h, u) = proof
     assume(other != h)
     proof_bad = proof._replace(h=other)
     self.assertFalse(proof_bad.is_valid())
 def test_schnorr_proofs_invalid_u(
     self, keypair: ElGamalKeyPair, nonce: ElementModQ, other: ElementModQ
 ) -> None:
     proof = make_schnorr_proof(keypair, nonce)
     (k, h, u) = proof
     assume(other != u)
     proof2 = SchnorrProof(k, h, other)
     self.assertFalse(proof2.is_valid())
Пример #6
0
 def test_schnorr_proofs_valid(self, keypair: ElGamalKeyPair,
                               nonce: ElementModQ) -> None:
     proof = make_schnorr_proof(keypair, nonce)
     self.assertTrue(proof.is_valid())
Пример #7
0
 def test_schnorr_proofs_simple(self) -> None:
     # doesn't get any simpler than this
     keypair = get_optional(elgamal_keypair_from_secret(TWO_MOD_Q))
     nonce = ONE_MOD_Q
     proof = make_schnorr_proof(keypair, nonce)
     self.assertTrue(proof.is_valid())