diff --git a/trezor.py b/trezor.py index 609909d..deace85 100644 --- a/trezor.py +++ b/trezor.py @@ -1,6 +1,7 @@ import io import base64 import logging +import binascii from trezorlib.client import TrezorClient from trezorlib.transport_hid import HidTransport @@ -59,9 +60,18 @@ class Client(object): proto = 'ssh' def __init__(self): - device, = HidTransport.enumerate() - client = TrezorClient(HidTransport(device)) - log.debug('connected to Trezor #%s', client.get_device_id()) + devices = HidTransport.enumerate() + if len(devices) != 1: + raise ValueError('{:d} Trezor devices found'.format(len(devices))) + client = TrezorClient(HidTransport(devices[0])) + f = client.features + log.info('connected to Trezor') + log.debug('ID : {}'.format(f.device_id)) + log.debug('label : {}'.format(f.label)) + log.debug('vendor : {}'.format(f.vendor)) + version = [f.major_version, f.minor_version, f.patch_version] + log.debug('version : {}'.format('.'.join(map(str, version)))) + log.debug('revision : {}'.format(binascii.hexlify(f.revision))) self.client = client def close(self):