diff --git a/libfprint/drivers/elanmoc/elanmoc.c b/libfprint/drivers/elanmoc/elanmoc.c index 49ea267..2a9b526 100644 --- a/libfprint/drivers/elanmoc/elanmoc.c +++ b/libfprint/drivers/elanmoc/elanmoc.c @@ -431,7 +431,7 @@ elan_enroll_run_state (FpiSsm *ssm, FpDevice *dev) case MOC_ENROLL_REENROLL_CHECK: data = fpi_ssm_get_data (ssm); cmd_buf = elanmoc_compose_cmd (&elanmoc_check_reenroll_cmd); - cmd_buf[4] = data[16]; + memcpy (cmd_buf + 3, data, ELAN_USERDATE_SIZE); elanmoc_get_cmd (dev, cmd_buf, elanmoc_check_reenroll_cmd.cmd_len, elanmoc_check_reenroll_cmd.resp_len, 0, elanmoc_reenroll_cb); break; diff --git a/libfprint/drivers/elanmoc/elanmoc.h b/libfprint/drivers/elanmoc/elanmoc.h index 84eed7e..daf630e 100644 --- a/libfprint/drivers/elanmoc/elanmoc.h +++ b/libfprint/drivers/elanmoc/elanmoc.h @@ -135,7 +135,7 @@ static const struct elanmoc_cmd elanmoc_set_mod_cmd = { static const struct elanmoc_cmd elanmoc_check_reenroll_cmd = { .cmd_header = {0x40, 0xff, 0x22}, - .cmd_len = 5, + .cmd_len = 3 + ELAN_USERDATE_SIZE, .resp_len = 2, }; diff --git a/tests/elanmoc/custom.pcapng b/tests/elanmoc/custom.pcapng index 63d2a45..a41ac16 100644 Binary files a/tests/elanmoc/custom.pcapng and b/tests/elanmoc/custom.pcapng differ diff --git a/tests/elanmoc/device b/tests/elanmoc/device index 8876b8c..8d47c2d 100644 --- a/tests/elanmoc/device +++ b/tests/elanmoc/device @@ -1,14 +1,14 @@ -P: /devices/pci0000:00/0000:00:14.0/usb1/1-3 -N: bus/usb/001/017=1201000200000040F3047E0C06030102000109025300010100A0320904000008FF0000000921100100012215000705810240000107050102400001070582024000010705020240000107058302400001070503024000010705840240000107050402400001 -E: DEVNAME=/dev/bus/usb/001/017 +P: /devices/pci0000:00/0000:00:14.0/usb1/1-1 +N: bus/usb/001/010=1201000200000040F3047E0C05030102000109025300010103A0320904000008FF0000000921100100012215000705810240000107050102400001070582024000010705020240000107058302400001070503024000010705840240000107050402400001 +E: DEVNAME=/dev/bus/usb/001/010 E: DEVTYPE=usb_device E: DRIVER=usb -E: PRODUCT=4f3/c7e/306 +E: PRODUCT=4f3/c7e/305 E: TYPE=0/0/0 E: BUSNUM=001 -E: DEVNUM=017 +E: DEVNUM=010 E: MAJOR=189 -E: MINOR=16 +E: MINOR=9 E: SUBSYSTEM=usb E: ID_VENDOR=ELAN E: ID_VENDOR_ENC=ELAN @@ -16,208 +16,210 @@ E: ID_VENDOR_ID=04f3 E: ID_MODEL=ELAN:ARM-M4 E: ID_MODEL_ENC=ELAN:ARM-M4 E: ID_MODEL_ID=0c7e -E: ID_REVISION=0306 +E: ID_REVISION=0305 E: ID_SERIAL=ELAN_ELAN:ARM-M4 E: ID_BUS=usb E: ID_USB_INTERFACES=:ff0000: E: ID_VENDOR_FROM_DATABASE=Elan Microelectronics Corp. -E: ID_PATH=pci-0000:00:14.0-usb-0:3 -E: ID_PATH_TAG=pci-0000_00_14_0-usb-0_3 -E: ID_FOR_SEAT=usb-pci-0000_00_14_0-usb-0_3 -E: TAGS=:seat: -E: CURRENT_TAGS=:seat: -A: authorized=1\n -A: avoid_reset_quirk=0\n -A: bConfigurationValue=1\n -A: bDeviceClass=00\n -A: bDeviceProtocol=00\n -A: bDeviceSubClass=00\n -A: bMaxPacketSize0=64\n -A: bMaxPower=100mA\n -A: bNumConfigurations=1\n -A: bNumInterfaces= 1\n -A: bcdDevice=0306\n -A: bmAttributes=a0\n -A: busnum=1\n -A: configuration= -H: descriptors=1201000200000040F3047E0C06030102000109025300010100A0320904000008FF0000000921100100012215000705810240000107050102400001070582024000010705020240000107058302400001070503024000010705840240000107050402400001 -A: dev=189:16\n -A: devnum=17\n -A: devpath=3\n +E: ID_PATH=pci-0000:00:14.0-usb-0:1 +E: ID_PATH_TAG=pci-0000_00_14_0-usb-0_1 +A: authorized=1 +A: avoid_reset_quirk=0 +A: bConfigurationValue=1 +A: bDeviceClass=00 +A: bDeviceProtocol=00 +A: bDeviceSubClass=00 +A: bMaxPacketSize0=64 +A: bMaxPower=100mA +A: bNumConfigurations=1 +A: bNumInterfaces= 1 +A: bcdDevice=0305 +A: bmAttributes=a0 +A: busnum=1 +A: configuration=add909c9-e67e-4126-a6f7-1e31179e27d9 +H: descriptors=1201000200000040F3047E0C05030102000109025300010103A0320904000008FF0000000921100100012215000705810240000107050102400001070582024000010705020240000107058302400001070503024000010705840240000107050402400001 +A: dev=189:9 +A: devnum=10 +A: devpath=1 L: driver=../../../../../bus/usb/drivers/usb -L: firmware_node=../../../../LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:1c/device:1d/device:20 -A: idProduct=0c7e\n -A: idVendor=04f3\n -A: ltm_capable=no\n -A: manufacturer=ELAN\n -A: maxchild=0\n -L: port=../1-0:1.0/usb1-port3 -A: power/active_duration=2748\n -A: power/autosuspend=2\n -A: power/autosuspend_delay_ms=2000\n -A: power/connected_duration=18266\n -A: power/control=auto\n -A: power/level=auto\n -A: power/persist=1\n -A: power/runtime_active_time=2603\n -A: power/runtime_status=active\n -A: power/runtime_suspended_time=15422\n -A: power/wakeup=disabled\n -A: power/wakeup_abort_count=\n -A: power/wakeup_active=\n -A: power/wakeup_active_count=\n -A: power/wakeup_count=\n -A: power/wakeup_expire_count=\n -A: power/wakeup_last_time_ms=\n -A: power/wakeup_max_time_ms=\n -A: power/wakeup_total_time_ms=\n -A: product=ELAN:ARM-M4\n -A: quirks=0x0\n -A: removable=removable\n -A: rx_lanes=1\n -A: speed=12\n -A: tx_lanes=1\n -A: urbnum=12\n -A: version= 2.00\n +A: idProduct=0c7e +A: idVendor=04f3 +A: ltm_capable=no +A: manufacturer=ELAN +A: maxchild=0 +L: port=../1-0:1.0/usb1-port1 +A: power/active_duration=94712 +A: power/async=enabled +A: power/autosuspend=2 +A: power/autosuspend_delay_ms=2000 +A: power/connected_duration=94712 +A: power/control=on +A: power/level=on +A: power/persist=1 +A: power/runtime_active_kids=0 +A: power/runtime_active_time=94436 +A: power/runtime_enabled=forbidden +A: power/runtime_status=active +A: power/runtime_suspended_time=0 +A: power/runtime_usage=1 +A: power/wakeup=disabled +A: power/wakeup_abort_count= +A: power/wakeup_active= +A: power/wakeup_active_count= +A: power/wakeup_count= +A: power/wakeup_expire_count= +A: power/wakeup_last_time_ms= +A: power/wakeup_max_time_ms= +A: power/wakeup_total_time_ms= +A: product=ELAN:ARM-M4 +A: quirks=0x0 +A: removable=removable +A: rx_lanes=1 +A: speed=12 +A: tx_lanes=1 +A: urbnum=12 +A: version= 2.00 P: /devices/pci0000:00/0000:00:14.0/usb1 -N: bus/usb/001/001=12010002090001406B1D020012050302010109021900010100E0000904000001090000000705810304000C +N: bus/usb/001/001=12010002090001406B1D020004050302010109021900010100E0000904000001090000000705810304000C E: DEVNAME=/dev/bus/usb/001/001 E: DEVTYPE=usb_device E: DRIVER=usb -E: PRODUCT=1d6b/2/512 +E: PRODUCT=1d6b/2/504 E: TYPE=9/0/1 E: BUSNUM=001 E: DEVNUM=001 E: MAJOR=189 E: MINOR=0 E: SUBSYSTEM=usb -E: ID_VENDOR=Linux_5.12.12-300.fc34.x86_64_xhci-hcd -E: ID_VENDOR_ENC=Linux\x205.12.12-300.fc34.x86_64\x20xhci-hcd +E: ID_VENDOR=Linux_5.4.0-42-generic_xhci-hcd +E: ID_VENDOR_ENC=Linux\x205.4.0-42-generic\x20xhci-hcd E: ID_VENDOR_ID=1d6b E: ID_MODEL=xHCI_Host_Controller E: ID_MODEL_ENC=xHCI\x20Host\x20Controller E: ID_MODEL_ID=0002 -E: ID_REVISION=0512 -E: ID_SERIAL=Linux_5.12.12-300.fc34.x86_64_xhci-hcd_xHCI_Host_Controller_0000:00:14.0 +E: ID_REVISION=0504 +E: ID_SERIAL=Linux_5.4.0-42-generic_xhci-hcd_xHCI_Host_Controller_0000:00:14.0 E: ID_SERIAL_SHORT=0000:00:14.0 E: ID_BUS=usb E: ID_USB_INTERFACES=:090000: E: ID_VENDOR_FROM_DATABASE=Linux Foundation -E: ID_AUTOSUSPEND=1 E: ID_MODEL_FROM_DATABASE=2.0 root hub E: ID_PATH=pci-0000:00:14.0 E: ID_PATH_TAG=pci-0000_00_14_0 E: ID_FOR_SEAT=usb-pci-0000_00_14_0 E: TAGS=:seat: -E: CURRENT_TAGS=:seat: -A: authorized=1\n -A: authorized_default=1\n -A: avoid_reset_quirk=0\n -A: bConfigurationValue=1\n -A: bDeviceClass=09\n -A: bDeviceProtocol=01\n -A: bDeviceSubClass=00\n -A: bMaxPacketSize0=64\n -A: bMaxPower=0mA\n -A: bNumConfigurations=1\n -A: bNumInterfaces= 1\n -A: bcdDevice=0512\n -A: bmAttributes=e0\n -A: busnum=1\n +A: authorized=1 +A: authorized_default=1 +A: avoid_reset_quirk=0 +A: bConfigurationValue=1 +A: bDeviceClass=09 +A: bDeviceProtocol=01 +A: bDeviceSubClass=00 +A: bMaxPacketSize0=64 +A: bMaxPower=0mA +A: bNumConfigurations=1 +A: bNumInterfaces= 1 +A: bcdDevice=0504 +A: bmAttributes=e0 +A: busnum=1 A: configuration= -H: descriptors=12010002090001406B1D020012050302010109021900010100E0000904000001090000000705810304000C -A: dev=189:0\n -A: devnum=1\n -A: devpath=0\n +H: descriptors=12010002090001406B1D020004050302010109021900010100E0000904000001090000000705810304000C +A: dev=189:0 +A: devnum=1 +A: devpath=0 L: driver=../../../../bus/usb/drivers/usb -L: firmware_node=../../../LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:1c/device:1d -A: idProduct=0002\n -A: idVendor=1d6b\n -A: interface_authorized_default=1\n -A: ltm_capable=no\n -A: manufacturer=Linux 5.12.12-300.fc34.x86_64 xhci-hcd\n -A: maxchild=12\n -A: power/active_duration=187216979\n -A: power/autosuspend=0\n -A: power/autosuspend_delay_ms=0\n -A: power/connected_duration=187239996\n -A: power/control=auto\n -A: power/level=auto\n -A: power/runtime_active_time=187220224\n -A: power/runtime_status=active\n -A: power/runtime_suspended_time=0\n -A: power/wakeup=disabled\n -A: power/wakeup_abort_count=\n -A: power/wakeup_active=\n -A: power/wakeup_active_count=\n -A: power/wakeup_count=\n -A: power/wakeup_expire_count=\n -A: power/wakeup_last_time_ms=\n -A: power/wakeup_max_time_ms=\n -A: power/wakeup_total_time_ms=\n -A: product=xHCI Host Controller\n -A: quirks=0x0\n -A: removable=unknown\n -A: rx_lanes=1\n -A: serial=0000:00:14.0\n -A: speed=480\n -A: tx_lanes=1\n -A: urbnum=3372\n -A: version= 2.00\n +A: idProduct=0002 +A: idVendor=1d6b +A: interface_authorized_default=1 +A: ltm_capable=no +A: manufacturer=Linux 5.4.0-42-generic xhci-hcd +A: maxchild=12 +A: power/active_duration=74604360 +A: power/async=enabled +A: power/autosuspend=0 +A: power/autosuspend_delay_ms=0 +A: power/connected_duration=74606456 +A: power/control=auto +A: power/level=auto +A: power/runtime_active_kids=4 +A: power/runtime_active_time=74605838 +A: power/runtime_enabled=enabled +A: power/runtime_status=active +A: power/runtime_suspended_time=0 +A: power/runtime_usage=0 +A: power/wakeup=disabled +A: power/wakeup_abort_count= +A: power/wakeup_active= +A: power/wakeup_active_count= +A: power/wakeup_count= +A: power/wakeup_expire_count= +A: power/wakeup_last_time_ms= +A: power/wakeup_max_time_ms= +A: power/wakeup_total_time_ms= +A: product=xHCI Host Controller +A: quirks=0x0 +A: removable=unknown +A: rx_lanes=1 +A: serial=0000:00:14.0 +A: speed=480 +A: tx_lanes=1 +A: urbnum=490 +A: version= 2.00 P: /devices/pci0000:00/0000:00:14.0 E: DRIVER=xhci_hcd E: PCI_CLASS=C0330 E: PCI_ID=8086:9DED -E: PCI_SUBSYS_ID=17AA:2292 +E: PCI_SUBSYS_ID=103C:85EF E: PCI_SLOT_NAME=0000:00:14.0 -E: MODALIAS=pci:v00008086d00009DEDsv000017AAsd00002292bc0Csc03i30 +E: MODALIAS=pci:v00008086d00009DEDsv0000103Csd000085EFbc0Csc03i30 E: SUBSYSTEM=pci E: ID_PCI_CLASS_FROM_DATABASE=Serial bus controller E: ID_PCI_SUBCLASS_FROM_DATABASE=USB controller E: ID_PCI_INTERFACE_FROM_DATABASE=XHCI E: ID_VENDOR_FROM_DATABASE=Intel Corporation -E: ID_AUTOSUSPEND=1 E: ID_MODEL_FROM_DATABASE=Cannon Point-LP USB 3.1 xHCI Controller -A: ari_enabled=0\n -A: broken_parity_status=0\n -A: class=0x0c0330\n -H: config=8680ED9D060490021130030C00008000040022EA000000000000000000000000000000000000000000000000AA179222000000007000000000000000FF010000 -A: consistent_dma_mask_bits=64\n -A: d3cold_allowed=1\n -A: dbc=disabled\n -A: device=0x9ded\n -A: dma_mask_bits=64\n +A: ari_enabled=0 +A: broken_parity_status=0 +A: class=0x0c0330 +H: config=8680ED9D060490023030030C00008000040030A10000000000000000000000000000000000000000000000003C10EF85000000007000000000000000FF010000FD0134808FC6FF8300000000000000007F6DDC0F00000000181C030400000000316000000000000000000000000000000180C2C1080000000000000000000000059087007802E0FE0000000000000000090014F01000400100000000C10A080000080E00001800008F40020000010000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000B50F300112000000 +A: consistent_dma_mask_bits=64 +A: d3cold_allowed=1 +A: dbc=disabled +A: device=0x9ded +A: dma_mask_bits=64 L: driver=../../../bus/pci/drivers/xhci_hcd -A: driver_override=(null)\n -A: enable=1\n -L: firmware_node=../../LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:1c -A: irq=128\n -A: local_cpulist=0-7\n -A: local_cpus=ff\n -A: modalias=pci:v00008086d00009DEDsv000017AAsd00002292bc0Csc03i30\n -A: msi_bus=1\n -A: msi_irqs/128=msi\n -A: numa_node=-1\n -A: pools=poolinfo - 0.1\nbuffer-2048 0 0 2048 0\nbuffer-512 0 0 512 0\nbuffer-128 0 0 128 0\nbuffer-32 0 0 32 0\nxHCI 1KB stream ctx arrays 0 0 1024 0\nxHCI 256 byte stream ctx arrays 0 0 256 0\nxHCI input/output contexts 11 12 2112 12\nxHCI ring segments 58 62 4096 62\nbuffer-2048 0 0 2048 0\nbuffer-512 0 0 512 0\nbuffer-128 6 32 128 1\nbuffer-32 0 0 32 0\n -A: power/control=on\n -A: power/runtime_active_time=187221117\n -A: power/runtime_status=active\n -A: power/runtime_suspended_time=0\n -A: power/wakeup=enabled\n -A: power/wakeup_abort_count=0\n -A: power/wakeup_active=0\n -A: power/wakeup_active_count=0\n -A: power/wakeup_count=0\n -A: power/wakeup_expire_count=0\n -A: power/wakeup_last_time_ms=0\n -A: power/wakeup_max_time_ms=0\n -A: power/wakeup_total_time_ms=0\n -A: power_state=D0\n -A: resource=0x00000000ea220000 0x00000000ea22ffff 0x0000000000140204\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n -A: revision=0x11\n -A: subsystem_device=0x2292\n -A: subsystem_vendor=0x17aa\n -A: vendor=0x8086\n +A: driver_override=(null) +A: enable=1 +A: irq=124 +A: local_cpulist=0-3 +A: local_cpus=f +A: modalias=pci:v00008086d00009DEDsv0000103Csd000085EFbc0Csc03i30 +A: msi_bus=1 +A: msi_irqs/124=msi +A: numa_node=-1 +A: pools=poolinfo - 0.1\nbuffer-2048 0 0 2048 0\nbuffer-512 0 0 512 0\nbuffer-128 0 32 128 1\nbuffer-32 0 0 32 0\nxHCI 1KB stream ctx arrays 0 0 1024 0\nxHCI 256 byte stream ctx arrays 0 0 256 0\nxHCI input/output contexts 11 12 2112 12\nxHCI ring segments 54 54 4096 54\nbuffer-2048 0 0 2048 0\nbuffer-512 0 0 512 0\nbuffer-128 9 32 128 1\nbuffer-32 0 0 32 0 +A: power/async=enabled +A: power/control=auto +A: power/runtime_active_kids=1 +A: power/runtime_active_time=74606194 +A: power/runtime_enabled=enabled +A: power/runtime_status=active +A: power/runtime_suspended_time=0 +A: power/runtime_usage=0 +A: power/wakeup=enabled +A: power/wakeup_abort_count=0 +A: power/wakeup_active=0 +A: power/wakeup_active_count=0 +A: power/wakeup_count=0 +A: power/wakeup_expire_count=0 +A: power/wakeup_last_time_ms=0 +A: power/wakeup_max_time_ms=0 +A: power/wakeup_total_time_ms=0 +A: resource=0x00000000a1300000 0x00000000a130ffff 0x0000000000140204\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000 +A: revision=0x30 +A: subsystem_device=0x85ef +A: subsystem_vendor=0x103c +A: vendor=0x8086