Example #1
0
 def test_proof_single_false(self):
     tree = MerkleTree()
     tree.add_leaf('test', True)
     tree.make_tree()
     proof = tree.get_proof(1)
     self.assertFalse(
         tree.validate_proof(proof, sha256('test9'),
                             tree.get_merkle_root()))
Example #2
0
 def test_proof_single_true(self):
     tree = MerkleTree()
     tree.add_leaf('test', True)
     tree.make_tree()
     proof = tree.get_proof(0)
     target = sha256('test')
     self.assertTrue(
         tree.validate_proof(proof, target, tree.get_merkle_root()))
Example #3
0
    def test_validate_bad_proof_2_leaves(self):
        tree = MerkleTree()
        tree.add_leaf(self.bLeft)
        tree.add_leaf(self.bRight)
        tree.make_tree()
        proof = tree.get_proof(1)
        isValid = tree.validate_proof(
            proof, self.bRight,
            'a292780cc748697cb499fdcc8cb89d835609f11e502281dfe3f6690b1cc23dcb')

        self.assertFalse(isValid, 'proof should be invalid')
Example #4
0
    def test_proof_true(self):
        tree = MerkleTree()

        tree.add_leaf('test', True)
        tree.add_leaf('test2', True)
        tree.add_leaf('test3', True)
        tree.make_tree()

        proof = tree.get_proof(0)
        self.assertTrue(
            tree.validate_proof(proof, sha256('test'), tree.get_merkle_root()))
Example #5
0
    def test_proof_false(self):
        tree = MerkleTree()

        tree.add_leaf('test1', True)
        tree.add_leaf('test2', True)
        tree.add_leaf('test3', True)
        tree.make_tree()

        proof = tree.get_proof(4)
        result = tree.validate_proof(proof, sha256('test'),
                                     tree.get_merkle_root())
        self.assertFalse(result)
Example #6
0
    def test_validate_good_proof_5_leaves_B(self):
        tree = MerkleTree()
        tree.add_leaves([
            'ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb',
            '3e23e8160039594a33894f6564e1b1348bbd7a0088d42c4acb73eeaed59c009d',
            '2e7d2c03a9507ae265ecf5b5356885a53393a2029d241394997265a1a25aefc6',
            '18ac3e7343f016890c510e93f935261169d9e3f565436429830faf0934f4f8e4',
            '3f79bb7b435b05321651daefd374cdc681dc06faa65e374e38337b88ca046dea'
        ])
        tree.make_tree()
        proof = tree.get_proof(1)
        isValid = tree.validate_proof(
            proof,
            '3e23e8160039594a33894f6564e1b1348bbd7a0088d42c4acb73eeaed59c009d',
            'd71f8983ad4ee170f8129f1ebcdd7440be7798d8e1c80420bf11f1eced610dba')

        self.assertTrue(isValid, 'proof should be valid')