def test_generate_election_key_pair(self): # Arrange guardian = Guardian(SENDER_GUARDIAN_ID, SENDER_SEQUENCE_ORDER, NUMBER_OF_GUARDIANS, QUORUM) first_public_key = guardian.share_election_public_key() # Act guardian.generate_election_key_pair() second_public_key = guardian.share_election_public_key() # Assert self.assertIsNotNone(second_public_key) self.assertIsNotNone(second_public_key.key) self.assertNotEqual(first_public_key.key, second_public_key.key)
def test_publish_joint_key(self): # Arrange # Round 1 guardian = Guardian( SENDER_GUARDIAN_ID, SENDER_SEQUENCE_ORDER, NUMBER_OF_GUARDIANS, QUORUM ) other_guardian = Guardian( RECIPIENT_GUARDIAN_ID, RECIPIENT_SEQUENCE_ORDER, NUMBER_OF_GUARDIANS, QUORUM ) guardian.save_guardian_public_keys(other_guardian.share_public_keys()) other_guardian.save_guardian_public_keys(guardian.share_public_keys()) # Round 2 guardian.generate_election_partial_key_backups(identity_auxiliary_encrypt) key_backup = guardian.share_election_partial_key_backup(RECIPIENT_GUARDIAN_ID) other_guardian.save_election_partial_key_backup(key_backup) verification = other_guardian.verify_election_partial_key_backup( SENDER_GUARDIAN_ID, identity_auxiliary_decrypt ) # Act joint_key = guardian.publish_joint_key() # Assert self.assertIsNone(joint_key) # Act guardian.save_election_public_key(other_guardian.share_election_public_key()) joint_key = guardian.publish_joint_key() # Assert self.assertIsNone(joint_key) # Act guardian.save_election_partial_key_verification(verification) joint_key = guardian.publish_joint_key() # Assert self.assertIsNotNone(joint_key) self.assertNotEqual(joint_key, guardian.share_election_public_key().key)
def test_share_election_public_key(self): # Arrange guardian = Guardian(SENDER_GUARDIAN_ID, SENDER_SEQUENCE_ORDER, NUMBER_OF_GUARDIANS, QUORUM) # Act public_key = guardian.share_election_public_key() # Assert self.assertIsNotNone(public_key) self.assertIsNotNone(public_key.key) self.assertEqual(public_key.owner_id, SENDER_GUARDIAN_ID) self.assertTrue(public_key.proof.is_valid())
def test_save_election_public_key(self): # Arrange guardian = Guardian(SENDER_GUARDIAN_ID, SENDER_SEQUENCE_ORDER, NUMBER_OF_GUARDIANS, QUORUM) other_guardian = Guardian(RECIPIENT_GUARDIAN_ID, RECIPIENT_SEQUENCE_ORDER, NUMBER_OF_GUARDIANS, QUORUM) public_key = other_guardian.share_election_public_key() # Act guardian.save_election_public_key(public_key) # Assert self.assertTrue(guardian.all_election_public_keys_received())