Commit Graph
100 Commits
Author SHA1 Message Date
Pol Henarejos e29b3143ed Moving pointer
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2023-01-13 18:49:08 +01:00
Pol Henarejos 5419ff74ee Using file_has_data() to check contents.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2023-01-13 18:07:50 +01:00
Pol Henarejos 723011078c Using file_has_data() instead of data directly.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2023-01-12 20:06:31 +01:00
Pol Henarejos fe7c0333ab Some emulation fixes.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2023-01-12 20:06:11 +01:00
Pol Henarejos c01940b62b Fix accessing way to data.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2023-01-12 20:05:59 +01:00
Pol Henarejos 7195a8f3ec Fix headers in emulation mode.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2023-01-12 20:05:46 +01:00
Pol Henarejos 7764de4e10 Unused headers.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2023-01-12 20:05:16 +01:00
Pol Henarejos e05c526b4d Fix printf format.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2023-01-12 20:04:55 +01:00
Pol Henarejos bc20f98b44 In emulation, return always 1mb of memory.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2023-01-12 20:04:44 +01:00
Pol Henarejos 742c3f3e3c RTC command is not available in emulation.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2023-01-12 20:04:23 +01:00
Pol Henarejos 9793977ffc Fixed double counter increment.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2023-01-12 20:04:05 +01:00
Pol Henarejos 6c85772fff Added emulated build capability.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2023-01-12 20:03:42 +01:00
Pol Henarejos 9ff3254a4c Update to latest HSM SDK.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-12-22 22:50:54 +01:00
Pol Henarejos 7d906851dd Updating to newer version of Pico HSM SDK.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-12-20 23:51:49 +01:00
Pol Henarejos 691aa3308c Fix when importing a dkek and it fails.
Now the dkek state is returned to the previous one.

Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-12-06 20:11:26 +01:00
Pol Henarejos 6a57e67629 Fix importing dkek twice.
It is not allowed anymore.

Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-12-06 20:04:18 +01:00
Pol Henarejos 202c8a4b22 Credentials are not necessary when importing DKEK.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-12-06 20:00:32 +01:00
Pol Henarejos f2874ae3ef Fix when ping is provided during the initialization.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-12-06 20:00:19 +01:00
Pol Henarejos 9e9cf9b768 Upgrading version to v3.2.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-12-06 19:00:44 +01:00
Pol Henarejos c95dee84f2 Changing backend service url.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-12-06 19:00:35 +01:00
Pol Henarejos 65cde9960f Upgrading version to v3.2.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-12-04 17:42:03 +01:00
Pol Henarejos 7ca96178fb Moving HSM SDK pointer to latest release.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-11-28 18:54:22 +01:00
Pol Henarejos e70461e551 Merge branch 'master' into development 2022-11-15 17:40:29 +01:00
Pol Henarejos 63c85000d0 Added support for kdf.
It supports HKDF, PBKDF2 and X963, with multiple MD (SHA family), salt/nonces and configurable output size.

Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-11-15 00:15:59 +01:00
Pol Henarejos 4113f6a65d Fix parsing PBKDF2 params.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-11-15 00:14:39 +01:00
Pol Henarejos f98d744076 Add apdu.ne check for large buffers.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-11-14 18:04:44 +01:00
Pol Henarejos bb4c293736 Adding subparsers for subcommands.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-11-14 16:27:51 +01:00
Pol Henarejos aa8b1e6efe Added support for X963 KDF.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-11-14 15:38:16 +01:00
Pol Henarejos 0cb2e8ec2e Added PBES2 key derivation with encryption and decryption support.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-11-14 13:07:49 +01:00
Pol Henarejos 0e96753ccb Added support for PBKDF2.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-11-14 12:01:27 +01:00
Pol Henarejos 2b2df22d75 Added support for configurable HKDF.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-11-14 10:14:54 +01:00
Pol Henarejos f65167e3c7 Adding support for keypair generation for Curve25519 and Curve448.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-11-11 17:10:34 +01:00
Pol Henarejos 8fe2677a56 Fix cofactor return with cvc.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-11-11 17:08:36 +01:00
Pol Henarejos d09a7cf9c8 If self-signature fails, puts all-0.
When generating a keypair and returns a self-signed CVREQ, the signature might fail for Curve25519 and Curve448. Instead of returning null, it puts zeros in order to return what is expected to return.

Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-11-11 17:04:17 +01:00
Pol Henarejos 6bf72e5a59 Added support for HMAC-SHA1, HMAC-SHA224, HMAC-SHA256, HMAC-SHA384 and HMAC-SHA512.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-11-08 17:26:32 +01:00
Pol Henarejos 7c877ebea2 Using file_out parameter.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-11-07 22:31:19 +01:00
Pol Henarejos e1983f7bcc Now is possible pipe encrypt & decrypt commands.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-11-07 22:16:10 +01:00
Pol Henarejos a5e025a4e5 If no applet is selected, then select it.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-11-07 21:37:42 +01:00
Pol Henarejos a7682d2639 Adding Extended Cipher feature.
With this new subcommand, Pico HSM will support newer cipher algorithms.
ChaCha20-Poly1305 is the first. It will be based on a custom P2 subcommand to support an arbitrary structure with multiple parameters (AAD, IV, etc.)

