Esempio n. 1
0
 def __init__(self,
              domain_id,
              namespace_id=default_namespace_id,
              port=DEFAULT_CORE_PORT,
              logname="-",
              loglevel="none"):
     self.logger = logger.get_logger(
         key="id_lib", level=loglevel,
         logname=logname)  # FIXME: use the logger
     self.domain_id = domain_id
     self.namespace_id = namespace_id
     self.__app = bbc_app.BBcAppClient(port=DEFAULT_CORE_PORT,
                                       loglevel=loglevel)
     self.__app.set_user_id(id_publickey_map_user_id)
     self.__app.set_domain_id(domain_id)
     self.__app.set_callback(bbc_app.Callback())
     ret = self.__app.register_to_core()
     assert ret
     self.__db = app_support_lib.Database()
     self.__db.setup_db(domain_id, NAME_OF_DB)
     self.__db.create_table_in_db(domain_id,
                                  NAME_OF_DB,
                                  'id_pubkey_table',
                                  id_pubkey_table_definition,
                                  indices=[0, 1])
Esempio n. 2
0
    def __init__(self,
                 domain_id,
                 mint_id,
                 user_id,
                 idPublickeyMap,
                 port=DEFAULT_CORE_PORT,
                 logname="-",
                 loglevel="none"):
        self.logger = logger.get_logger(key="token_lib",
                                        level=loglevel,
                                        logname=logname)  # FIXME: use logger
        self.condition = 0
        self.domain_id = domain_id
        self.mint_id = mint_id
        self.user_id = user_id
        self.idPublickeyMap = idPublickeyMap
        self.app = bbc_app.BBcAppClient(port=DEFAULT_CORE_PORT,
                                        loglevel=loglevel)
        self.app.set_user_id(user_id)
        self.app.set_domain_id(domain_id)
        self.app.set_callback(MintCallback(logger, self))
        ret = self.app.register_to_core()
        assert ret

        self.store = Store(self.domain_id, self.mint_id, self.app)
        self.app.request_insert_completion_notification(self.mint_id)
Esempio n. 3
0
def make_client(index,
                core_port_increment,
                callback=None,
                connect_to_core=True,
                domain_id=None):
    keypair = bbclib.KeyPair()
    keypair.generate()
    clients[index]['user_id'] = bbclib.get_new_id("user_%i" % index)
    clients[index]['keypair'] = keypair
    clients[index]['app'] = bbc_app.BBcAppClient(port=DEFAULT_CORE_PORT +
                                                 core_port_increment,
                                                 multiq=False,
                                                 loglevel=loglv)
    if connect_to_core:
        if domain_id is None:
            global common_domain_id
            domain_id = common_domain_id
        clients[index]['app'].set_user_id(clients[index]['user_id'])
        clients[index]['app'].set_domain_id(domain_id)
    if callback is not None:
        clients[index]['app'].set_callback(callback)
    working_dir = ".bbc1-%i/" % (DEFAULT_CORE_PORT + core_port_increment)
    if os.path.exists(os.path.join(working_dir, "node_key.pem")):
        clients[index]['app'].set_node_key(
            os.path.join(working_dir, "node_key.pem"))
    time.sleep(1)
    print("[%i] user_id = %s" %
          (index, binascii.b2a_hex(clients[index]['user_id'])))
Esempio n. 4
0
def setup():
    tmpclient = bbc_app.BBcAppClient(port=DEFAULT_CORE_PORT, multiq=False,
            loglevel="all")
    tmpclient.domain_setup(domain_id)
    tmpclient.callback.synchronize()
    tmpclient.unregister_from_core()
    print("domain %s is created." % (binascii.b2a_hex(domain_id[:4]).decode()))
Esempio n. 5
0
def setup_bbc_client(domain_id, user_id):
    bbc_app_client = bbc_app.BBcAppClient(port=DEFAULT_CORE_PORT, multiq=False, loglevel="all")
    bbc_app_client.set_user_id(user_id)
    bbc_app_client.set_domain_id(domain_id)
    bbc_app_client.set_callback(bbc_app.Callback())
    ret = bbc_app_client.register_to_core()
    assert ret
    return bbc_app_client
Esempio n. 6
0
def domain_setup():
    tmpclient = bbc_app.BBcAppClient(port=DEFAULT_CORE_PORT, multiq=False, loglevel="all")
    if os.path.exists("node_key.pem"):
        tmpclient.set_node_key("node_key.pem")
    tmpclient.domain_setup(domain_id)
    tmpclient.callback.synchronize()
    tmpclient.unregister_from_core()
    print("Domain %s is created." % (binascii.b2a_hex(domain_id[:4]).decode()))
    print("Setup is done.")
Esempio n. 7
0
def setup():
    g.store.setup()

    tmpclient = bbc_app.BBcAppClient(port=DEFAULT_CORE_PORT, multiq=False,
            loglevel="all")
    tmpclient.domain_setup(domain_id)
    tmpclient.callback.synchronize()
    tmpclient.unregister_from_core()
    return jsonify({'domain_id': binascii.b2a_hex(domain_id).decode()})
