Esempio n. 1
0
def close_wallet(wallet_handle):
    try:
        run_coroutine(wallet.close_wallet(wallet_handle))
    except IndyError as err:
        if err.error_code == ErrorCode.WalletInvalidHandle:
            return
        raise Exception(err.message)
Esempio n. 2
0
def wallet(looper):
    wallet_name = randomString()

    create_wallet_future = create_wallet(json.dumps({"id": wallet_name}),
                                         json.dumps({"key": "1"}))
    looper.loop.run_until_complete(create_wallet_future)

    open_wallet_future = open_wallet(json.dumps({"id": wallet_name}),
                                     json.dumps({"key": "1"}))
    wallet_handle = looper.loop.run_until_complete(open_wallet_future)

    yield wallet_handle

    close_wallet_future = close_wallet(wallet_handle)
    looper.loop.run_until_complete(close_wallet_future)

    delete_wallet_future = delete_wallet(json.dumps({"id": wallet_name}),
                                         json.dumps({"key": "1"}))
    looper.loop.run_until_complete(delete_wallet_future)
Esempio n. 3
0
def wallet_handle(event_loop, xwallet, wallet_config, credentials,
                  wallet_handle_cleanup):
    logger = logging.getLogger(__name__)
    logger.debug(
        "wallet_handle: >>> xwallet: %r, wallet_config: %r, credentials: %r, wallet_handle_cleanup: %r",
        xwallet, wallet_config, credentials, wallet_handle_cleanup)

    logger.debug("wallet_handle: Opening wallet")
    wallet_handle = event_loop.run_until_complete(
        wallet.open_wallet(wallet_config, credentials))
    assert type(wallet_handle) is int

    logger.debug("wallet_handle: yield %r", wallet_handle)
    yield wallet_handle

    logger.debug("wallet_handle: Closing wallet")
    event_loop.run_until_complete(
        wallet.close_wallet(wallet_handle)) if wallet_handle_cleanup else None

    logger.debug("wallet_handle: <<<")
Esempio n. 4
0
def main():
    global conf
    global wallet_handle
    global pool_handle
    if len(sys.argv) != 2:
        print("Usage pds.py <configuration file>")
        sys.exit()
    with open(sys.argv[1]) as f:
        conf = json.load(f)
    httpd = HTTPServer(('', conf["port"]), PDSHandler)
    loop = asyncio.get_event_loop()
    wallet_handle = loop.run_until_complete(
        wallet.open_wallet(json.dumps(conf['wallet_config']),
                           json.dumps(conf['wallet_credentials'])))
    try:
        httpd.serve_forever()
    except KeyboardInterrupt:
        pass
    httpd.server_close()
    loop.run_until_complete(wallet.close_wallet(wallet_handle))
Esempio n. 5
0
def wallet_handle(event_loop, xwallet, wallet_config, credentials, wallet_handle_cleanup):
    logger = logging.getLogger(__name__)
    logger.debug(
        "wallet_handle: >>> xwallet: %r, wallet_config: %r, credentials: %r, wallet_handle_cleanup: %r",
        xwallet,
        wallet_config,
        credentials,
        wallet_handle_cleanup)

    logger.debug("wallet_handle: Opening wallet")
    wallet_handle = event_loop.run_until_complete(wallet.open_wallet(wallet_config, credentials))
    assert type(wallet_handle) is int

    logger.debug("wallet_handle: yield %r", wallet_handle)
    yield wallet_handle

    logger.debug("wallet_handle: Closing wallet")
    event_loop.run_until_complete(wallet.close_wallet(wallet_handle)) if wallet_handle_cleanup else None

    logger.debug("wallet_handle: <<<")
Esempio n. 6
0
def sdk_wallet_handle(looper, sdk_wallet_data):
    wallet_handle = looper.loop.run_until_complete(
        _gen_wallet_handler(sdk_wallet_data))
    yield wallet_handle
    looper.loop.run_until_complete(close_wallet(wallet_handle))
Esempio n. 7
0
def wallet_handle(wallet_created, wallet_name, event_loop):
    wallet_handle = event_loop.run_until_complete(
        wallet.open_wallet(wallet_name, None, None))
    yield wallet_handle
    event_loop.run_until_complete(wallet.close_wallet(wallet_handle))
Esempio n. 8
0
def wallet_handle(wallet_created, wallet_name, event_loop):
    wallet_handle = event_loop.run_until_complete(
        wallet.open_wallet(wallet_name, None, None))
    yield wallet_handle
    event_loop.run_until_complete(wallet.close_wallet(wallet_handle))
