def test_publish_election_backup_challenge(self): # Arrange guardian = Guardian( SENDER_GUARDIAN_ID, SENDER_SEQUENCE_ORDER, NUMBER_OF_GUARDIANS, QUORUM ) recipient_guardian = Guardian( RECIPIENT_GUARDIAN_ID, RECIPIENT_SEQUENCE_ORDER, NUMBER_OF_GUARDIANS, QUORUM, ) guardian.save_auxiliary_public_key( recipient_guardian.share_auxiliary_public_key() ) guardian.generate_election_partial_key_backups(identity_auxiliary_encrypt) # Act challenge = guardian.publish_election_backup_challenge(RECIPIENT_GUARDIAN_ID) # Assert self.assertIsNotNone(challenge) self.assertIsNotNone(challenge.value) self.assertEqual(challenge.owner_id, SENDER_GUARDIAN_ID) self.assertEqual(challenge.designated_id, RECIPIENT_GUARDIAN_ID) self.assertEqual(len(challenge.coefficient_commitments), QUORUM) self.assertEqual(len(challenge.coefficient_proofs), QUORUM) for proof in challenge.coefficient_proofs: proof.is_valid()
def test_verify_election_partial_key_challenge(self): # Arrange guardian = Guardian( SENDER_GUARDIAN_ID, SENDER_SEQUENCE_ORDER, NUMBER_OF_GUARDIANS, QUORUM ) recipient_guardian = Guardian( RECIPIENT_GUARDIAN_ID, RECIPIENT_SEQUENCE_ORDER, NUMBER_OF_GUARDIANS, QUORUM, ) alternate_guardian = Guardian( ALTERNATE_VERIFIER_GUARDIAN_ID, ALTERNATE_VERIFIER_SEQUENCE_ORDER, NUMBER_OF_GUARDIANS, QUORUM, ) guardian.save_auxiliary_public_key( recipient_guardian.share_auxiliary_public_key() ) guardian.generate_election_partial_key_backups(identity_auxiliary_encrypt) challenge = guardian.publish_election_backup_challenge(RECIPIENT_GUARDIAN_ID) # Act verification = alternate_guardian.verify_election_partial_key_challenge( challenge ) # Assert self.assertIsNotNone(verification) self.assertEqual(verification.owner_id, SENDER_GUARDIAN_ID) self.assertEqual(verification.designated_id, RECIPIENT_GUARDIAN_ID) self.assertEqual(verification.verifier_id, ALTERNATE_VERIFIER_GUARDIAN_ID) self.assertTrue(verification.verified)