Commit graph

142 commits

Author SHA1 Message Date
Pol Henarejos
c4178fda4b
Fix when multiple shutdowns are sent
Thread queues are empty on every start to avoid ancient messages from previous sessions.

Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-11-24 20:21:06 +01:00
Pol Henarejos
3def9bff4f
Added PKCS5 source for key derivation.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-11-14 13:07:24 +01:00
Pol Henarejos
fccee34a1e
In asn1_find_tag(), tag_data and tag_len are not modified if not found.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-11-11 14:30:34 +01:00
Pol Henarejos
28170100cc
Adding support for Curve25519 and Curve448.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-11-09 16:49:45 +01:00
Pol Henarejos
74210d7af0
Fix chaining more than 2 chunks.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-10-30 23:41:56 +01:00
Pol Henarejos
b2c2980d73
Fix secure channel with no payload.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-10-30 21:10:35 +01:00
Pol Henarejos
4a8a6728c7
Adding support for specific vendor HID command (0x41).
It is a self implementation, based on CBOR command.
data[0] conveys the command and the contents mapped in CBOR encoding.
The map uses the authConfig template, where the fist item in the map is the subcommand (enable/disable at this moment), the second is a map of the parameters, the third and fourth are the pinUvParam and pinUvProtocol.

With this format only a single vendor HID command is necessary (0x41), which will be used for all my own commands, by using the command id in data[0] like with CBOR.

Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-10-29 19:41:00 +02:00
Pol Henarejos
5bdc7ab202
Adding specific vendor command to unlock the device.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-10-17 17:38:58 +02:00
Pol Henarejos
1e66e51595
Adding ENABLE_DELAYED_BOOT flag for delayed boot compilation.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-10-05 11:09:24 +02:00
Pol Henarejos
e5fe638c68
Fix related with reallocation under some optimization situations.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-10-05 09:33:18 +02:00
Pol Henarejos
8f14db677e
Fix strange bug when usb cannot write.
In this case, the buffer is kept until the next success call.

Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-09-29 23:11:49 +02:00
Pol Henarejos
d0fe447416
Fix PING with no data.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-09-29 16:59:30 +02:00
Pol Henarejos
27d897be6c
Adding delete_file().
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-09-29 09:05:39 +02:00
Pol Henarejos
c5095dfec6
Only send response apdu if sw != 0.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-09-27 22:10:47 +02:00
Pol Henarejos
2aff75a3ec
Fix keepalive msg.
Only sent when CBOR is initiatied.

Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-09-27 22:09:16 +02:00
Pol Henarejos
286858c907
Compact debug.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-09-27 22:07:15 +02:00
Pol Henarejos
815e865ced
Moving some defines.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-09-27 12:23:43 +02:00
Pol Henarejos
3912775ccb
Fix writting large packets.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-09-27 12:23:16 +02:00
Pol Henarejos
b70a7474f2
Possibly not necessary, as it returns 0 if there is no available.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-09-25 23:35:35 +02:00
Pol Henarejos
96641e79e5
Moving to MbedTLS 3.2.1
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-09-25 23:33:12 +02:00
Pol Henarejos
fa371643a1
Fix writing large usb buffers.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-09-25 23:23:07 +02:00
Pol Henarejos
52a2ff8b34
Adding chacha sources, as it is enabled in config.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-09-25 20:34:51 +02:00
Pol Henarejos
55d4839e21
Adding missing function to ccid driver.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-09-25 20:34:18 +02:00
Pol Henarejos
657913d29a
Upgrading version
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-09-25 18:14:18 +02:00
Pol Henarejos
18fa1d7f37
Reseting previous command if new arrives.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-09-25 18:09:37 +02:00
Pol Henarejos
f123108c3e
Added variable to cancel button press.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-09-23 18:07:38 +02:00
Pol Henarejos
f8590ba8c7
Added CTAPHID_CANCEL support.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-09-23 18:07:27 +02:00
Pol Henarejos
4d7101b802
Fix send_keepalive with auxiliary buffer.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-09-22 23:53:55 +02:00
Pol Henarejos
7fded7234b
Adding extra buffer to tx.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-09-22 22:52:56 +02:00
Pol Henarejos
988d4e23c2
Fix combining APDU MSG and keepalive.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-09-22 22:52:41 +02:00
Pol Henarejos
c23f17107a
Random functions shall be called for each core, otherwise it will hung.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-09-22 20:18:05 +02:00
Pol Henarejos
91e2b7f643
Fix reading corrupted memory.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-09-22 19:24:17 +02:00
Pol Henarejos
3092da23ed
card_init_core1() shall be called from every thread launched on core1.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-09-22 19:24:07 +02:00
Pol Henarejos
e29521fcf6
Multiple bug fixes to pass HID tests.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-09-22 19:23:39 +02:00
Pol Henarejos
d2e54b04db
Adding variable button timeout.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-09-22 19:22:44 +02:00
Pol Henarejos
4ab68cc822
HID fixes.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-09-22 14:05:39 +02:00
Pol Henarejos
e1914556ec
Fix debug_data
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-09-22 09:59:02 +02:00
Pol Henarejos
287be74921
Adding macro for easy debug.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-09-22 09:29:43 +02:00
Pol Henarejos
5a4aff7008
Adding KEEP_ALIVE response.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-09-20 15:31:34 +02:00
Pol Henarejos
8b97791d8f
Reorganizing core0/core1 split.
Now CBOR and APDU (i.e., intensive processing) areas are executed on core1, while core0 is dedicated for hardware tasks (usb, button, led, etc.).
2022-09-20 14:39:59 +02:00
Pol Henarejos
847005d94f
Adding support for clientPIN.
It does not pass the tests yet.

Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-09-19 17:20:52 +02:00
Pol Henarejos
68f43f3cb2
Adding functions for calling random in core0.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-09-16 00:49:10 +02:00
Pol Henarejos
4c49e59edc
Major CTAP refactoring.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-09-15 14:16:40 +02:00
Pol Henarejos
633593aae3
Adding chacha sources.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-09-15 14:16:30 +02:00
Pol Henarejos
42f3c67c61
Adding Credentials structure.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-09-14 17:27:00 +02:00
Pol Henarejos
493a88538a
Adding support for ChaCha20 with Poly1305.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-09-14 17:26:45 +02:00
Pol Henarejos
607f7c50d4
Adding some macros for CBOR parsing.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-09-14 00:08:05 +02:00
Pol Henarejos
2cb59d57d2
Adding first attempt of adding make_credential.
It requires lot of efforts to parse CBOR incoming data.

Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-09-13 20:37:15 +02:00
Pol Henarejos
a8e1fe5842
Adding CBOR parser routines.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-09-13 20:36:27 +02:00
Pol Henarejos
d1530733a2
Lots of fixes with CBOR encoding cbor_get_info().
- Numeric fields shall be encoded with uint and NOT with simple, despite are < 24.
- maxCredentialCountInList and maxCredentialIdLength only accept uint values.
- up shall not be present (assumed True always).
- Also added cbor_reset(). It does nothing but ok.

Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-09-12 00:50:38 +02:00