def aml_on_ledger(looper, sdk_pool_handle, sdk_wallet_trustee):
    ver = random.randint(1, 10000)
    aml_req_future = build_acceptance_mechanisms_request(sdk_wallet_trustee[1], "{\"test\":\"aml\"}", str(ver), None)
    aml_req = looper.loop.run_until_complete(aml_req_future)
    aml_resp_future = sign_and_submit_request(sdk_pool_handle, sdk_wallet_trustee[0], sdk_wallet_trustee[1], aml_req)
    aml_resp = looper.loop.run_until_complete(aml_resp_future)
    aml = json.loads(aml_resp)
    assert aml["result"]
    assert aml["result"][TXN_METADATA]
    assert aml["result"][TXN_METADATA][TXN_METADATA_SEQ_NO]
    return aml["result"][TXN_METADATA][TXN_METADATA_SEQ_NO]
def attrib_on_ledger(looper, sdk_pool_handle, sdk_wallet_steward, sdk_client_wallet):
    attrib_req_future = build_attrib_request(sdk_wallet_steward[1], sdk_client_wallet[1], None, "{}", None)
    attrib_req = looper.loop.run_until_complete(attrib_req_future)
    attrib_resp_future = sign_and_submit_request(sdk_pool_handle, sdk_wallet_steward[0], sdk_wallet_steward[1], attrib_req)
    attrib_resp = looper.loop.run_until_complete(attrib_resp_future)
    attrib = json.loads(attrib_resp)
    print(attrib)
    assert attrib["result"]
    assert attrib["result"][TXN_METADATA]
    assert attrib["result"][TXN_METADATA][TXN_METADATA_SEQ_NO]
    return attrib["result"][TXN_METADATA][TXN_METADATA_SEQ_NO]
def nym_on_ledger(looper, sdk_pool_handle, sdk_wallet_client, sdk_wallet_steward, seed=None):
    did_future = create_and_store_my_did(sdk_wallet_client[0], json.dumps({"seed": seed}) if seed else "{}")
    did, vk = looper.loop.run_until_complete(did_future)
    nym_req_future = build_nym_request(sdk_wallet_steward[1], did, vk, None, None)
    nym_req = looper.loop.run_until_complete(nym_req_future)
    nym_resp_future = sign_and_submit_request(sdk_pool_handle, sdk_wallet_steward[0], sdk_wallet_steward[1], nym_req)
    nym_resp = looper.loop.run_until_complete(nym_resp_future)
    nym = json.loads(nym_resp)
    assert nym["result"]
    assert nym["result"][TXN_METADATA]
    assert nym["result"][TXN_METADATA][TXN_METADATA_SEQ_NO]
    return nym["result"][TXN_METADATA][TXN_METADATA_SEQ_NO]
예제 #4
0
def test_get_txn_after_bls_key_rotation(looper, txnPoolNodeSet,
                                        sdk_wallet_stewards,
                                        sdk_wallet_trustee,
                                        sdk_wallet_client,
                                        sdk_pool_handle):
    check_update_bls_key(node_num=0, saved_multi_sigs_count=4,
                         looper=looper, txnPoolNodeSet=txnPoolNodeSet,
                         sdk_wallet_stewards=sdk_wallet_stewards,
                         sdk_wallet_client=sdk_wallet_client,
                         sdk_pool_handle=sdk_pool_handle,
                         pool_refresh=False)
    check_update_bls_key(node_num=1, saved_multi_sigs_count=4,
                         looper=looper, txnPoolNodeSet=txnPoolNodeSet,
                         sdk_wallet_stewards=sdk_wallet_stewards,
                         sdk_wallet_client=sdk_wallet_client,
                         sdk_pool_handle=sdk_pool_handle,
                         pool_refresh=False)
    check_update_bls_key(node_num=2, saved_multi_sigs_count=4,
                         looper=looper, txnPoolNodeSet=txnPoolNodeSet,
                         sdk_wallet_stewards=sdk_wallet_stewards,
                         sdk_wallet_client=sdk_wallet_client,
                         sdk_pool_handle=sdk_pool_handle,
                         pool_refresh=False)
    check_update_bls_key(node_num=3, saved_multi_sigs_count=4,
                         looper=looper, txnPoolNodeSet=txnPoolNodeSet,
                         sdk_wallet_stewards=sdk_wallet_stewards,
                         sdk_wallet_client=sdk_wallet_client,
                         sdk_pool_handle=sdk_pool_handle,
                         pool_refresh=False)

    # Stop receiving of commits in a circle, so all nodes will have different sets of multi signatures
    with delay_rules_without_processing(txnPoolNodeSet[0].nodeIbStasher, cDelay(delay=1200, sender_filter=txnPoolNodeSet[3].name)):
        with delay_rules_without_processing(txnPoolNodeSet[1].nodeIbStasher, cDelay(delay=1200, sender_filter=txnPoolNodeSet[0].name)):
            with delay_rules_without_processing(txnPoolNodeSet[2].nodeIbStasher, cDelay(delay=1200, sender_filter=txnPoolNodeSet[1].name)):
                with delay_rules_without_processing(txnPoolNodeSet[3].nodeIbStasher, cDelay(delay=1200, sender_filter=txnPoolNodeSet[2].name)):
                    did_future = create_and_store_my_did(sdk_wallet_client[0], "{}")
                    did, verkey = looper.loop.run_until_complete(did_future)
                    nym_request_future = ledger.build_nym_request(sdk_wallet_trustee[1], did, verkey, None, None)
                    nym_request = looper.loop.run_until_complete(nym_request_future)
                    nym_response_future = ledger.sign_and_submit_request(sdk_pool_handle, sdk_wallet_trustee[0], sdk_wallet_trustee[1], nym_request)
                    looper.loop.run_until_complete(nym_response_future)

                    get_txn_request_future = ledger.build_get_txn_request(sdk_wallet_client[1], "DOMAIN", 1)
                    get_txn_request = looper.loop.run_until_complete(get_txn_request_future)
                    get_txn_response_future = ledger.submit_request(sdk_pool_handle, get_txn_request)
                    looper.loop.run_until_complete(get_txn_response_future)
