async def on_pool_create(self, pool_handle, wallet_handle, submitter_did,
                          sign_req_f, send_req_f, *args, **kwargs):
     await super().on_pool_create(pool_handle, wallet_handle, submitter_did,
                                  sign_req_f, send_req_f, *args, **kwargs)
     self._wallet_handle = wallet_handle
     _, self._default_schema_json = await anoncreds.issuer_create_schema(
         submitter_did, random_string(32), "1.0",
         json.dumps(["name", "age", "sex", "height"]))
     schema_request = await ledger.build_schema_request(
         submitter_did, self._default_schema_json)
     schema_request = await self._append_taa_acceptance(schema_request)
     resp = await sign_req_f(wallet_handle, submitter_did, schema_request)
     resp = await send_req_f(pool_handle, resp)
     # resp = await ledger.sign_and_submit_request(pool_handle, wallet_handle, submitter_did, schema_request)
     resp = json.loads(resp)
     seqno =\
         resp.get('result', {}).get('seqNo', None) or\
         resp.get('result', {}).get('txnMetadata', {}).get('seqNo', None)
     self._default_schema_json = json.loads(self._default_schema_json)
     self._default_schema_json['seqNo'] = seqno
     self._default_definition_id, self._default_definition_json = \
         await anoncreds.issuer_create_and_store_credential_def(
             wallet_handle, submitter_did, json.dumps(self._default_schema_json),
             random_string(32), "CL", json.dumps({"support_revocation": True}))
     self._default_definition_json = json.loads(
         self._default_definition_json)
    async def on_pool_create(self, pool_handle, wallet_handle, submitter_did,
                             sign_req_f, send_req_f, *args, **kwargs):
        self._node_alias = random_string(7)
        self._node_did, node_ver = await did.create_and_store_my_did(
            wallet_handle, json.dumps({'seed': random_string(32)}))
        self._steward_did, verk = await did.create_and_store_my_did(
            wallet_handle, json.dumps({'seed': random_string(32)}))

        nym_req = await ledger.build_nym_request(submitter_did,
                                                 self._steward_did, verk, None,
                                                 "STEWARD")
        await ledger.sign_and_submit_request(pool_handle, wallet_handle,
                                             submitter_did, nym_req)
예제 #3
0
 def __init__(self, name, pipe_conn, batch_size, batch_rate, req_kind,
              buff_req, pool_config, send_mode):
     self._name = name
     self._stat = ClientStatistic()
     self._send_mode = send_mode
     self._buff_reqs = buff_req
     self._pipe_conn = pipe_conn
     self._pool_name = "pool_{}".format(random_string(24))
     self._loop = asyncio.new_event_loop()
     asyncio.set_event_loop(self._loop)
     self._pool_handle = None
     self._wallet_name = None
     self._wallet_handle = None
     self._test_did = None
     self._test_verk = None
     self._load_client_reqs = []
     self._loop.add_reader(self._pipe_conn, self.read_cb)
     self._closing = False
     self._batch_size = batch_size
     self._batch_rate = batch_rate
     self._gen_q = []
     self._send_q = []
     req_class, params = ReqTypeParser.create_req_generator(req_kind)
     self._req_generator = req_class(**params, client_stat=self._stat)
     assert self._req_generator is not None
     self._pool_config = json.dumps(pool_config) if isinstance(
         pool_config, dict) and pool_config else None
     if self._send_mode == LoadClient.SendResp and self._batch_size > 1:
         raise RuntimeError(
             "Batch size cannot be greater than 1 in response waiting mode")
     if self._send_mode == LoadClient.SendResp and buff_req != 0:
         raise RuntimeError(
             "Cannot pregenerate reqs in response waiting mode")
