From 53b08f4968b0ebde687c01295aa336128ad50c23 Mon Sep 17 00:00:00 2001 From: "Eric Siegel (Rocket Hazmat)" <409247+NTICompass@users.noreply.github.com> Date: Fri, 13 Mar 2020 13:05:08 -0400 Subject: [PATCH] Fix detecting KeepKey USB device The new KeepKey firmware uses WebUSB instead of HID --- libagent/device/keepkey_defs.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/libagent/device/keepkey_defs.py b/libagent/device/keepkey_defs.py index 912dc28..5054dd6 100644 --- a/libagent/device/keepkey_defs.py +++ b/libagent/device/keepkey_defs.py @@ -6,9 +6,16 @@ from keepkeylib.client import CallException, PinException from keepkeylib.client import KeepKeyClient as Client from keepkeylib.messages_pb2 import PassphraseAck, PinMatrixAck from keepkeylib.transport_hid import HidTransport +from keepkeylib.transport_webusb import WebUsbTransport from keepkeylib.types_pb2 import IdentityType def find_device(): - """Returns first USB HID transport.""" - return next(HidTransport(p) for p in HidTransport.enumerate()) + """Returns first WebUSB or HID transport.""" + webusb = WebUsbTransport.enumerate() + hidusb = HidTransport.enumerate() + + if len(webusb): + return next(WebUsbTransport(p) for p in webusb) + elif len(hidusb): + return next(HidTransport(p) for p in hidusb)