예제 #5
0
def test_sigining_without_identifier(looper, txnPoolNodeSet, sdk_pool_handle,
                                     sdk_steward_seed, sdk_wallet_handle):
    req = {TXN_PAYLOAD: {TXN_PAYLOAD_DATA: {"aaa": "BBB"}}}

    steward_did_future = create_and_store_my_did(
        sdk_wallet_handle, json.dumps({"seed": sdk_steward_seed}))
    steward_did, _ = looper.loop.run_until_complete(steward_did_future)

    did_future = create_and_store_my_did(sdk_wallet_handle, json.dumps({}))
    did, verkey = looper.loop.run_until_complete(did_future)

    nym_future = build_nym_request(steward_did, did, verkey, None, None)
    nym = looper.loop.run_until_complete(nym_future)

    resp_future = sign_and_submit_request(sdk_pool_handle, sdk_wallet_handle,
                                          steward_did, nym)
    resp = looper.loop.run_until_complete(resp_future)

    req_future = multi_sign_request(sdk_wallet_handle, did, json.dumps(req))
    req = looper.loop.run_until_complete(req_future)
    req = json.loads(req)

    sigs = txnPoolNodeSet[0].init_core_authenticator().authenticate(req)
    assert sigs == [did]
예제 #6
0
파일: helper.py 프로젝트: r0qs/indy-plenum
def sdk_sign_and_submit_req(pool_handle, sdk_wallet, req):
    wallet_handle, sender_did = sdk_wallet
    return json.loads(req), asyncio.ensure_future(
        sign_and_submit_request(pool_handle, wallet_handle, sender_did, req))
예제 #7
0
파일: main.py 프로젝트: hadleym/DidAuth
async def main(pool_name, pool_genesis_txn_path, seed_trustee1):
    # 1. Create ledger config from genesis txn file
    pool_config = json.dumps({"genesis_txn": str(pool_genesis_txn_path)})
    try:
        await pool.create_pool_ledger_config(pool_name, pool_config)
    except IndyError:
        pass

    # 2. Open pool ledger
    pool_handle = await pool.open_pool_ledger(pool_name, None)

    # 3. Create My Wallet and Get Wallet Handle
    try:
        await wallet.create_wallet(pool_name, 'my_wallet', None, None, None)
    except IndyError:
        pass
    my_wallet_handle = await wallet.open_wallet('my_wallet', None, None)

    # 4. Create Their Wallet and Get Wallet Handle
    try:
        await wallet.create_wallet(pool_name, 'their_wallet', None, None, None)
    except IndyError:
        pass
    their_wallet_handle = await wallet.open_wallet('their_wallet', None, None)

    # 5. Create My DID
    (my_did, my_verkey) = await signus.create_and_store_my_did(my_wallet_handle, "{}")

    # 6. Create Their DID from Trustee1 seed
    (their_did, their_verkey) = await signus.create_and_store_my_did(their_wallet_handle,
                                                                  json.dumps({"seed": seed_trustee1}))

    print_did_verkey(my_did, my_verkey, 'my')
    print_did_verkey(their_did, their_verkey, 'their')
    # 7. Store Their DID

    await signus.store_their_did(my_wallet_handle, json.dumps({'did': their_did, 'verkey': their_verkey}))
    print('Their_did: %s' % their_did)

    # 8. Prepare and send NYM transaction
    nym_txn_req = await ledger.build_nym_request(their_did, my_did, None, None, None)
    ledger.sign_and_submit_request(pool_handle, their_wallet_handle, their_did, nym_txn_req)

    # 9. Prepare and send GET_NYM request
    get_nym_txn_req = await ledger.build_get_nym_request(their_did, 'fxae8eMr1w1tTW4GvqFhN')
    get_nym_txn_resp = await ledger.submit_request(pool_handle, get_nym_txn_req)
    get_nym_txn_resp = json.loads(get_nym_txn_resp)
    print(get_nym_txn_resp)
    assert get_nym_txn_resp['dest'] == 'fxae8eMr1w1tTW4GvqFhN'

    set_attr_request = await signus.set_endpoint_for_did(their_wallet_handle, their_did, '1.2.3', their_verkey)
    set_attr_response = await ledger.submit_request(pool_handle, set_attr_request)
    print(set_attr_response)

    # get_endpoint_request = await ledger.build_get_attrib_request(their_did, my_did, 'endpoint')
    # get_endpoint_response =  await ledger.submit_request(pool_handle, get_endpoint_request)
    # print(get_endpoint_response)

    # metadata_request  = ledger.build_get_attrib_request(their_did, my_did)
    # metadata_response = await ledger.submit_request(pool_handle, metadata_request)
    # print(metadata_response)


    print(get_nym_txn_resp)

    assert get_nym_txn_resp['result']['dest'] == my_did

    # 10. Close wallets and pool
    await wallet.close_wallet(their_wallet_handle)
    await wallet.close_wallet(my_wallet_handle)
    await pool.close_pool_ledger(pool_handle)
예제 #8
0
def sdk_sign_and_submit_req(pool_handle, sdk_wallet, req):
    wallet_handle, sender_did = sdk_wallet
    return json.loads(req), asyncio.ensure_future(
        sign_and_submit_request(pool_handle, wallet_handle, sender_did, req))