Commit Graph

162 Commits

Author SHA1 Message Date
Pol Henarejos
0745838e3f Fix when receiving a packet in the middle of a transmission. RX shall be always processed.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2024-08-20 16:39:44 +02:00
Pol Henarejos
e1dd57067e Fix when a keepalive packet collides with an ongoing transmission.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2024-08-20 16:39:08 +02:00
Pol Henarejos
38f0e2cc3a select_app now invokes U2F or FIDO depending on the message.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2024-08-20 14:29:11 +02:00
Pol Henarejos
d379a39bd6 keepalive should be sent without conditions and without reseting any buffer.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2024-08-19 16:44:58 +02:00
Pol Henarejos
7c76a71f33 Fix emulation build.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2024-08-19 13:18:03 +02:00
Pol Henarejos
11447371fe Rewritten continuous flow for HID.
HID uses complete_cb to send the next packet and not the value returned by tud_write. Therefore, no other writes can happen in between of a writing packet if fails.

This ensures a proper interface multiplexing and continuous flow.

Also, the read pointer is used to multiplex usb packets.

Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2024-08-19 00:06:24 +02:00
Pol Henarejos
4e6ebc5c2a TinyUSB uses interface argument for that driver. Therefore, for vendord driver, interface starts at 0, even the HID interface is used.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2024-08-19 00:03:30 +02:00
Pol Henarejos
8fdd1a2305 Add usb.h declarations.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2024-08-19 00:02:32 +02:00
Pol Henarejos
0f24d17456 thread management is now in usb stuff. It ensures to launch an apdu/cbor thread depending on the processed packet.
It also includes a usb_rx_more to advance the rx pointer. It is useful to multiplex usb packets.

Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2024-08-19 00:02:15 +02:00
Pol Henarejos
f4ad8e1af2 Fix idVendor, idProduct allocation for Pico Patcher.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2024-07-15 14:41:08 +02:00
Pol Henarejos
5c11db54ae BCD must be 2.0 for compatibility with windows.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2024-06-27 21:01:22 +02:00
Pol Henarejos
246ed5cf19 Fix when setting options and taking VIDPID values.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2024-06-21 22:07:28 +02:00
Pol Henarejos
218441a45a Added support for enable/disable Web CCID on the fly.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2024-06-19 23:28:55 +02:00
Pol Henarejos
a0e55ebfae Fix tusb initialization.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2024-06-19 22:30:07 +02:00
Pol Henarejos
59597a0a68 Merge branch 'esp32' 2024-06-19 22:01:46 +02:00
Pol Henarejos
d458250887 Add PHY options and PHY_WCID.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2024-06-19 22:00:55 +02:00
Pol Henarejos
9a607707f0 Merge branch 'main' into esp32
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2024-05-31 17:12:12 +02:00
Pol Henarejos
88071e1172 Some fixes.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2024-05-05 00:56:51 +02:00
Pol Henarejos
af20b4f894 Merge branch 'main' into esp32
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2024-04-28 19:26:08 +02:00
Pol Henarejos
f0074e5367 CCID and WCID structs not used.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2024-04-22 23:35:19 +02:00
Pol Henarejos
0535138211 Only T=1 protocol is supported.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2024-04-21 22:52:16 +02:00
Pol Henarejos
a5f19a1356 Only T=1 protocol is supported.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2024-04-21 22:51:17 +02:00
Pol Henarejos
fc5f4299cc Fix emulation build.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2024-04-17 11:56:54 +02:00
Pol Henarejos
cf1e076453 Introducing EF_PHY to store PHY (VIDPID and LED no.).
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2024-04-17 11:40:01 +02:00
Pol Henarejos
22d4e62952 Add procedure to compute unique ID at startup.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2024-04-17 11:31:11 +02:00
Pol Henarejos
019c5929a2 Remove carriage return \r for better debug.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2024-04-17 11:21:10 +02:00
Pol Henarejos
ade730ffb5 Introducing EF_PHY to store PHY (VIDPID and LED no.).
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2024-04-16 23:22:11 +02:00
Pol Henarejos
6f7ab69a9d Added support for dynamic USB_VID / USB_PID.
It can be changed on runtime without rebuilding or patching.

Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2024-04-16 00:04:23 +02:00
Pol Henarejos
8d86a8c56b Add procedure to compute unique ID at startup.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2024-04-15 23:44:51 +02:00
Pol Henarejos
a7be923783 ITF WCID can be compiled separately.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2024-04-15 23:44:12 +02:00
Pol Henarejos
7def35f87c Remove carriage return \r for better debug.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2024-04-10 18:16:38 +02:00
Pol Henarejos
06fd241f49 Second round to make it work for ESP32S3.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2024-04-08 16:47:16 +02:00
Pol Henarejos
49f05e9e13 Now it builds the image.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2024-04-05 17:57:56 +02:00
Pol Henarejos
023039deb2 Attempting to add support to esp32s3.
Will it work? Who knows...

Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2024-04-04 21:01:55 +02:00
Pol Henarejos
3d0a27c834 Add 3DES support.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2024-03-25 13:25:29 +01:00
Pol Henarejos
e055d4cfc9 Added support for WebCCID.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2024-03-13 17:24:20 +01:00
Pol Henarejos
9fdae7ef31 Fix HID compilation with new sizes.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2024-03-13 17:24:20 +01:00
Pol Henarejos
caddf87c23 Fix Windows emulation build.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2024-01-09 11:43:47 +01:00
Pol Henarejos
29837e5691 Fix Pico build.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2024-01-02 20:43:15 +01:00
Pol Henarejos
bbc06efe67 Fix byte overwrite for long chained RAPDU.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2024-01-02 01:58:09 +01:00
Pol Henarejos
b663f5bebf Some fixes for emulation.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2024-01-01 20:56:36 +01:00
Pol Henarejos
a9dc6fd7f8 Added support for building emulation in Windows.
It has not been tested but it should not break any linux build.

Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2024-01-01 01:54:49 +01:00
Pol Henarejos
adf53b4231 Fix ATR overwrite.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2023-12-29 19:07:02 +01:00
Pol Henarejos
d0dc786f74 Rename project to Pico Keys SDK to avoid confusions with Pico Fido and Pico OpenPGP.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2023-11-06 13:32:28 +01:00
Pol Henarejos
899a7ed609 Move some functions from HID to fido callbacks.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2023-11-06 13:01:10 +01:00
Pol Henarejos
d253889747 Use get_version_major and get_version_minor as pointers.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2023-11-06 11:57:09 +01:00
Pol Henarejos
c9cb330a07 Move some OTP functions from HID to OTP.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2023-11-06 11:49:18 +01:00
Pol Henarejos
d580194030 Fix reading OTP packets from HID interface.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2023-10-31 17:34:09 +01:00
Pol Henarejos
0663c694ef Move timers.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2023-10-31 17:33:47 +01:00
Pol Henarejos
3182d1e2e6 Fixed potential crash.
board_button_read() disables interrupts and cannot be parallelized when flash is being used. It is imperative that core1 must not use flash during the board_button_read(). Since it is not feasible to put mutexes in *every* flash memory read/write in core1, it is preferable to wait until core1 finishes command execution.

Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2023-10-31 00:40:38 +01:00