|
|
@ -9,8 +9,10 @@ from trezor import workflow
|
|
|
|
log.level = log.DEBUG
|
|
|
|
log.level = log.DEBUG
|
|
|
|
|
|
|
|
|
|
|
|
# initialize the USB stack
|
|
|
|
# initialize the USB stack
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if True:
|
|
|
|
usb_wire = io.HID(
|
|
|
|
usb_wire = io.HID(
|
|
|
|
iface_num=0x00,
|
|
|
|
iface_num=0,
|
|
|
|
ep_in=0x81,
|
|
|
|
ep_in=0x81,
|
|
|
|
ep_out=0x01,
|
|
|
|
ep_out=0x01,
|
|
|
|
report_desc=bytes([
|
|
|
|
report_desc=bytes([
|
|
|
@ -32,14 +34,14 @@ usb_wire = io.HID(
|
|
|
|
0xc0, # END_COLLECTION
|
|
|
|
0xc0, # END_COLLECTION
|
|
|
|
]),
|
|
|
|
]),
|
|
|
|
)
|
|
|
|
)
|
|
|
|
if __debug__:
|
|
|
|
|
|
|
|
usb_debug = io.HID(
|
|
|
|
usb_u2f = io.HID(
|
|
|
|
iface_num=0x04,
|
|
|
|
iface_num=3,
|
|
|
|
ep_in=0x85,
|
|
|
|
ep_in=0x84,
|
|
|
|
ep_out=0x04,
|
|
|
|
ep_out=0x03,
|
|
|
|
report_desc=bytes([
|
|
|
|
report_desc=bytes([
|
|
|
|
0x06, 0x01, 0xff, # USAGE_PAGE (Vendor Defined)
|
|
|
|
0x06, 0xd0, 0xf1, # USAGE_PAGE (FIDO Alliance)
|
|
|
|
0x09, 0x01, # USAGE (1)
|
|
|
|
0x09, 0x01, # USAGE (U2F HID Authenticator Device)
|
|
|
|
0xa1, 0x01, # COLLECTION (Application)
|
|
|
|
0xa1, 0x01, # COLLECTION (Application)
|
|
|
|
0x09, 0x20, # USAGE (Input Report Data)
|
|
|
|
0x09, 0x20, # USAGE (Input Report Data)
|
|
|
|
0x15, 0x00, # LOGICAL_MINIMUM (0)
|
|
|
|
0x15, 0x00, # LOGICAL_MINIMUM (0)
|
|
|
@ -56,20 +58,16 @@ if __debug__:
|
|
|
|
0xc0, # END_COLLECTION
|
|
|
|
0xc0, # END_COLLECTION
|
|
|
|
]),
|
|
|
|
]),
|
|
|
|
)
|
|
|
|
)
|
|
|
|
usb_vcp = io.VCP(
|
|
|
|
|
|
|
|
iface_num=0x01,
|
|
|
|
if __debug__:
|
|
|
|
data_iface_num=0x02,
|
|
|
|
if True:
|
|
|
|
ep_in=0x82,
|
|
|
|
usb_debug = io.HID(
|
|
|
|
ep_out=0x02,
|
|
|
|
iface_num=4,
|
|
|
|
ep_cmd=0x83,
|
|
|
|
ep_in=0x85,
|
|
|
|
)
|
|
|
|
ep_out=0x04,
|
|
|
|
usb_u2f = io.HID(
|
|
|
|
|
|
|
|
iface_num=0x03,
|
|
|
|
|
|
|
|
ep_in=0x84,
|
|
|
|
|
|
|
|
ep_out=0x03,
|
|
|
|
|
|
|
|
report_desc=bytes([
|
|
|
|
report_desc=bytes([
|
|
|
|
0x06, 0xd0, 0xf1, # USAGE_PAGE (FIDO Alliance)
|
|
|
|
0x06, 0x01, 0xff, # USAGE_PAGE (Vendor Defined)
|
|
|
|
0x09, 0x01, # USAGE (U2F HID Authenticator Device)
|
|
|
|
0x09, 0x01, # USAGE (1)
|
|
|
|
0xa1, 0x01, # COLLECTION (Application)
|
|
|
|
0xa1, 0x01, # COLLECTION (Application)
|
|
|
|
0x09, 0x20, # USAGE (Input Report Data)
|
|
|
|
0x09, 0x20, # USAGE (Input Report Data)
|
|
|
|
0x15, 0x00, # LOGICAL_MINIMUM (0)
|
|
|
|
0x15, 0x00, # LOGICAL_MINIMUM (0)
|
|
|
@ -86,6 +84,14 @@ usb_u2f = io.HID(
|
|
|
|
0xc0, # END_COLLECTION
|
|
|
|
0xc0, # END_COLLECTION
|
|
|
|
]),
|
|
|
|
]),
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
usb_vcp = io.VCP(
|
|
|
|
|
|
|
|
iface_num=1,
|
|
|
|
|
|
|
|
data_iface_num=2,
|
|
|
|
|
|
|
|
ep_in=0x82,
|
|
|
|
|
|
|
|
ep_out=0x02,
|
|
|
|
|
|
|
|
ep_cmd=0x83,
|
|
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
usb = io.USB(
|
|
|
|
usb = io.USB(
|
|
|
|
vendor_id=0x1209,
|
|
|
|
vendor_id=0x1209,
|
|
|
|
product_id=0x53C1,
|
|
|
|
product_id=0x53C1,
|
|
|
@ -94,11 +100,12 @@ usb = io.USB(
|
|
|
|
product="TREZOR",
|
|
|
|
product="TREZOR",
|
|
|
|
serial_number="000000000000000000000000",
|
|
|
|
serial_number="000000000000000000000000",
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
usb.add(usb_wire)
|
|
|
|
usb.add(usb_wire)
|
|
|
|
|
|
|
|
usb.add(usb_u2f)
|
|
|
|
if __debug__:
|
|
|
|
if __debug__:
|
|
|
|
usb.add(usb_debug)
|
|
|
|
usb.add(usb_debug)
|
|
|
|
usb.add(usb_vcp)
|
|
|
|
usb.add(usb_vcp)
|
|
|
|
usb.add(usb_u2f)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# load applications
|
|
|
|
# load applications
|
|
|
|
if __debug__:
|
|
|
|
if __debug__:
|
|
|
|