Commit Graph
100 Commits
Author SHA1 Message Date
Pol Henarejos 1288d25999 Adding workflow for autobuild.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2023-02-04 23:46:20 +01:00
Pol Henarejos 51742153d0 Adding checks for platform.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2023-02-04 23:45:31 +01:00
Pol Henarejos 1863971a1b It can be safely checked.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2023-02-04 23:45:07 +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 fda29e0e61 Adding verifies.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2023-02-04 01:44:44 +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
Pol Henarejos f6facc1154 When a private key is imported, a public key is generated and stored.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2023-02-03 20:08:26 +01:00
Pol Henarejos e914d5f576 Identify before running this test.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2023-02-03 19:17:52 +01:00
Pol Henarejos 5e257729a3 Some fixes.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2023-02-03 19:17:42 +01:00
Pol Henarejos 89ed242fcd Fix historical bytes and ext capabilities test.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2023-02-03 17:44:06 +01:00
Pol Henarejos 4a629fe53f Fix returning size of some DO.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2023-02-03 17:27:02 +01:00
Pol Henarejos 22689b3784 Fix returning DO.
If the TLV container contains a single DO, the header is removed.

Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2023-02-03 17:25:18 +01:00
Pol Henarejos 4f1cd1f2f8 Fix returning sig counter.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2023-02-03 16:55:32 +01:00
Pol Henarejos c9ef78b3c9 Fix returning app data.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2023-02-03 16:52:55 +01:00
Pol Henarejos 6c81fe4b1c Fix test sex.
By default, sex is \x30.

Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2023-02-03 16:49:30 +01:00
Pol Henarejos 3fe15c815c Fix returning chunked data.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2023-02-03 16:47:46 +01:00
Pol Henarejos cf53fdd903 Adapt select_applet to new call.
Also fixes sex test.

Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2023-02-03 16:32:28 +01:00
Pol Henarejos 29b4aec24e Adapting Cmakefile to new HSM SDK.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2023-02-03 16:32:03 +01:00
Pol Henarejos 0c63c457e7 Upgrading to newer Pico HSM SDK.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2023-02-03 16:31:51 +01:00
Pol Henarejos 2c24c348b5 Adding tests for OpenPGP.
All tests are taken from gnuk. Reader is migrated from pyusb to pyscard.

Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2023-02-02 23:08:49 +01:00
Pol Henarejos 32868dfc31 Fix signature counter storage.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2023-01-09 17:33:43 +01:00
Pol Henarejos 303116ffea Fix P1P2 on termination check.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2023-01-09 17:10:12 +01:00
Pol Henarejos 23824afc1f Fix importing data with TLV length > 0x7f.
Should fix #3.

Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-11-29 20:21:47 +01:00
Pol Henarejos 2c5b67597e Moving pointer of HSM SDK.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-11-28 18:56:16 +01:00
Pol Henarejos bcefdb3c84 Upgrading patcher to HSM SDK 3.4
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-11-25 14:26:06 +01:00
Pol Henarejos 685ee2bbd5 Moving pointer to Pico HSM SDK 3.4
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-11-25 14:25:50 +01:00
Pol Henarejos 6ae2a91e55 More fixes to build tool.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-11-23 11:09:38 +01:00
Pol Henarejos 2373f21994 Fix build tool.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-11-23 11:04:12 +01:00
Pol Henarejos 25bddb7230 Upgrading to version 1.8.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-11-23 11:00:44 +01:00
Pol Henarejos 418fa9c143 Fix patch tool.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-11-23 10:59:08 +01:00
Pol Henarejos ce9ef47bb2 Using pico_hsm_sdk cmake library.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-08-31 14:18:37 +02:00
Pol Henarejos 603963123b Upgrade pico-hsm-sdk to v3.0
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-08-31 14:12:55 +02:00
Pol Henarejos 79ce35e944 Fix endianness of vid/pid patcher.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-08-31 14:12:26 +02:00
Pol Henarejos 5ddfa6382b Upgrading to new pico-hsm-sdk module.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-08-30 17:48:44 +02:00
Pol Henarejos 9a99baafca Renaming submodule.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-08-30 17:48:02 +02:00
Pol Henarejos 35fb97c58f Upgraded to version 1.6
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-06-06 14:40:34 +02:00
Pol Henarejos 3fa5dbccd0 Upgrade patch tool to version 2.0 of Pico CCID.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-06-06 14:40:19 +02:00
Pol Henarejos b674708955 Added fixes for Pico CCID.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-06-06 14:38:13 +02:00
Pol Henarejos 86b508f2ae Updated README with new Pico CCID stack.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-06-06 01:47:18 +02:00
Pol Henarejos 167b6d9770 Adapted to Pico CCID 2.0.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-06-06 01:01:52 +02:00
Pol Henarejos d0c167345e Add fmd flag when selecting the applet.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-05-24 23:31:12 +02:00
Pol Henarejos ca6affaf5d Adding private identifiers for cardholder certificates.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-05-20 19:03:22 +02:00
Pol Henarejos 7a77b31760 Adding INS GET NEXT DATA
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-05-20 19:02:55 +02:00
Pol Henarejos 9f069a7e31 When PUT DATA or GET DATA with previously selected EF (via SELECT or SELECT DATA), it puts/writes the data into the selected EF.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-05-15 19:48:31 +02:00
Pol Henarejos a0384f67ca Adding INS A5 to select DO with multiple instances.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-05-15 19:40:17 +02:00
Pol Henarejos 32c6f60b49 Adding INS F1 to get version.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-05-15 18:58:35 +02:00
Pol Henarejos 0ab5526dac Adding FMD when selecting app by AID.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-05-15 18:50:45 +02:00
Pol Henarejos eb066472b1 Adding AES support for symmetric encryption and decryption. However, there is no any software that supports AES. So, no tested feature.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-05-13 17:44:09 +02:00
Pol Henarejos a2d1c5cf22 Adding key import.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-05-12 23:49:26 +02:00
Pol Henarejos 436c0744d0 Added clarification about Gnuk and Pico OpenPGP.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-05-09 19:05:50 +02:00
Pol Henarejos 223a1e015b Updated README with new features.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-05-09 19:03:31 +02:00
Pol Henarejos 1491b9d36d Upgrading version to 1.4.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-05-09 18:56:14 +02:00
Pol Henarejos 74aa99afa6 Adding Manage Security Environment (INS 22).
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-05-09 18:54:36 +02:00
Pol Henarejos c68fe30077 Enabling KDF.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-05-06 19:44:27 +02:00
Pol Henarejos 21284a9375 When a DO is not found, it should return REFERENCE_NOT_FOUND instead of FILE_NOT_FOUND, which reserved for selecting applet.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-05-06 19:13:26 +02:00
Pol Henarejos 151f6d134e Adding UIF DO (D6, D7 and D8).
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-05-05 22:35:17 +02:00
Pol Henarejos d95d19a85b Adding press-to-confirm when loading a private key.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-05-05 20:55:41 +02:00
Pol Henarejos 4e2f3ce38d Upgrading pico-ccid.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-05-05 20:11:56 +02:00
Pol Henarejos 6ddb118bbf Small fix.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-04-29 15:49:39 +02:00
Pol Henarejos 6c4cb4b12a README uses markdown.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-04-29 15:47:53 +02:00
Pol Henarejos 456dd24fe5 Script to build Pico OpenPGP releases.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-04-29 15:47:16 +02:00
Pol Henarejos e13a4fc121 File for live patching to burn custom VID/PID.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-04-29 15:47:02 +02:00
Pol Henarejos 49cee088b8 Since we cannot use version of APDU (as it always has to be 3.4 for OpenPGP), we define the version here.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-04-29 15:46:45 +02:00
Pol Henarejos 74197de147 Adding README
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-04-29 15:46:10 +02:00
Pol Henarejos 193220e59e Adding DEK to private keys.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-04-27 20:16:21 +02:00
Pol Henarejos 06745515eb Return SW_OK on VERIFY if user already logged in.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-04-26 21:46:13 +02:00
Pol Henarejos 30bb31a9c9 Adding life status for PW1 for PSO:CDS (single or several commands).
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-04-26 18:10:27 +02:00
Pol Henarejos f0e7cdc18d Adding capability to edit PW STATUS.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-04-26 18:06:23 +02:00
Pol Henarejos 283289fbc6 Moving retries to PW STATUS.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-04-26 18:04:25 +02:00
Pol Henarejos dc988e2a88 Signature counter is reset on keypair generation.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-04-26 16:43:18 +02:00
Pol Henarejos 1594da7533 Fix with signature counter.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-04-26 16:39:04 +02:00
Pol Henarejos 2c47816686 Fix logging in with PW 82.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-04-26 16:38:50 +02:00
Pol Henarejos b0b30aff3a Adding increment of signature counter.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-04-26 16:38:23 +02:00
Pol Henarejos 30e5f12b25 Added access checks.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-04-26 16:03:10 +02:00
Pol Henarejos 3c2bfbc119 Moving some ASN1 stuff to mbedtls.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-04-26 12:14:58 +02:00
Pol Henarejos 77842f23e7 Moving signature calls outside.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-04-26 12:04:19 +02:00
Pol Henarejos b67a902eb6 Fixing signature. It uses raw signature instead of heading it with asn1.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-04-26 09:36:36 +02:00
Pol Henarejos e2c8d2e0aa Fix ECDH calc secret.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-04-25 19:41:06 +02:00
Pol Henarejos d87334bfbc Added INTERNAL AUTHENTICATE.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-04-25 19:05:22 +02:00
Pol Henarejos 6fef2dd1dc Parsing 0x82 as PW2.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-04-25 17:56:28 +02:00
Pol Henarejos fc311c40ff Updated key info to report generated keys in the card.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-04-24 00:24:25 +02:00
Pol Henarejos 7094767500 Adding RSA and ECDH decrypt.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-04-23 23:35:35 +02:00
Pol Henarejos 7d4024a2cb Added INS GET CHALLENGE.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-04-23 20:46:10 +02:00
Pol Henarejos f00fe8cb16 Fix signature for ECDSA. OPENPGP requires the raw signature, without ASN1 transportation.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-04-22 20:37:44 +02:00
Pol Henarejos 1437e1c58d Fix returning public key for ECC.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-04-22 20:37:13 +02:00
Pol Henarejos cf6009e4e1 Added factory-reset capability (TERMINATE DF and ACTIVATE FILE) support.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-04-22 19:21:15 +02:00
Pol Henarejos 0d2d7781a7 Added ECDSA signature.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-04-21 23:28:26 +02:00
Pol Henarejos d69342d2d0 Added support for ECC keypair generation.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-04-21 23:13:05 +02:00
Pol Henarejos c006246aa0 A VERIFY with P2=x82 and with data, references to PW1.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-04-21 22:39:53 +02:00
Pol Henarejos 879fa444e5 Added PSO SIG for signing. Needed for keypair generation.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-04-21 20:35:02 +02:00
Pol Henarejos be51d608ed Finalizing RSA keypair generation.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-04-21 19:55:39 +02:00