Esempio n. 9
0
def sdk_wallet_handle(looper, sdk_wallet_data):
    wallet_handle = looper.loop.run_until_complete(_gen_wallet_handler(sdk_wallet_data))
    yield wallet_handle
    looper.loop.run_until_complete(close_wallet(wallet_handle))
Esempio n. 10
0
async def setup():
    print("1. Creating pool")
    pool_config = json.dumps({"genesis_txn": str(pool_genesis_txn_path)})
    await pool.set_protocol_version(2)
    try:
        await pool.create_pool_ledger_config(pool_name, pool_config)
    except IndyError as ex:
        if ex.error_code == ErrorCode.PoolLedgerConfigAlreadyExistsError:
            pass

    print("2. Opening pool")
    pool_handle = await pool.open_pool_ledger(pool_name, pool_config)
    #################################################
    print("3. Creating Steward wallet and DID")
    try:
        await wallet.create_wallet(steward['wallet_config'], steward['wallet_credentials'])
    except IndyError as ex:
        if ex.error_code == ErrorCode.WalletAlreadyExistsError:
            pass
    steward['wallet']               = await wallet.open_wallet(steward['wallet_config'], steward['wallet_credentials'])        
    steward['did_info']             = json.dumps({'seed': steward['seed']})
    steward['did'], steward['key']  = await did.create_and_store_my_did(steward['wallet'], steward['did_info'])
    #################################################
    print("4. Creating Endorser wallet, DID, and storing it in the ledger")
    try:
        await wallet.create_wallet(endorser['wallet_config'], endorser['wallet_credentials'])
    except IndyError as ex:
        if ex.error_code == ErrorCode.WalletAlreadyExistsError:
            pass
    endorser['wallet']               = await wallet.open_wallet(endorser['wallet_config'], endorser['wallet_credentials'])
    endorser['did_info']             = json.dumps({'seed': endorser['seed']})       
    endorser['did'], endorser['key'] = await did.create_and_store_my_did(endorser['wallet'], endorser['did_info'])
    nym_request                      = await ledger.build_nym_request(steward['did'], endorser['did'], endorser['key'], None, 'TRUST_ANCHOR')
    await ledger.sign_and_submit_request(pool_handle, steward['wallet'], steward['did'], nym_request)
    print("...Endorser DID: " + endorser['did'])
    #################################################
    print("5. Creating user wallet, DID, storing it in the ledger, and creating master secret key")
    try:
        await wallet.create_wallet(user['wallet_config'], user['wallet_credentials'])
    except IndyError as ex:
        if ex.error_code == ErrorCode.WalletAlreadyExistsError:
            pass
    user['wallet']           = await wallet.open_wallet(user['wallet_config'], user['wallet_credentials']) 
    user['did_info']         = json.dumps({'seed': user['seed']})       
    user['did'], user['key'] = await did.create_and_store_my_did(user['wallet'], user['did_info'])
    nym_request              = await ledger.build_nym_request(endorser['did'], user['did'], user['key'], None, None)
    await ledger.sign_and_submit_request(pool_handle, endorser['wallet'], endorser['did'], nym_request)
    try:
        await anoncreds.prover_create_master_secret(usawait wallet.close_wallet(server['wallet'])er['wallet'], user['msk'])
    except IndyError as ex:
        if ex.error_code == ErrorCode.AnoncredsMasterSecretDuplicateNameError:
            pass 
    print("...User DID: " + user['did'])
    #################################################
    '''
    The following is used for verifying DIDs without the pool
    '''
    print("6. Creating server wallet")
    try:
        await wallet.create_wallet(server['wallet_config'], server['wallet_credentials'])
    except IndyError as ex:
        if ex.error_code == ErrorCode.WalletAlreadyExistsError:
            pass
    #################################################
    '''
    The following is used for verifying DIDs without the pool
    '''
    print("7. Storing user verkey in server's wallet")
    server['wallet'] = await wallet.open_wallet(server['wallet_config'], server['wallet_credentials'])
    await did.store_their_did(server['wallet'],json.dumps({"did": user['did'], "verkey": user['key']})) 
    #################################################

    print("Cleaning up")
    await wallet.close_wallet(steward['wallet'])
    await wallet.close_wallet(endorser['wallet'])
    await wallet.close_wallet(user['wallet'])
    await wallet.close_wallet(server['wallet'])
    await pool.close_pool_ledger(pool_handle)