pico-hsm-tool.py shall be used.

Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-11-07 21:37:11 +01:00
Pol Henarejos 30301c68f1 Linux uses the generic interface. Needs deep testing.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-11-07 13:14:37 +01:00
Pol Henarejos abf980d84e Fixes in windows backend.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-11-03 18:41:02 +01:00
Pol Henarejos 8718f55df2 Adding secure_key for windows.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-11-03 18:26:35 +01:00
Pol Henarejos d1a3a24527 Import secure_key only when needed.
Now, it does not block anymore the entire execution of pico tool.

Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-11-03 16:09:42 +01:00
Pol Henarejos f363b77a07 Adding secure_key for macOS.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-11-03 16:06:06 +01:00
Pol Henarejos 00279da8d5 Adding Secure Lock to lock the device with a random 256 bit key.
This is an extra layer of security to avoid brute force attacks if PIN is too weak.
At every hard reset (on device plug), the device must be unlocked prior any other command. Once unlocked, the device can be used as usual.

Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-10-31 15:09:54 +01:00
Pol Henarejos eda8b53949 Memory cleanup on ECDH.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-10-31 12:54:44 +01:00
Pol Henarejos cfc0cc8f6e Some optimizations.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-10-31 00:38:30 +01:00
Pol Henarejos ab61b2a2d5 Fix returning public key of koblitz curve secp_k1.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-10-31 00:38:21 +01:00
Pol Henarejos f79a6ed30a Do not override Ne.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-10-30 23:42:12 +01:00
Pol Henarejos 4313722b06 Fix memory free on keygen ecc.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-10-30 23:15:22 +01:00
Pol Henarejos eec4612a6f Fix when secure message cannot be correctly processed.
It is discarded.

Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-10-30 21:11:06 +01:00
Pol Henarejos b2ac893efc Fix general authentication with AES.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-10-30 21:09:41 +01:00
Pol Henarejos 3835507e00 Fix displaying error message if pycvc is missing.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-10-29 11:35:54 +02:00
Pol Henarejos 4536589e2c Added error message if package is missing.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-10-10 11:02:07 +02:00
Pol Henarejos 1e39558fbc Typo
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-10-10 00:39:32 +02:00
Pol Henarejos a089cc279b Adding support for changing SO-PIN.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-10-10 00:37:56 +02:00
Pol Henarejos 84f646dbad Fix storing SO-PIN session when checking PIN with SO-PIN.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-10-10 00:37:33 +02:00
Pol Henarejos b9ec473aaa Fix critical bug saving SO-PIN securely.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-10-10 00:27:46 +02:00
Pol Henarejos b7eb0dff02 Upgrade to Version 3.0.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-10-09 22:27:11 +02:00
Pol Henarejos 67ea640a14 Fix endianness of patcher (again)
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-10-09 22:20:41 +02:00
Pol Henarejos f593060007 Moving delete_file() outside.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-10-09 22:07:21 +02:00
Pol Henarejos 8504eed35c Adding fixes and moving to Mbedtls 3.2.1
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-10-09 22:07:10 +02:00
Pol Henarejos 8b29b137a8 Small fixes.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-10-09 22:04:30 +02:00
Pol Henarejos e6767f4c0a Moving pointer.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-09-25 23:25:16 +02:00
Pol Henarejos 6affe64ec5 Adding missing file to pico-hsm-sdk. 2022-08-31 14:19:32 +02:00
Pol Henarejos ab75718927 Using pico_hsm_sdk library instead. 2022-08-31 14:10:04 +02:00
Pol Henarejos 9e1747e539 Upgrading pico-hsm-sdk version to v3.0 2022-08-31 14:09:02 +02:00
Pol Henarejos a7396dc698 Fix the endianness of vid/pid patcher. 2022-08-31 14:08:29 +02:00
Pol Henarejos 67699bd24c Before initializing, we select the applet. 2022-08-30 17:55:56 +02:00
Pol Henarejos 62c72c48a5 Moving to new pico-hsm-sdk. 2022-08-30 17:55:42 +02:00
Pol Henarejos 3944c8437a Moving to pico-hsm-sdk 2022-08-30 17:54:38 +02:00
Pol Henarejos b7d603342e Upgrading pico-ccid 2022-08-29 11:32:39 +02:00
Pol Henarejos 6e5db3c292 Upgrading pico-ccid to version 2.2 2022-08-29 11:31:47 +02:00
Pol Henarejos 4fb26559f4 Adding --so-pin flag for initialize command.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-08-25 13:47:42 +02:00
Pol Henarejos c366c1d1a3 Added datetime and options menu to manipulate the RTC and options (press-to-confirm button and optional counter for each key).
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-08-25 13:38:09 +02:00
Pol Henarejos e8cc6a169e Try to recover MKEK twice: with previous PIN/SO-PIN or after setting the new PIN/SO-PIN just in case some is the same as previous.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-08-25 01:51:16 +02:00
Pol Henarejos 7d7b6b88ba Trying to recover MKEK to preserver device private key. If not, all are generated again.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-08-25 01:51:16 +02:00
Pol Henarejos 138af5c113 Adding --pin parameter for initialization.
If provided, it unlocks MKEK before initialization.
If not, it will generate a new MKEK and device certificate.

Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-08-25 01:51:16 +02:00
Pol Henarejos b3bcad9ce6 Making MKEK persistent.
It must be persistent as it encrypts device private key and therefore it must survive across reinitializations.
However, if no PIN is provided to unlock it, it will be lost, as with device private key.

Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-08-25 01:51:16 +02:00
Pol Henarejos cd6f898f8e Fix storing certs in DER format.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-08-25 01:51:16 +02:00
Pol Henarejos 9ef088971b Integrate all commands to a single script
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-08-25 01:51:16 +02:00
Pol Henarejos e399b1c0b1 Renaming the tools and moving to tools/ folder.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-08-25 01:51:16 +02:00
Pol Henarejos c5e4583762 Add a tool for attestation of a private key.
It looks for a particular private key and generates a report with some useful information and validates the source of the private key, whether it is generated in this device or outside.

Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-08-23 14:54:38 +02:00
Pol Henarejos 38b9c06138 Reformat oids.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-08-23 14:52:44 +02:00
Pol Henarejos df18a1e917 Added header.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-08-23 00:50:07 +02:00
Pol Henarejos 2bc40771ca Fix generating CVC REQ.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-08-23 00:50:06 +02:00
Pol Henarejos c5f980fc98 Fix curve for ECDH key.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-08-22 01:13:08 +02:00
Pol Henarejos aebb68724a Removing trailing spaces.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-08-19 01:44:27 +02:00
Pol Henarejos 1f2ccd8c1c Not used.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-08-19 01:40:13 +02:00
Pol Henarejos 874058d86a Pull last changes in pico-ccid.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-08-19 00:03:09 +02:00
Pol Henarejos 8fccb80295 New burn-certs is called after compilation, not before. Not needed anymore.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-08-18 23:58:38 +02:00
Pol Henarejos c9c60575c7 Removed 3DES as it is unsecure.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-08-18 23:55:21 +02:00
Pol Henarejos 7e6ed20b26 Not downloading nested submodules for tinyusb
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-08-18 23:53:49 +02:00
Pol Henarejos 52c7be4e16 Also clone nested submodules
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-08-18 23:38:50 +02:00
Pol Henarejos 36d250fc2b Github does not clone submodules. So, let's do it
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-08-18 23:33:52 +02:00
Pol Henarejos 84ba0e03de Fix missing TinyUSB submodule
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-08-18 23:31:17 +02:00
Pol Henarejos 7d27c4b546 Fix autobuild
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-08-18 23:28:29 +02:00
Pol Henarejos 80b2bab0f8 Granting root to apt
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-08-18 23:23:58 +02:00
Pol Henarejos 79372ced2f Just install the SDK in the workflow
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-08-18 23:21:42 +02:00
Pol Henarejos fb76c23694 Let's try our autobuild
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-08-18 23:00:09 +02:00