Commit Graph

167 Commits

Author SHA1 Message Date
Pol Henarejos
f8974ff183 Add PIN policy check on AUTHENTICATE.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2024-03-26 19:52:47 +01:00
Pol Henarejos
a49aab43d7 Added support for RSA 3072 and RSA 4096 import and fixed RSA signature/decryption.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2024-03-26 19:41:06 +01:00
Pol Henarejos
f20449fee3 Fix RSA signature.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2024-03-26 19:38:17 +01:00
Pol Henarejos
85b6c90d39 Added support for key import.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2024-03-26 13:00:42 +01:00
Pol Henarejos
9fe59a551a Added support for ATTESTATION.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2024-03-26 12:13:51 +01:00
Pol Henarejos
ad5e98ce89 Fix PUK change.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2024-03-25 13:32:57 +01:00
Pol Henarejos
a5bb1cd721 Add 3DES support.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2024-03-25 13:25:40 +01:00
Pol Henarejos
e2bbe927af Only mark MGM if challenge is the same. Otherwise, send OK silently.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2024-03-25 12:43:16 +01:00
Pol Henarejos
c35beb5b0e Reset PIN status on select.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2024-03-25 11:43:10 +01:00
Pol Henarejos
beabcdd8a6 Add RESET command.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2024-03-25 11:42:24 +01:00
Pol Henarejos
d45a0bfc20 Fix verify on change pin.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2024-03-24 02:19:55 +01:00
Pol Henarejos
61261aa1d6 Add meta data when generatin keypair and returning public key on get metadata.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2024-03-24 02:19:39 +01:00
Pol Henarejos
6f1af52510 Add missing EF_PW_RETRIES file.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2024-03-24 01:23:58 +01:00
Pol Henarejos
1c10b0186e Added support for SET RETRIES.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2024-03-22 20:38:01 +01:00
Pol Henarejos
e0e1b3758e Added support for dynamic number of maximum retries. 3 by default
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2024-03-22 20:37:47 +01:00
Pol Henarejos
e3112d5cdf Added support for RESET RETRY.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2024-03-22 20:14:03 +01:00
Pol Henarejos
13f848dafb Added CHANGE PIN command.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2024-03-22 20:07:59 +01:00
Pol Henarejos
36420ef098 Added support for move-key.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2024-03-21 23:12:58 +01:00
Pol Henarejos
9de33f8969 Fix RETIRED18 comment.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2024-03-21 23:12:45 +01:00
Pol Henarejos
17d476a9e2 Fix crash on PIN change.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2024-03-21 22:01:41 +01:00
Pol Henarejos
2e70af60db Add support for SET_MGM_KEY.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2024-03-21 22:01:09 +01:00
Pol Henarejos
62743bbb3c Fix ECDSA signature encoding.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2024-03-20 10:12:16 +01:00
Pol Henarejos
1197389e02 Fix response length encoding.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2024-03-20 10:11:03 +01:00
Pol Henarejos
ec08c06196 Added support for PUT DATA.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2024-03-20 00:06:42 +01:00
Pol Henarejos
2f24c3d9a8 Added support for PIV signature.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2024-03-19 17:56:36 +01:00
Pol Henarejos
0b7c8da592 KEK use is optional.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2024-03-19 17:56:00 +01:00
Pol Henarejos
d96bbb9b4b Use new asn1 structs.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2024-03-14 23:22:19 +01:00
Pol Henarejos
ebec1b1022 Add PIV asymmetric keygen.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2024-03-14 23:22:01 +01:00
Pol Henarejos
4cfa2a16bf Added AUTHENTICATE support.
Note that CARD MGM key is NOT encrypted with DEK, since it has to be accessed even without PIN.

Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2024-03-12 22:04:19 +01:00
Pol Henarejos
817d8b39ec Added first commit of Pico OpenPGP with PIV support.
It shares the PIN of OpenPGP.

Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2024-03-06 18:54:30 +01:00
Pol Henarejos
21e3ba11c6 Upgrade to version 1.12.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2024-02-06 14:15:22 +01:00
Pol Henarejos
7f7e94c639 Use new names and selecting aid.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2023-11-06 15:23:54 +01:00
Pol Henarejos
91bcd9f9cd Fix EdDSA signature return format.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2023-09-05 01:04:44 +02:00
Pol Henarejos
865eafb1f3 Fix Curve25519 key import.
For an unknown reason, curve25519 keys are imported in big endian instead of little endian.

Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2023-09-05 00:25:39 +02:00
Pol Henarejos
88f5bbfd58 Added support for Ed25519.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2023-09-05 00:18:06 +02:00
Pol Henarejos
9ea894b60b Use mbedtls read/write keys wrappers.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2023-08-28 01:25:28 +02:00
Pol Henarejos
b815dc35c8 Fix initializing DEK for pw3.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2023-05-17 00:04:57 +02:00
Pol Henarejos
5eb6822bf5 Update code style.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2023-03-04 14:08:47 +01:00
Pol Henarejos
73c1bf786d Upgrade to v1.10
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2023-02-06 00:03:18 +01:00
Pol Henarejos
3c7df3aa42 Fix checking length in ECDH.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2023-02-04 23:44:55 +01:00
Pol Henarejos
e5871d5791 Fix returning algo attributes for authentication key.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2023-02-04 21:07:10 +01:00
Pol Henarejos
7ccbb0103f Fix computing length of algorithm attributes.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2023-02-04 21:06:33 +01:00
Pol Henarejos
8e03ce28a3 Fix returning signature in some cases.
In some particular cases where signature has a 0 prepended, mpi is written without that which caused variable length signatures. Now it returns the signature whose length is always the same.

Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2023-02-04 20:28:33 +01:00
Pol Henarejos
b300ed87f3 Fix returning ecdsa response for keys > 512 bits.
In that case, TLV shall contain 81 length.

Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2023-02-04 20:27:20 +01:00
Pol Henarejos
7b17cc7b49 Public point is now computed when private key is imported.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2023-02-04 19:44:44 +01:00
Pol Henarejos
abf190f767 Tuned returning public key information for ECDSA.
Despite it was not a bug, it seems some ASN.1 readers do not recognize 0x81/0x82 tags when len < 128.

Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2023-02-04 19:44:00 +01:00
Pol Henarejos
d9ed002af2 Signature counter is only increased on PSO:SIGN and not for authentication.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2023-02-04 01:31:34 +01:00
Pol Henarejos
e1407636b8 Fix DEK loading when resetting code is used.
If no pw3, on cmd_reset_retry pw1 is changed without providing the original, since it is done via rc. Thus, there is no way to recover DEK. To solve, another ciphered field is added for loading DEK via rc. In case rc is changed (PUT DATA), DEK is reciphered with new rc.

Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2023-02-04 01:23:03 +01:00
Pol Henarejos
d117442825 Adding emulation support.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2023-02-03 23:28:12 +01:00
Pol Henarejos
365acbd68b Fix setting RC.
When setting RC it was not hashed and then it was not recognized.

Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2023-02-03 20:21:14 +01:00