Пример #1
0
    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()
Пример #2
0
    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)