def test_client_cant_send_schema(looper, txnPoolNodeSet, sdk_wallet_client,
                                 sdk_wallet_trust_anchor, sdk_pool_handle):
    # Trust anchor can create schema in any case
    _, identifier = sdk_wallet_trust_anchor
    _, schema_json = looper.loop.run_until_complete(
        issuer_create_schema(identifier, "another_name", "2.0",
                             json.dumps(["first", "last"])))
    request = looper.loop.run_until_complete(
        build_schema_request(identifier, schema_json))
    sdk_get_and_check_replies(looper, [
        sdk_sign_and_submit_req(sdk_pool_handle, sdk_wallet_trust_anchor,
                                request)
    ])

    # Client cant create schema if ANYONE_CAN_WRITE flag set to True
    _, identifier = sdk_wallet_client
    _, schema_json = looper.loop.run_until_complete(
        issuer_create_schema(identifier, "another_name", "2.0",
                             json.dumps(["first", "last"])))
    request = looper.loop.run_until_complete(
        build_schema_request(identifier, schema_json))
    sdk_get_bad_response(
        looper,
        [sdk_sign_and_submit_req(sdk_pool_handle, sdk_wallet_client, request)],
        RequestRejectedException, 'None role cannot add schema')
Esempio n. 2
0
def test_client_can_send_schema(looper, txnPoolNodeSet, sdk_wallet_client,
                                sdk_wallet_trust_anchor, sdk_pool_handle,
                                tconf):
    # Trust anchor can create schema in any case
    _, identifier = sdk_wallet_trust_anchor
    _, schema_json = looper.loop.run_until_complete(
        issuer_create_schema(identifier, "name", "1.0",
                             json.dumps(["first", "last"])))
    request = looper.loop.run_until_complete(
        build_schema_request(identifier, schema_json))
    sdk_get_and_check_replies(looper, [
        sdk_sign_and_submit_req(sdk_pool_handle, sdk_wallet_trust_anchor,
                                request)
    ])

    # Client can create schema if WRITES_REQUIRE_TRUST_ANCHOR flag set to False
    _, identifier = sdk_wallet_client
    _, schema_json = looper.loop.run_until_complete(
        issuer_create_schema(identifier, "name", "1.0",
                             json.dumps(["first", "last"])))
    request = looper.loop.run_until_complete(
        build_schema_request(identifier, schema_json))
    sdk_get_and_check_replies(
        looper,
        [sdk_sign_and_submit_req(sdk_pool_handle, sdk_wallet_client, request)])
Esempio n. 3
0
 def sdk_build_schema(self, identifier=None, sdk_wallet=None):
     sdk_wallet = sdk_wallet or self._wallet_steward
     identifier = identifier or sdk_wallet[1]
     _, schema_json = self._looper.loop.run_until_complete(
         issuer_create_schema(identifier, "name", "1.0", json.dumps(["first", "last"])))
     request = self._looper.loop.run_until_complete(build_schema_request(identifier, schema_json))
     return request
def test_send_claim_def_schema_and_claim_def_in_one_batch(
        looper, tconf, sdk_pool_handle, nodeSet, sdk_wallet_trustee):
    with max_3pc_batch_limits(tconf, size=2) as tconf:
        initial_seq_no = nodeSet[0].domainLedger.size
        wallet_handle, identifier = sdk_wallet_trustee

        # send SCHEMA
        _, schema_json = looper.loop.run_until_complete(
            issuer_create_schema(identifier, "name2", "2.0",
                                 json.dumps(["first", "last"])))
        schema_req_json = looper.loop.run_until_complete(
            build_schema_request(identifier, schema_json))
        schema_req = sdk_sign_and_submit_req(sdk_pool_handle,
                                             sdk_wallet_trustee,
                                             schema_req_json)

        # send CLAIM_DEF
        _, claim_def_json = looper.loop.run_until_complete(
            issuer_create_and_store_credential_def(
                wallet_handle, identifier, schema_json, "some_tag", "CL",
                json.dumps({"support_revocation": True})))
        claim_def_req_json = looper.loop.run_until_complete(
            build_cred_def_request(identifier, claim_def_json))
        claim_def_req_json = modify_field(claim_def_req_json,
                                          initial_seq_no + 1, OPERATION, REF)
        claim_def_req = sdk_sign_and_submit_req(sdk_pool_handle,
                                                sdk_wallet_trustee,
                                                claim_def_req_json)

        # check both are written
        sdk_get_and_check_replies(looper, [schema_req, claim_def_req])
 def schema(self, schema_data, sdk_wallet=None):
     sdk_wallet_did = self._find_wallet_did(sdk_wallet)
     schema_request_future = build_schema_request(sdk_wallet_did,
                                                  schema_data)
     schema_request = self._looper.loop.run_until_complete(
         schema_request_future)
     request = self._sdk.sdk_json_to_request_object(
         json.loads(schema_request))
     request = self._sign_sdk(request, sdk_wallet=sdk_wallet)
     return request
