Commit Graph

162 Commits

Author SHA1 Message Date
Pol Henarejos
553bd793b9 RP 2040 does not have PIN support (i.e., pin pad support). Thus, we disable it to enable openssl pkcs11 engine interaction.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-02-27 20:58:04 +01:00
Pol Henarejos
8d6acb8162 Updating ATR.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-02-27 20:57:24 +01:00
Pol Henarejos
44b3792166 Fix with reading dynamic files.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-02-27 20:56:45 +01:00
Pol Henarejos
1918a5769c Adding symmetric key generation (AES CBC)
Fix file search and discovery.

Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-02-25 17:04:31 +01:00
Pol Henarejos
36cd26acd3 More candy debug.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-02-25 17:03:28 +01:00
Pol Henarejos
6777221e48 Allow for null data write to allocate physical space.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-02-25 17:03:05 +01:00
Pol Henarejos
857aaf2679 Fix ACL when creating new file.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-02-24 22:38:15 +01:00
Pol Henarejos
a94c74e508 Added PIN change.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-02-24 22:07:52 +01:00
Pol Henarejos
4cdb2f93e5 Fix reset pin.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-02-24 20:37:50 +01:00
Pol Henarejos
8657758cf2 Adding acl and pin checks.
If pin is blocked, is always blocked despite correct login.

Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-02-24 20:00:37 +01:00
Pol Henarejos
fce1a30f56 Fix deleting key.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-02-24 19:04:06 +01:00
Pol Henarejos
a4ef5e6d17 Adding delete file command.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-02-24 16:22:05 +01:00
Pol Henarejos
249de0c5d2 Calling variable token info data generation.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-02-23 22:17:58 +01:00
Pol Henarejos
a90aac5533 Making files to accept data callbacks (useful for asn1 data).
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-02-23 22:17:31 +01:00
Pol Henarejos
b874575dab Moving to static dynamic files.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-02-23 17:35:53 +01:00
Pol Henarejos
b9bbddd24e Using separate eps.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-02-23 17:35:29 +01:00
Pol Henarejos
d6368a221f Return some SW even if no app is selected.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-02-23 17:35:02 +01:00
Pol Henarejos
c29f8d6cc5 Migrating to static memory to avoid malloc for new files. Let's see how it works.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-02-23 12:00:34 +01:00
Pol Henarejos
41b1467ab7 Fix with empty extended length header.
Fix buffer overflow when extended length. APDU shall be reset at every APDU beginning.

Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-02-23 12:00:04 +01:00
Pol Henarejos
16bd415fb9 Adding sanity checks.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-02-22 18:26:02 +01:00
Pol Henarejos
173d64dd0e Finalizing EC key generation and storage.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-02-22 15:36:32 +01:00
Pol Henarejos
67698eca94 Fixed bug with size of cvc.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-02-22 14:27:13 +01:00
Pol Henarejos
f97555a8da Adding ECC storing keygen.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-02-22 13:22:09 +01:00
Pol Henarejos
a28f217c57 Inner signature of CVC encodes the full certificate body.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-02-22 00:55:36 +01:00
Pol Henarejos
e1126b5951 In order to announce the public key, the response must be cvc request authenticated.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-02-22 00:37:02 +01:00
Pol Henarejos
1688ea540e Fix: FPI containing wrong file length.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-02-21 16:24:47 +01:00
Pol Henarejos
2a770ee7c9 DKEKS are also initialized.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-02-21 16:24:32 +01:00
Pol Henarejos
0ef2ee40ac Adding update_ef command.
Flash is reset when initialize

Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-02-21 16:06:09 +01:00
Pol Henarejos
d4e4cbbb0a Adding initialize commands.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-02-21 16:05:32 +01:00
Pol Henarejos
87a47c626b Fix with extended LE.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-02-21 13:26:30 +01:00
Pol Henarejos
4e3b43ec35 Adding storage of PRKD and CD.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-02-21 12:21:16 +01:00
Pol Henarejos
d32620710e Adding file chains for CC, CE and CD.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-02-21 12:20:39 +01:00
Pol Henarejos
fe429bf5af Adding signature to public file.
Storing private key in disk.

Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-02-21 00:27:53 +01:00
Pol Henarejos
ecfeb63273 Storing private keys as only P and Q for RSA. They are converted on the fly upon a request.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-02-20 20:05:46 +01:00
Pol Henarejos
e620b891e1 Adding RSA response (unfinished).
Adding ECC generation (no response yet).

Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-02-20 01:59:48 +01:00
Pol Henarejos
d904e55aba Updating CVCA
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-02-20 01:58:56 +01:00
Pol Henarejos
0ae8733d9b Adding keypair generation. At this moment, only RSA works but without any security check.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-02-19 02:16:29 +01:00
Pol Henarejos
67ac86f97d Fix with endianness and search by path name.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-02-18 16:42:59 +01:00
Pol Henarejos
d6e7fc7cce Adding PIN login.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-02-18 16:19:54 +01:00
Pol Henarejos
eaa0265f74 Adding import dkek shares.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-02-18 15:46:46 +01:00
Pol Henarejos
e59c0d08c4 Adding initialization.
- PINs are never stored, neither in flash nor in RAM.
- PINs are stored in flash in doubled salted way.
- PINs are stored in RAM in single salted way.
- SOPIN in RAM (single salted) is used to encrypt/decrypt DKEK.
- PINs in RAM (single salted) are used to encrypt/decrypt private keys related with user/so pins.
- DKEK is only used to export/import data.

Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-02-18 13:28:41 +01:00
Pol Henarejos
0fa7f4cd54 Added DKEK file.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-02-18 13:25:32 +01:00
Pol Henarejos
4bb756b17c Fix when clearing file. It was omitting fid field and thus causing misalignment and corruption data.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-02-18 13:25:19 +01:00
Pol Henarejos
1630c7b52d Adding unique_id variable.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-02-18 10:39:03 +01:00
Pol Henarejos
633f005efd Adding INS_CHALLENGE for DKEK generation.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-02-17 19:50:12 +01:00
Pol Henarejos
4ccc457fab Using mbedtls tag v3.1.0
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-02-17 19:46:02 +01:00
Pol Henarejos
f7553a0a75 Fix bug of not refilling after random bytes are requested.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-02-17 19:45:23 +01:00
Pol Henarejos
c2733e8977 Using files from mbedtls submodule
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-02-17 19:17:24 +01:00
Pol Henarejos
34a0027e78 Not used as they are pulled from submodule
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-02-17 19:16:55 +01:00
Pol Henarejos
71cf36bbe1 Adding mbedtls submodule
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
2022-02-17 19:03:27 +01:00