Esempio n. 8
0
def setup_bbc_client(port_increase=0, user_id=None):
    bbc_app_client = bbc_app.BBcAppClient(port=DEFAULT_CORE_PORT + port_increase, multiq=False, loglevel="all")
    bbc_app_client.set_user_id(user_id)
    bbc_app_client.set_domain_id(domain_id)
    bbc_app_client.set_callback(bbc_app.Callback())
    if os.path.exists(os.path.join(".bbc1-900%d" % port_increase, "node_key.pem")):
        bbc_app_client.set_node_key(os.path.join(".bbc1-900%d" % port_increase, "node_key.pem"))
    bbc_app_client.domain_setup(domain_id)
    bbc_app_client.callback.synchronize()
    return bbc_app_client
def default_domain_id():
    domain_id = bbclib.get_new_id("test_id_lib", include_timestamp=False)

    tmpclient = bbc_app.BBcAppClient(port=DEFAULT_CORE_PORT,
                                     multiq=False,
                                     loglevel="all")
    tmpclient.domain_setup(domain_id)
    tmpclient.callback.synchronize()
    tmpclient.unregister_from_core()
    return domain_id
Esempio n. 10
0
def run_client():
    client = bbc_app.BBcAppClient(port=bbc_config.DEFAULT_CORE_PORT,
                                  multiq=False,
                                  loglevel='all')
    client.set_user_id(
        bbclib.get_new_id('examples.certify_web', include_timestamp=False))
    client.set_domain_id(domain_id)
    client.set_callback(bbc_app.Callback())
    ret = client.register_to_core()
    assert ret
    return client
Esempio n. 11
0
def connect_core_to_domain():

    tmpclient = bbc_app.BBcAppClient(port=DEFAULT_CORE_PORT,
                                     multiq=False,
                                     loglevel='all')

    tmpclient.domain_setup(domain_id)
    tmpclient.callback.synchronize()
    tmpclient.unregister_from_core()

    return jsonify(domain_id=domain_id_str), 200
Esempio n. 12
0
 def run_client(self):
     self.check_domain_id()
     self.client = bbc_app.BBcAppClient(port=bbc_config.DEFAULT_CORE_PORT,
                                        multiq=False,
                                        loglevel='all')
     self.client.set_user_id(
         bbclib.get_new_id('examples.certificates',
                           include_timestamp=False))
     self.client.set_domain_id(self.domain_id)
     self.client.set_callback(bbc_app.Callback())
     ret = self.client.register_to_core()
     assert ret
Esempio n. 13
0
def domain_setup_utility(core_port_increment, dom_id):
    cl = bbc_app.BBcAppClient(port=DEFAULT_CORE_PORT + core_port_increment,
                              multiq=False)
    working_dir = ".bbc1-%i/" % (DEFAULT_CORE_PORT + core_port_increment)
    if os.path.exists(os.path.join(working_dir, "node_key.pem")):
        cl.set_node_key(os.path.join(working_dir, "node_key.pem"))
    cl.domain_setup(dom_id)
    global common_domain_id
    common_domain_id = dom_id
    wait_check_result_msg_type(cl.callback,
                               bbclib.MsgType.RESPONSE_SETUP_DOMAIN)
    cl.unregister_from_core()
Esempio n. 14
0
def setup():
    global domain_id
    global mint_id
    global idPubkeyMap
    global keypairs

    domain_id = bbclib.get_new_id("test_token_lib", include_timestamp=False)

    tmpclient = bbc_app.BBcAppClient(port=DEFAULT_CORE_PORT, loglevel="all")
    tmpclient.domain_setup(domain_id, "simple_cluster")
    tmpclient.callback.synchronize()
    tmpclient.unregister_from_core()

    idPubkeyMap = id_lib.BBcIdPublickeyMap(domain_id)
    (mint_id, keypairs) = idPubkeyMap.create_user_id(num_pubkeys=1)
 def _run_client(self, args):
     self._check_domain_id()
     if self.client is None:
         if args.ip4address:
             addr = args.ip4address
         if args.ip6address:
             addr = args.ip6address
         self.client = bbc_app.BBcAppClient(host=addr, port=args.coreport,
                 multiq=False, loglevel='all')
         self.client.set_user_id(bbclib.get_new_id('.subsystem_tool',
                 include_timestamp=False))
         self.client.set_domain_id(self.domain_id)
         self.client.set_callback(bbc_app.Callback())
         ret = self.client.register_to_core()
         assert ret