def test_client_cant_send_schema(looper,
                                 txnPoolNodeSet,
                                 sdk_wallet_client,
                                 sdk_wallet_endorser,
                                 sdk_pool_handle):
    # Endorser can create schema
    _, identifier = sdk_wallet_endorser
    _, schema_json = looper.loop.run_until_complete(
        issuer_create_schema(identifier, "another_name", "2.0", json.dumps(["first", "last"])))
    request = looper.loop.run_until_complete(build_schema_request(identifier, schema_json))
    sdk_get_and_check_replies(looper, [sdk_sign_and_submit_req(sdk_pool_handle, sdk_wallet_endorser, request)])

    # Client cant create schema
    _, identifier = sdk_wallet_client
    _, schema_json = looper.loop.run_until_complete(
        issuer_create_schema(identifier, "another_name", "2.0", json.dumps(["first", "last"])))
    request = looper.loop.run_until_complete(build_schema_request(identifier, schema_json))
    sdk_get_bad_response(looper, [sdk_sign_and_submit_req(sdk_pool_handle, sdk_wallet_client, request)],
                         RequestRejectedException, 'Rule for this action is')
Esempio n. 7
0
def sdk_build_schema_request(looper,
                             sdk_wallet_client,
                             attributes=[],
                             name="",
                             version=""):
    _, identifier = sdk_wallet_client

    _, schema_json = looper.loop.run_until_complete(
        issuer_create_schema(identifier, name, version,
                             json.dumps(attributes)))

    return looper.loop.run_until_complete(
        build_schema_request(identifier, schema_json))
Esempio n. 8
0
def sdk_write_schema(looper, sdk_pool_handle, sdk_wallet_client, multi_attribute=[], name="", version=""):
    _, identifier = sdk_wallet_client

    if multi_attribute:
        _, schema_json = looper.loop.run_until_complete(
            issuer_create_schema(identifier, name, version, json.dumps(multi_attribute)))
    else:
        _, schema_json = looper.loop.run_until_complete(
            issuer_create_schema(identifier, "name", "1.0", json.dumps(["first", "last"])))

    request = looper.loop.run_until_complete(build_schema_request(identifier, schema_json))

    return schema_json, \
           sdk_get_reply(looper, sdk_sign_and_submit_req(sdk_pool_handle, sdk_wallet_client, request))[1]
Esempio n. 9
0
def req(request, looper, sdk_pool_handle, sdk_wallet_steward):
    wallet_handle, identifier = sdk_wallet_steward
    if request.param == "ATTRIB":
        raw = json.dumps({'answer': 42})
        request_json = looper.loop.run_until_complete(
            build_attrib_request(identifier,
                                 identifier,
                                 raw=raw,
                                 xhash=None,
                                 enc=None))
    elif request.param == "SCHEMA":
        _, schema_json = looper.loop.run_until_complete(
            issuer_create_schema(identifier, "name", "1.0",
                                 json.dumps(["first", "last"])))
        request_json = looper.loop.run_until_complete(
            build_schema_request(identifier, schema_json))
    elif request.param == "RS_SCHEMA":
        rs_schema = {'@id': "fakeId234e", '@type': "0od"}
        request_json = build_rs_schema_request(identifier, rs_schema,
                                               "ISO18023_Drivers_License",
                                               "1.1")
    elif request.param == "CLAIM_DEF":
        schema_json, _ = sdk_write_schema(looper, sdk_pool_handle,
                                          sdk_wallet_steward)
        schema_id = json.loads(schema_json)['id']

        request = looper.loop.run_until_complete(
            build_get_schema_request(identifier, schema_id))
        reply = sdk_get_reply(
            looper,
            sdk_sign_and_submit_req(sdk_pool_handle, sdk_wallet_steward,
                                    request))[1]
        _, schema_json = looper.loop.run_until_complete(
            parse_get_schema_response(json.dumps(reply)))

        _, definition_json = looper.loop.run_until_complete(
            issuer_create_and_store_credential_def(
                wallet_handle, identifier, schema_json, "some_tag", "CL",
                json.dumps({"support_revocation": True})))
        request_json = looper.loop.run_until_complete(
            build_cred_def_request(identifier, definition_json))
    elif request.param == "NYM":
        idr, verkey = createHalfKeyIdentifierAndAbbrevVerkey()
        request_json = looper.loop.run_until_complete(
            build_nym_request(identifier, idr, verkey, None, None))

    req_signed = looper.loop.run_until_complete(
        sign_request(wallet_handle, identifier, request_json))
    return Request(**json.loads(req_signed))
Esempio n. 10
0
def sdk_write_schema_and_check(looper,
                               sdk_pool_handle,
                               sdk_wallet_steward,
                               attributes=[],
                               name="",
                               version=""):
    _, identifier = sdk_wallet_steward

    _, schema_json = looper.loop.run_until_complete(
        issuer_create_schema(identifier, name, version,
                             json.dumps(attributes)))

    request = looper.loop.run_until_complete(
        build_schema_request(identifier, schema_json))
    req = sdk_sign_and_submit_req(sdk_pool_handle, sdk_wallet_steward, request)
    rep = sdk_get_and_check_replies(looper, [req])
    return rep