예제 #4
0
 async def _upd_revoc_reg(self):
     while True:
         try:
             self._default_revoc_reg_def_id, self._default_revoc_reg_def_json, self._default_revoc_reg_entry_json = \
                 await anoncreds.issuer_create_and_store_revoc_reg(
                     self._wallet_handle, self._submitter_did, "CL_ACCUM", random_string(32),
                     self._default_definition_id,
                     json.dumps({"max_cred_num": self._max_cred_num, "issuance_type": "ISSUANCE_ON_DEMAND"}),
                     self._tails_writer)
             def_revoc_request = await ledger.build_revoc_reg_def_request(
                 self._submitter_did, self._default_revoc_reg_def_json)
             await ledger.sign_and_submit_request(self._pool_handle,
                                                  self._wallet_handle,
                                                  self._submitter_did,
                                                  def_revoc_request)
             entry_revoc_request = await ledger.build_revoc_reg_entry_request(
                 self._submitter_did, self._default_revoc_reg_def_id,
                 "CL_ACCUM", self._default_revoc_reg_entry_json)
             await ledger.sign_and_submit_request(self._pool_handle,
                                                  self._wallet_handle,
                                                  self._submitter_did,
                                                  entry_revoc_request)
             break
         except Exception as ex:
             print("WARNING: _upd_revoc_reg {}".format(ex))
예제 #5
0
def check_genesis(gen_path):
    loop = asyncio.get_event_loop()
    pool_cfg = json.dumps({"genesis_txn": gen_path})
    pool_name = "pool_{}".format(random_string(24))
    loop.run_until_complete(pool.set_protocol_version(2))
    try:
        loop.run_until_complete(
            pool.create_pool_ledger_config(pool_name, pool_cfg))
        pool_handle = loop.run_until_complete(
            pool.open_pool_ledger(pool_name, None))
    except Exception as ex:
        raise argparse.ArgumentTypeError(ex)

    loop.run_until_complete(pool.close_pool_ledger(pool_handle))
    dir_to_dlt = os.path.join(os.path.expanduser("~/.indy_client/pool"),
                              pool_name)
    if os.path.isdir(dir_to_dlt):
        shutil.rmtree(dir_to_dlt, ignore_errors=True)
예제 #6
0
 def __init__(self, name, pipe_conn, batch_size, batch_rate, req_kind,
              buff_req, pool_config, send_mode, short_stat, **kwargs):
     self._name = name
     self._stat = ClientStatistic(short_stat)
     self._send_mode = send_mode
     self._buff_reqs = buff_req
     self._pipe_conn = pipe_conn
     self._pool_name = "pool_{}".format(random_string(24))
     self._loop = asyncio.new_event_loop()
     asyncio.set_event_loop(self._loop)
     self._pool_handle = None
     self._wallet_name = None
     self._wallet_handle = None
     self._trustee_dids = []
     self._req_num_of_trustees = kwargs.get("trustees_num", 1)
     self._set_auth_rule = kwargs.get("set_auth_rules", False)
     self._test_did = None
     self._test_verk = None
     self._taa_text = None
     self._taa_version = None
     self._taa_time = None
     self._load_client_reqs = []
     self._loop.add_reader(self._pipe_conn, self.read_cb)
     self._closing = False
     self._batch_size = batch_size
     self._batch_rate = batch_rate
     self._auth_rule_metadata = {}
     self._gen_q = []
     self._send_q = []
     req_class, params = ReqTypeParser.create_req_generator(req_kind)
     self._req_generator = req_class(**params, client_stat=self._stat)
     assert self._req_generator is not None
     self._pool_config = json.dumps(pool_config) if isinstance(
         pool_config, dict) and pool_config else None
     if self._send_mode == LoadClient.SendResp and self._batch_size > 1:
         raise RuntimeError(
             "Batch size cannot be greater than 1 in response waiting mode")
     if self._send_mode == LoadClient.SendResp and buff_req != 0:
         raise RuntimeError(
             "Cannot pregenerate reqs in response waiting mode")
     self._logger = logging.getLogger(self._name)
예제 #7
0
 def _rand_data(self):
     return random_string(32)
예제 #8
0
def tmpdir(request):
    tmp_h = request.config._tmpdirhandler
    x = str(tmp_h.mktemp(random_string(4), numbered=True))
    yield x
    shutil.rmtree(x)