Esempio n. 16
0
def setup():
    g.store.setup()

    tmpclient = bbc_app.BBcAppClient(port=bbc_config.DEFAULT_CORE_PORT,
                                     multiq=False,
                                     loglevel="all")
    tmpclient.domain_setup(domain_id)
    tmpclient.callback.synchronize()
    tmpclient.unregister_from_core()

    g.idPubkeyMap = id_lib.BBcIdPublickeyMap(domain_id)

    user_id, keypairs = g.idPubkeyMap.create_user_id(num_pubkeys=1)
    g.store.write_user(User(user_id, NAME_REGISTRY, keypair=keypairs[0]))

    user_id, keypairs = g.idPubkeyMap.create_user_id(num_pubkeys=1)
    g.store.write_user(User(user_id, NAME_USER, keypair=keypairs[0]))

    return jsonify({'domain_id': binascii.b2a_hex(domain_id).decode()})
Esempio n. 17
0
    def __init__(self,
                 domain_id,
                 namespace_id=default_namespace_id,
                 port=DEFAULT_CORE_PORT,
                 logname="-",
                 loglevel="none",
                 default_key_type=bbclib.DEFAULT_CURVETYPE):
        """Initializes the object.

        Args:
            domain_id (bytes): The application domain.
            namespace_id (bytes): The name space. default_namespace_id exists.
            port (int): The port to the core. DEFAULT_CORE_PORT by default.
            logname (str): The name of the log.
            loglevel (str): The logging level. "none" by default.
            default_key_type (int): Default public key type.

        """
        self.logger = logger.get_logger(
            key="id_lib", level=loglevel,
            logname=logname)  # FIXME: use the logger
        self.domain_id = domain_id
        self.namespace_id = namespace_id
        self.default_key_type = default_key_type
        self.__app = bbc_app.BBcAppClient(port=DEFAULT_CORE_PORT,
                                          loglevel=loglevel)
        self.__app.set_user_id(id_publickey_map_user_id)
        self.__app.set_domain_id(domain_id)
        self.__app.set_callback(bbc_app.Callback())
        ret = self.__app.register_to_core()
        assert ret
        self.__db = app_support_lib.Database()
        self.__db.setup_db(domain_id, NAME_OF_DB)
        self.__db.create_table_in_db(domain_id,
                                     NAME_OF_DB,
                                     'id_pubkey_table',
                                     id_pubkey_table_definition,
                                     indices=[IDX_USER_ID, IDX_PUBLIC_KEY])
Esempio n. 18
0
def create_new_domain():

    domain_id = bbclib.get_new_id("certificate domain")
    tmpclient = bbc_app.BBcAppClient(port=bbc_config.DEFAULT_CORE_PORT,
                                     multiq=False,
                                     loglevel="all")
    tmpclient.domain_setup(domain_id)
    tmpclient.callback.synchronize()
    tmpclient.unregister_from_core()

    print("domain_id:")
    print(bbclib.convert_id_to_string(domain_id))

    idPubkeyMap = id_lib.BBcIdPublickeyMap(domain_id)
    dic = {}

    id, keypairs = idPubkeyMap.create_user_id(num_pubkeys=1)
    dic[KEY_REGISTRY] = User(id, keypairs[0])

    id, keypairs = idPubkeyMap.create_user_id(num_pubkeys=1)
    dic[KEY_USER] = User(id, keypairs[0])

    write_dic(domain_id, dic)
Esempio n. 19
0
def test_store():

    (mint_id, keypairs) = idPubkeyMap.create_user_id(num_pubkeys=1)

    app = bbc_app.BBcAppClient(port=DEFAULT_CORE_PORT, loglevel="all")
    app.set_user_id(mint_id)
    app.set_domain_id(domain_id)
    app.set_callback(bbc_app.Callback())
    ret = app.register_to_core()

    store = token_lib.Store(domain_id, mint_id, app)

    currency_spec = token_lib.CurrencySpec({
        'name': "Japanese Yen",
        'symbol': "JPY",
    })

    store.set_condition(0, keypair=keypairs[0], idPublickeyMap=idPubkeyMap)
    store.set_currency_spec(currency_spec,
                            keypair=keypairs[0],
                            idPublickeyMap=idPubkeyMap)

    assert store.get_condition() == 0
    assert store.get_currency_spec() == currency_spec
Esempio n. 20
0
            os.makedirs(parsed_args.directory, exist_ok=True)
        except:
            sys.stderr.write("# Fail to mkdir for domain_keys")
            sys.exit(1)
        keyname = os.path.join(parsed_args.directory,
                               parsed_args.domain_id + ".pem")
        keypair = bbclib.KeyPair()
        keypair.generate()
        with open(keyname, "wb") as fout:
            fout.write(keypair.get_private_key_in_pem())
        sys.exit(0)

    if not parsed_args.notify:
        sys.stderr.write("# Either -g or -n is required\n")
        sys.exit(1)

    if parsed_args.ip4address:
        addr = parsed_args.ip4address
    if parsed_args.ip6address:
        addr = parsed_args.ip6address
    port = parsed_args.port

    bbcclient = bbc_app.BBcAppClient(host=addr,
                                     port=port,
                                     multiq=False,
                                     loglevel="all")
    if os.path.exists(parsed_args.node_key):
        bbcclient.set_node_key(parsed_args.node_key)
    bbcclient.notify_domain_key_update()
    sys.exit(0)