Beispiel #1
0
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)
Beispiel #2
0
    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
Beispiel #3
0
    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)
Beispiel #6
0
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)
Beispiel #8
0
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)
Beispiel #12
0
def domainTxnOrderedFields():
    return getTxnOrderedFields()
Beispiel #13
0
 def txnFieldOrdering(self):
     fields = getTxnOrderedFields()
     return updateFieldsWithSeqNo(fields)
 def txnFieldOrdering(self):
     fields = getTxnOrderedFields()
     return updateFieldsWithSeqNo(fields)
Beispiel #15
0
def domainTxnOrderedFields():
    return getTxnOrderedFields()