def _run_command_keys(options, reactor, personality): """ Subcommand "crossbar keys". """ log = make_logger() # Generate a new node key pair (2 files), load and check _maybe_generate_key(options.cbdir) # Print keys # Release (public) key release_pubkey = _read_release_key() # Node key node_key = _read_node_key(options.cbdir, private=options.private) if options.private: key_title = 'Crossbar.io Node PRIVATE Key' else: key_title = 'Crossbar.io Node PUBLIC Key' log.info('') log.info('{key_title}', key_title=hl('Crossbar Software Release Key', color='yellow', bold=True)) log.info('base64: {release_pubkey}', release_pubkey=release_pubkey['base64']) log.info(release_pubkey['qrcode'].strip()) log.info('') log.info('{key_title}', key_title=hl(key_title, color='yellow', bold=True)) log.info('hex: {node_key}', node_key=node_key['hex']) log.info(node_key['qrcode'].strip()) log.info('')
def _run_command_keys(options, reactor, personality): """ Subcommand "crossbar keys". """ log = make_logger() from crossbar.common.key import _read_node_key from crossbar.common.key import _read_release_key if options.generate: # Generate a new node key pair (2 files), load and check _maybe_generate_key(options.cbdir) else: # Print keys # Release (public) key release_pubkey = _read_release_key() # Node key node_key = _read_node_key(options.cbdir, private=options.private) if options.private: key_title = 'Crossbar.io Node PRIVATE Key' else: key_title = 'Crossbar.io Node PUBLIC Key' log.info('') log.info('{key_title}', key_title=hl('Crossbar Software Release Key', color='yellow', bold=True)) log.info('base64: {release_pubkey}', release_pubkey=release_pubkey[u'base64']) log.info(release_pubkey[u'qrcode'].strip()) log.info('') log.info('{key_title}', key_title=hl(key_title, color='yellow', bold=True)) log.info('hex: {node_key}', node_key=node_key[u'hex']) log.info(node_key[u'qrcode'].strip()) log.info('')
def __init__(self, config=None, reactor=None, personality=None): # base ctor NativeProcess.__init__(self, config=config, reactor=reactor, personality=personality) # Release (public) key self._release_pubkey = _read_release_key()
def __init__(self, config=None, reactor=None, personality=None): # base ctor NativeProcess.__init__(self, config=config, reactor=reactor, personality=personality) # Release (public) key self._release_pubkey = _read_release_key() # Node (private) key (as a string, in hex) node_key_hex = _read_node_key(self.config.extra.cbdir, private=True)['hex'] privkey = nacl.signing.SigningKey(node_key_hex, encoder=nacl.encoding.HexEncoder) # WAMP-cryptosign signing key self._node_key = cryptosign.SigningKey(privkey)
def _get_versions(reactor): v = Versions() v.executable = os.path.realpath(sys.executable) v.platform = platform.platform() v.machine = platform.machine() # Python v.py_ver = '.'.join([str(x) for x in list(sys.version_info[:3])]) v.py_ver_string = "%s" % sys.version.replace('\n', ' ') if 'pypy_version_info' in sys.__dict__: v.py_ver_detail = "{}-{}".format( platform.python_implementation(), '.'.join(str(x) for x in sys.pypy_version_info[:3])) else: v.py_ver_detail = platform.python_implementation() # Pyinstaller (frozen EXE) v.py_is_frozen = getattr(sys, 'frozen', False) # Twisted / Reactor v.tx_ver = "%s-%s" % (_get_version('twisted'), reactor.__class__.__name__) v.tx_loc = "%s" % qual(reactor.__class__) # txaio v.txaio_ver = _get_version('txaio') # Autobahn v.ab_ver = _get_version('autobahn') v.ab_loc = "%s" % qual(WebSocketProtocol) # UTF8 Validator s = qual(Utf8Validator) if 'wsaccel' in s: v.utf8_ver = 'wsaccel-%s' % _get_version('wsaccel') elif s.startswith('autobahn'): v.utf8_ver = 'autobahn' else: # could not detect UTF8 validator type/version v.utf8_ver = '?' v.utf8_loc = "%s" % qual(Utf8Validator) # XOR Masker s = qual(XorMaskerNull) if 'wsaccel' in s: v.xor_ver = 'wsaccel-%s' % _get_version('wsaccel') elif s.startswith('autobahn'): v.xor_ver = 'autobahn' else: # could not detect XOR masker type/version v.xor_ver = '?' v.xor_loc = "%s" % qual(XorMaskerNull) # JSON Serializer supported_serializers = ['JSON'] from autobahn.wamp.serializer import JsonObjectSerializer json_ver = JsonObjectSerializer.JSON_MODULE.__name__ # If it's just 'json' then it's the stdlib one... if json_ver == 'json': v.json_ver = 'stdlib' else: v.json_ver = (json_ver + "-%s") % _get_version(json_ver) # MsgPack Serializer try: from autobahn.wamp.serializer import MsgPackObjectSerializer msgpack = MsgPackObjectSerializer.MSGPACK_MODULE v.msgpack_ver = '{}-{}'.format(msgpack.__name__, _get_version(msgpack)) supported_serializers.append('MessagePack') except ImportError: pass # CBOR Serializer try: from autobahn.wamp.serializer import CBORObjectSerializer cbor = CBORObjectSerializer.CBOR_MODULE v.cbor_ver = '{}-{}'.format(cbor.__name__, _get_version(cbor)) supported_serializers.append('CBOR') except ImportError: pass # UBJSON Serializer try: from autobahn.wamp.serializer import UBJSONObjectSerializer ubjson = UBJSONObjectSerializer.UBJSON_MODULE v.ubjson_ver = '{}-{}'.format(ubjson.__name__, _get_version(ubjson)) supported_serializers.append('UBJSON') except ImportError: pass # Flatbuffers Serializer try: from autobahn.wamp.serializer import FlatBuffersObjectSerializer flatbuffers = FlatBuffersObjectSerializer.FLATBUFFERS_MODULE v.flatbuffers_ver = '{}-{}'.format(flatbuffers.__name__, _get_version(flatbuffers)) supported_serializers.append('Flatbuffers') except ImportError: pass v.supported_serializers = supported_serializers # LMDB try: import lmdb # noqa lmdb_lib_ver = '.'.join([str(x) for x in lmdb.version()]) v.lmdb_ver = '{}/lmdb-{}'.format(_get_version(lmdb), lmdb_lib_ver) except ImportError: pass # crossbar v.crossbar_ver = crossbar.__version__ # crossbarfx try: import crossbarfx # noqa v.crossbarfx_ver = _get_version(crossbarfx) except ImportError: pass # zlmdb try: import zlmdb # noqa v.zlmdb_ver = _get_version(zlmdb) except ImportError: pass # numpy try: import numpy # noqa v.numpy_ver = _get_version(numpy) except ImportError: pass # Release Public Key from crossbar.common.key import _read_release_key release_pubkey = _read_release_key() v.release_pubkey = release_pubkey['base64'] return v
def _run_command_version(options, reactor, personality): """ Subcommand "crossbar version". """ log = make_logger() # Python py_ver = '.'.join([str(x) for x in list(sys.version_info[:3])]) py_ver_string = "[%s]" % sys.version.replace('\n', ' ') if 'pypy_version_info' in sys.__dict__: py_ver_detail = "{}-{}".format( platform.python_implementation(), '.'.join(str(x) for x in sys.pypy_version_info[:3])) else: py_ver_detail = platform.python_implementation() # Pyinstaller (frozen EXE) py_is_frozen = getattr(sys, 'frozen', False) # Twisted / Reactor tx_ver = "%s-%s" % (_get_version('twisted'), reactor.__class__.__name__) tx_loc = "[%s]" % qual(reactor.__class__) # txaio txaio_ver = _get_version('txaio') # Autobahn ab_ver = _get_version('autobahn') ab_loc = "[%s]" % qual(WebSocketProtocol) # UTF8 Validator s = qual(Utf8Validator) if 'wsaccel' in s: utf8_ver = 'wsaccel-%s' % _get_version('wsaccel') elif s.startswith('autobahn'): utf8_ver = 'autobahn' else: # could not detect UTF8 validator type/version utf8_ver = '?' utf8_loc = "[%s]" % qual(Utf8Validator) # XOR Masker s = qual(XorMaskerNull) if 'wsaccel' in s: xor_ver = 'wsaccel-%s' % _get_version('wsaccel') elif s.startswith('autobahn'): xor_ver = 'autobahn' else: # could not detect XOR masker type/version xor_ver = '?' xor_loc = "[%s]" % qual(XorMaskerNull) # JSON Serializer supported_serializers = ['JSON'] from autobahn.wamp.serializer import JsonObjectSerializer json_ver = JsonObjectSerializer.JSON_MODULE.__name__ # If it's just 'json' then it's the stdlib one... if json_ver == 'json': json_ver = 'stdlib' else: json_ver = (json_ver + "-%s") % _get_version(json_ver) # MsgPack Serializer try: import umsgpack # noqa msgpack_ver = 'u-msgpack-python-%s' % _get_version(umsgpack) supported_serializers.append('MessagePack') except ImportError: msgpack_ver = '-' # CBOR Serializer try: import cbor # noqa cbor_ver = 'cbor-%s' % _get_version(cbor) supported_serializers.append('CBOR') except ImportError: cbor_ver = '-' # UBJSON Serializer try: import ubjson # noqa ubjson_ver = 'ubjson-%s' % _get_version(ubjson) supported_serializers.append('UBJSON') except ImportError: ubjson_ver = '-' # LMDB try: import lmdb # noqa lmdb_lib_ver = '.'.join([str(x) for x in lmdb.version()]) lmdb_ver = '{}/lmdb-{}'.format(_get_version(lmdb), lmdb_lib_ver) except ImportError: lmdb_ver = '-' # crossbarfx try: from crossbarfx._version import __version__ as crossbarfx_ver # noqa except ImportError: crossbarfx_ver = '-' # txaio-etcd try: import txaioetcd # noqa txaioetcd_ver = _get_version(txaioetcd) except ImportError: txaioetcd_ver = '-' # Release Public Key from crossbar.common.key import _read_release_key release_pubkey = _read_release_key() def decorate(text, fg='white', bg=None, bold=True): return click.style(text, fg=fg, bg=bg, bold=bold) pad = " " * 22 for line in personality.BANNER.splitlines(): log.info(hl(line, color='yellow', bold=True)) log.info("") log.info(" Crossbar.io : {ver}", ver=decorate(crossbar.__version__)) log.info(" Autobahn : {ver}", ver=decorate(ab_ver)) log.trace("{pad}{debuginfo}", pad=pad, debuginfo=decorate(ab_loc)) log.debug(" txaio : {ver}", ver=decorate(txaio_ver)) log.debug(" UTF8 Validator : {ver}", ver=decorate(utf8_ver)) log.trace("{pad}{debuginfo}", pad=pad, debuginfo=decorate(utf8_loc)) log.debug(" XOR Masker : {ver}", ver=decorate(xor_ver)) log.trace("{pad}{debuginfo}", pad=pad, debuginfo=decorate(xor_loc)) log.debug(" JSON Codec : {ver}", ver=decorate(json_ver)) log.debug(" MsgPack Codec : {ver}", ver=decorate(msgpack_ver)) log.debug(" CBOR Codec : {ver}", ver=decorate(cbor_ver)) log.debug(" UBJSON Codec : {ver}", ver=decorate(ubjson_ver)) log.info(" Twisted : {ver}", ver=decorate(tx_ver)) log.trace("{pad}{debuginfo}", pad=pad, debuginfo=decorate(tx_loc)) log.info(" LMDB : {ver}", ver=decorate(lmdb_ver)) log.info(" Python : {ver}/{impl}", ver=decorate(py_ver), impl=decorate(py_ver_detail)) log.trace("{pad}{debuginfo}", pad=pad, debuginfo=decorate(py_ver_string)) if personality.NAME in (u'edge', u'master'): log.info(" Crossbar.io FX : {ver}", ver=decorate(crossbarfx_ver)) if personality.NAME in (u'master'): log.info(" txaioetcd : {ver}", ver=decorate(txaioetcd_ver)) log.info(" Frozen executable : {py_is_frozen}", py_is_frozen=decorate('yes' if py_is_frozen else 'no')) log.info(" Operating system : {ver}", ver=decorate(platform.platform())) log.info(" Host machine : {ver}", ver=decorate(platform.machine())) log.info(" Release key : {release_pubkey}", release_pubkey=decorate(release_pubkey[u'base64'])) log.info("")
def _run_command_version(options, reactor, personality): """ Subcommand "crossbar version". """ log = make_logger() # Python py_ver = '.'.join([str(x) for x in list(sys.version_info[:3])]) py_ver_string = "[%s]" % sys.version.replace('\n', ' ') if 'pypy_version_info' in sys.__dict__: py_ver_detail = "{}-{}".format(platform.python_implementation(), '.'.join(str(x) for x in sys.pypy_version_info[:3])) else: py_ver_detail = platform.python_implementation() # Pyinstaller (frozen EXE) py_is_frozen = getattr(sys, 'frozen', False) # Twisted / Reactor tx_ver = "%s-%s" % (_get_version('twisted'), reactor.__class__.__name__) tx_loc = "[%s]" % qual(reactor.__class__) # txaio txaio_ver = _get_version('txaio') # Autobahn ab_ver = _get_version('autobahn') ab_loc = "[%s]" % qual(WebSocketProtocol) # UTF8 Validator s = qual(Utf8Validator) if 'wsaccel' in s: utf8_ver = 'wsaccel-%s' % _get_version('wsaccel') elif s.startswith('autobahn'): utf8_ver = 'autobahn' else: # could not detect UTF8 validator type/version utf8_ver = '?' utf8_loc = "[%s]" % qual(Utf8Validator) # XOR Masker s = qual(XorMaskerNull) if 'wsaccel' in s: xor_ver = 'wsaccel-%s' % _get_version('wsaccel') elif s.startswith('autobahn'): xor_ver = 'autobahn' else: # could not detect XOR masker type/version xor_ver = '?' xor_loc = "[%s]" % qual(XorMaskerNull) # JSON Serializer supported_serializers = ['JSON'] from autobahn.wamp.serializer import JsonObjectSerializer json_ver = JsonObjectSerializer.JSON_MODULE.__name__ # If it's just 'json' then it's the stdlib one... if json_ver == 'json': json_ver = 'stdlib' else: json_ver = (json_ver + "-%s") % _get_version(json_ver) # MsgPack Serializer try: import umsgpack # noqa msgpack_ver = 'u-msgpack-python-%s' % _get_version(umsgpack) supported_serializers.append('MessagePack') except ImportError: msgpack_ver = '-' # CBOR Serializer try: import cbor # noqa cbor_ver = 'cbor-%s' % _get_version(cbor) supported_serializers.append('CBOR') except ImportError: cbor_ver = '-' # UBJSON Serializer try: import ubjson # noqa ubjson_ver = 'ubjson-%s' % _get_version(ubjson) supported_serializers.append('UBJSON') except ImportError: ubjson_ver = '-' # LMDB try: import lmdb # noqa lmdb_lib_ver = '.'.join([str(x) for x in lmdb.version()]) lmdb_ver = '{}/lmdb-{}'.format(_get_version(lmdb), lmdb_lib_ver) except ImportError: lmdb_ver = '-' # crossbarfx try: from crossbarfx._version import __version__ as crossbarfx_ver # noqa except ImportError: crossbarfx_ver = '-' # txaio-etcd try: import txaioetcd # noqa txaioetcd_ver = _get_version(txaioetcd) except ImportError: txaioetcd_ver = '-' # Release Public Key from crossbar.common.key import _read_release_key release_pubkey = _read_release_key() def decorate(text, fg='white', bg=None, bold=True): return click.style(text, fg=fg, bg=bg, bold=bold) pad = " " * 22 for line in personality.BANNER.splitlines(): log.info(hl(line, color='yellow', bold=True)) log.info("") log.info(" Crossbar.io : {ver}", ver=decorate(crossbar.__version__)) log.info(" Autobahn : {ver}", ver=decorate(ab_ver)) log.trace("{pad}{debuginfo}", pad=pad, debuginfo=decorate(ab_loc)) log.debug(" txaio : {ver}", ver=decorate(txaio_ver)) log.debug(" UTF8 Validator : {ver}", ver=decorate(utf8_ver)) log.trace("{pad}{debuginfo}", pad=pad, debuginfo=decorate(utf8_loc)) log.debug(" XOR Masker : {ver}", ver=decorate(xor_ver)) log.trace("{pad}{debuginfo}", pad=pad, debuginfo=decorate(xor_loc)) log.debug(" JSON Codec : {ver}", ver=decorate(json_ver)) log.debug(" MsgPack Codec : {ver}", ver=decorate(msgpack_ver)) log.debug(" CBOR Codec : {ver}", ver=decorate(cbor_ver)) log.debug(" UBJSON Codec : {ver}", ver=decorate(ubjson_ver)) log.info(" Twisted : {ver}", ver=decorate(tx_ver)) log.trace("{pad}{debuginfo}", pad=pad, debuginfo=decorate(tx_loc)) log.info(" LMDB : {ver}", ver=decorate(lmdb_ver)) log.info(" Python : {ver}/{impl}", ver=decorate(py_ver), impl=decorate(py_ver_detail)) log.trace("{pad}{debuginfo}", pad=pad, debuginfo=decorate(py_ver_string)) if personality.NAME in (u'edge', u'master'): log.info(" Crossbar.io FX : {ver}", ver=decorate(crossbarfx_ver)) if personality.NAME in (u'master'): log.info(" txaioetcd : {ver}", ver=decorate(txaioetcd_ver)) log.info(" Frozen executable : {py_is_frozen}", py_is_frozen=decorate('yes' if py_is_frozen else 'no')) log.info(" Operating system : {ver}", ver=decorate(platform.platform())) log.info(" Host machine : {ver}", ver=decorate(platform.machine())) log.info(" Release key : {release_pubkey}", release_pubkey=decorate(release_pubkey[u'base64'])) log.info("")
def _get_versions(reactor): v = Versions() v.executable = os.path.realpath(sys.executable) v.platform = platform.platform() v.machine = platform.machine() # Python v.py_ver = '.'.join([str(x) for x in list(sys.version_info[:3])]) v.py_ver_string = "%s" % sys.version.replace('\n', ' ') if 'pypy_version_info' in sys.__dict__: v.py_ver_detail = "{}-{}".format(platform.python_implementation(), '.'.join(str(x) for x in sys.pypy_version_info[:3])) else: v.py_ver_detail = platform.python_implementation() # Pyinstaller (frozen EXE) v.py_is_frozen = getattr(sys, 'frozen', False) # Twisted / Reactor v.tx_ver = "%s-%s" % (_get_version('twisted'), reactor.__class__.__name__) v.tx_loc = "%s" % qual(reactor.__class__) # txaio v.txaio_ver = _get_version('txaio') # Autobahn v.ab_ver = _get_version('autobahn') v.ab_loc = "%s" % qual(WebSocketProtocol) # UTF8 Validator s = qual(Utf8Validator) if 'wsaccel' in s: v.utf8_ver = 'wsaccel-%s' % _get_version('wsaccel') elif s.startswith('autobahn'): v.utf8_ver = 'autobahn' else: # could not detect UTF8 validator type/version v.utf8_ver = '?' v.utf8_loc = "%s" % qual(Utf8Validator) # XOR Masker s = qual(XorMaskerNull) if 'wsaccel' in s: v.xor_ver = 'wsaccel-%s' % _get_version('wsaccel') elif s.startswith('autobahn'): v.xor_ver = 'autobahn' else: # could not detect XOR masker type/version v.xor_ver = '?' v.xor_loc = "%s" % qual(XorMaskerNull) # JSON Serializer supported_serializers = ['JSON'] from autobahn.wamp.serializer import JsonObjectSerializer json_ver = JsonObjectSerializer.JSON_MODULE.__name__ # If it's just 'json' then it's the stdlib one... if json_ver == 'json': v.json_ver = 'stdlib' else: v.json_ver = (json_ver + "-%s") % _get_version(json_ver) # MsgPack Serializer try: from autobahn.wamp.serializer import MsgPackObjectSerializer msgpack = MsgPackObjectSerializer.MSGPACK_MODULE v.msgpack_ver = '{}-{}'.format(msgpack.__name__, _get_version(msgpack)) supported_serializers.append('MessagePack') except ImportError: pass # CBOR Serializer try: from autobahn.wamp.serializer import CBORObjectSerializer cbor = CBORObjectSerializer.CBOR_MODULE v.cbor_ver = '{}-{}'.format(cbor.__name__, _get_version(cbor)) supported_serializers.append('CBOR') except ImportError: pass # UBJSON Serializer try: from autobahn.wamp.serializer import UBJSONObjectSerializer ubjson = UBJSONObjectSerializer.UBJSON_MODULE v.ubjson_ver = '{}-{}'.format(ubjson.__name__, _get_version(ubjson)) supported_serializers.append('UBJSON') except ImportError: pass # Flatbuffers Serializer try: from autobahn.wamp.serializer import FlatBuffersObjectSerializer flatbuffers = FlatBuffersObjectSerializer.FLATBUFFERS_MODULE v.flatbuffers_ver = '{}-{}'.format(flatbuffers.__name__, _get_version(flatbuffers)) supported_serializers.append('Flatbuffers') except ImportError: pass v.supported_serializers = supported_serializers # LMDB try: import lmdb # noqa lmdb_lib_ver = '.'.join([str(x) for x in lmdb.version()]) v.lmdb_ver = '{}/lmdb-{}'.format(_get_version(lmdb), lmdb_lib_ver) except ImportError: pass # crossbar v.crossbar_ver = crossbar.__version__ # crossbarfx try: import crossbarfx # noqa v.crossbarfx_ver = _get_version(crossbarfx) except ImportError: pass # xbr try: import xbr # noqa v.xbr_ver = _get_version(xbr) except ImportError: pass # zlmdb try: import zlmdb # noqa v.zlmdb_ver = _get_version(zlmdb) except ImportError: pass # numpy try: import numpy # noqa v.numpy_ver = _get_version(numpy) except ImportError: pass # Release Public Key from crossbar.common.key import _read_release_key release_pubkey = _read_release_key() v.release_pubkey = release_pubkey[u'base64'] return v