diff --git a/trezor_agent/device/trezor.py b/trezor_agent/device/trezor.py index 6b280eb..3729e88 100644 --- a/trezor_agent/device/trezor.py +++ b/trezor_agent/device/trezor.py @@ -17,6 +17,10 @@ class Trezor(interface.Device): @property def _defs(self): from . import trezor_defs + # Allow using TREZOR bridge transport (instead of the HID default) + trezor_defs.Transport = { + 'bridge': trezor_defs.BridgeTransport, + }.get(os.environ.get('TREZOR_TRANSPORT'), trezor_defs.HidTransport) return trezor_defs required_version = '>=1.4.0' @@ -29,9 +33,9 @@ class Trezor(interface.Device): 'non-empty' if self.passphrase else 'empty', self) return self._defs.PassphraseAck(passphrase=self.passphrase) - for d in self._defs.HidTransport.enumerate(): + for d in self._defs.Transport.enumerate(): log.debug('endpoint: %s', d) - transport = self._defs.HidTransport(d) + transport = self._defs.Transport(d) connection = self._defs.Client(transport) connection.callback_PassphraseRequest = passphrase_handler f = connection.features diff --git a/trezor_agent/device/trezor_defs.py b/trezor_agent/device/trezor_defs.py index 00163ad..32406c7 100644 --- a/trezor_agent/device/trezor_defs.py +++ b/trezor_agent/device/trezor_defs.py @@ -5,5 +5,6 @@ from trezorlib.client import CallException as Error from trezorlib.client import TrezorClient as Client from trezorlib.messages_pb2 import PassphraseAck +from trezorlib.transport_bridge import BridgeTransport from trezorlib.transport_hid import HidTransport from trezorlib.types_pb2 import IdentityType