def test_check_valid_ip_host(params, tconf): _, _, client_defs, trustee_def, nodeParamsFile = params valid = [ '34.200.79.65,52.38.24.189', 'ec2-54-173-9-185.compute-1.amazonaws.com,ec2-52-38-24-189.compute-1.amazonaws.com', 'ec2-54-173-9-185.compute-1.amazonaws.com,52.38.24.189,34.200.79.65', '52.38.24.189,ec2-54-173-9-185.compute-1.amazonaws.com,34.200.79.65', 'ledger.net,ledger.net' ] invalid = [ '34.200.79()3.65,52.38.24.189', '52.38.24.189,ec2-54-173$-9-185.compute-1.amazonaws.com,34.200.79.65', '52.38.24.189,ec2-54-173-9-185.com$pute-1.amazonaws.com,34.200.79.65', '52.38.24.189,ec2-54-173-9-185.com&pute-1.amazonaws.com,34.200.79.65', '52.38.24.189,ec2-54-173-9-185.com*pute-1.amazonaws.com,34.200.79.65', ] for v in valid: assert v.split(',') == TestNetworkSetup._bootstrap_args_type_ips_hosts(v) steward_defs, node_defs = TestNetworkSetup.gen_defs( ips=None, nodeCount=2, starting_port=portsStart) TestNetworkSetup.bootstrapTestNodesCore( config=tconf, envName="test", appendToLedgers=False, domainTxnFieldOrder=getTxnOrderedFields(), trustee_def=trustee_def, steward_defs=steward_defs, node_defs=node_defs, client_defs=client_defs, localNodes=1, nodeParamsFileName=nodeParamsFile) for v in invalid: with pytest.raises(ArgumentTypeError): TestNetworkSetup._bootstrap_args_type_ips_hosts(v)
def verifyMerkleProof(*replies: Tuple[Reply]) -> bool: """ Verifies the correctness of the merkle proof provided in the reply from the node. Returns True if verified to be correct, throws an exception otherwise. :param replies: One or more replies for which Merkle Proofs have to be verified :raises ProofError: The proof is invalid :return: True """ verifier = MerkleVerifier() fields = getTxnOrderedFields() serializer = CompactSerializer(fields=fields) for r in replies: seqNo = r[f.RESULT.nm][F.seqNo.name] rootHash = base64.b64decode( r[f.RESULT.nm][F.rootHash.name].encode()) auditPath = [ base64.b64decode(a.encode()) for a in r[f.RESULT.nm][F.auditPath.name] ] filtered = ( (k, v) for (k, v) in r[f.RESULT.nm].iteritems() if k not in [F.auditPath.name, F.seqNo.name, F.rootHash.name]) result = serializer.serialize(dict(filtered)) verifier.verify_leaf_inclusion( result, seqNo - 1, auditPath, STH(tree_size=seqNo, sha256_root_hash=rootHash)) return True
def verifyMerkleProof(*replies: Tuple[Reply]) -> bool: """ Verifies the correctness of the merkle proof provided in the reply from the node. Returns True if verified to be correct, throws an exception otherwise. :param replies: One or more replies for which Merkle Proofs have to be verified :raises ProofError: The proof is invalid :return: True """ verifier = MerkleVerifier() fields = getTxnOrderedFields() serializer = CompactSerializer(fields=fields) for r in replies: seqNo = r[f.RESULT.nm][F.seqNo.name] rootHash = base64.b64decode( r[f.RESULT.nm][F.rootHash.name].encode()) auditPath = [base64.b64decode( a.encode()) for a in r[f.RESULT.nm][F.auditPath.name]] filtered = ((k, v) for (k, v) in r[f.RESULT.nm].iteritems() if k not in [F.auditPath.name, F.seqNo.name, F.rootHash.name]) result = serializer.serialize(dict(filtered)) verifier.verify_leaf_inclusion(result, seqNo - 1, auditPath, STH(tree_size=seqNo, sha256_root_hash=rootHash)) return True
def test_check_valid_ip_host(params, tdir, tconf): _, _, client_defs, trustee_def, nodeParamsFile = params valid = [ '34.200.79.65,52.38.24.189', 'ec2-54-173-9-185.compute-1.amazonaws.com,ec2-52-38-24-189.compute-1.amazonaws.com', 'ec2-54-173-9-185.compute-1.amazonaws.com,52.38.24.189,34.200.79.65', '52.38.24.189,ec2-54-173-9-185.compute-1.amazonaws.com,34.200.79.65', 'ledger.net,ledger.net' ] invalid = [ '34.200.79()3.65,52.38.24.189', '52.38.24.189,ec2-54-173$-9-185.compute-1.amazonaws.com,34.200.79.65', '52.38.24.189,ec2-54-173-9-185.com$pute-1.amazonaws.com,34.200.79.65', '52.38.24.189,ec2-54-173-9-185.com&pute-1.amazonaws.com,34.200.79.65', '52.38.24.189,ec2-54-173-9-185.com*pute-1.amazonaws.com,34.200.79.65', ] for v in valid: assert v.split(',') == TestNetworkSetup._bootstrap_args_type_ips_hosts(v) steward_defs, node_defs = TestNetworkSetup.gen_defs( ips=None, nodeCount=2, starting_port=portsStart) TestNetworkSetup.bootstrapTestNodesCore( config=tconf, network="test", appendToLedgers=False, domainTxnFieldOrder=getTxnOrderedFields(), trustee_def=trustee_def, steward_defs=steward_defs, node_defs=node_defs, client_defs=client_defs, localNodes=1, nodeParamsFileName=nodeParamsFile, chroot=tdir) for v in invalid: with pytest.raises(ArgumentTypeError): TestNetworkSetup._bootstrap_args_type_ips_hosts(v)
def bootstrap(params, tdir, tconf): steward_defs, node_defs, client_defs, trustee_def, nodeParamsFile = params TestNetworkSetup.bootstrapTestNodesCore( config=tconf, network="test", appendToLedgers=False, domainTxnFieldOrder=getTxnOrderedFields(), trustee_def=trustee_def, steward_defs=steward_defs, node_defs=node_defs, client_defs=client_defs, localNodes=1, nodeParamsFileName=nodeParamsFile, chroot=tdir)
def testBootstrapTestNode(tdir, tconf): # TODO: Need to add some asserts TestNetworkSetup.bootstrapTestNodesCore( tdir, tconf.poolTransactionsFile, tconf.domainTransactionsFile, getTxnOrderedFields(), ips=None, nodeCount=4, clientCount=1, nodeNum=1, startingPort=portsStart)
def testBootstrapTestNode(params, tconf): # TODO: Need to add some asserts steward_defs, node_defs, client_defs, trustee_def, nodeParamsFile = params TestNetworkSetup.bootstrapTestNodesCore( config=tconf, envName="test", appendToLedgers=False, domainTxnFieldOrder=getTxnOrderedFields(), trustee_def=trustee_def, steward_defs=steward_defs, node_defs=node_defs, client_defs=client_defs, localNodes=1, nodeParamsFileName=nodeParamsFile)
def testBootstrapTestNode(tdir, conf): # TODO: Need to add some asserts TestNetworkSetup.bootstrapTestNodesCore(tdir, conf.poolTransactionsFile, conf.domainTransactionsFile, getTxnOrderedFields(), ips=None, nodeCount=4, clientCount=1, nodeNum=1, startingPort=portsStart)
def testBootstrapTestNode(tconf): # TODO: Need to add some asserts TestNetworkSetup.bootstrapTestNodesCore( config=tconf, envName="test", appendToLedgers=False, domainTxnFieldOrder=getTxnOrderedFields(), ips=None, nodeCount=4, clientCount=1, nodeNum=1, startingPort=portsStart)
def testBootstrapTestNode(tconf): # TODO: Need to add some asserts steward_defs, node_defs = TestNetworkSetup.gen_defs( ips=None, nodeCount=4, starting_port=portsStart) client_defs = TestNetworkSetup.gen_client_defs(clientCount=1) trustee_def = TestNetworkSetup.gen_trustee_def(1) nodeParamsFile = randomString() TestNetworkSetup.bootstrapTestNodesCore( config=tconf, envName="test", appendToLedgers=False, domainTxnFieldOrder=getTxnOrderedFields(), trustee_def=trustee_def, steward_defs=steward_defs, node_defs=node_defs, client_defs=client_defs, localNodes=1, nodeParamsFileName=nodeParamsFile)
def domainTxnOrderedFields(): return getTxnOrderedFields()
def txnFieldOrdering(self): fields = getTxnOrderedFields() return updateFieldsWithSeqNo(fields)