Commit graph

354 commits

Author SHA1 Message Date
Heiko Schaefer
79cfcb09c2 In generate_key_simple(), the algo parameter is now an Option<AlgoSimple>.
This allows uploading keys without explicitly setting the algorithm, thus leaving the card's algo setting unchanged.
2021-11-05 13:34:14 +01:00
Heiko Schaefer
02401d12f4 Initial parts of key generation. 2021-11-05 13:34:14 +01:00
Heiko Schaefer
8674b0e65c Refactor "Open" to use a borrowed CardApp (instead of owning the CardApp). 2021-11-05 13:34:14 +01:00
Heiko Schaefer
8dd83b6c55 Extend comment 2021-11-05 13:34:14 +01:00
Heiko Schaefer
3d821e2c5f Add internal_authenticate() to the public API. 2021-11-05 13:33:40 +01:00
Heiko Schaefer
a88620a96d Add some more documentation to CardApp::signature_for_hash. 2021-11-04 18:06:18 +01:00
Heiko Schaefer
52a146fd56 implement internal_authenticate 2021-11-04 18:05:45 +01:00
Heiko Schaefer
0aaef211a0 Add documentation about testing to the top-level README.md 2021-11-03 13:50:06 +01:00
Heiko Schaefer
edc89078ce Make the PublicKey type pub. 2021-11-03 02:26:07 +01:00
Heiko Schaefer
308e8bfabd enable env_logger 2021-11-03 02:24:59 +01:00
Heiko Schaefer
19ca7d9308 In factory_reset(), StatusBytes::PasswordNotChecked is also a legal response to "verify" calls to a card (with a bad password). 2021-11-02 20:59:18 +01:00
Heiko Schaefer
5eea5c861d When card returns OkBytesAvailable(), use the returned number of bytes from sw2 when asking for the next response.
This approach solved problems with "GET RESULT" with a "Feitian Java Card D11CR" running the ykneo applet.
2021-11-01 21:58:08 +01:00
Heiko Schaefer
921e0d22d9 Add some more user facing output.
(Including for the case when a card doesn't allow a user password change when no key material exists on the card, which is a particular policy of Gnuk cards)
2021-10-30 01:25:08 +02:00
Heiko Schaefer
bc08ca68ed Releases 2021-10-29 22:51:23 +02:00
Heiko Schaefer
753bd8b71b Move example keys/data to openpgp-card-sequoia 2021-10-29 22:38:01 +02:00
Heiko Schaefer
85075c4cda Rename openpgp-card-apps into openpgp-card-examples 2021-10-29 22:38:01 +02:00
Heiko Schaefer
59d77f584d Add openpgp-card-tools crate 2021-10-29 22:38:01 +02:00
Heiko Schaefer
aa7528ec9a Add functionality for cli tools. 2021-10-28 00:05:41 +02:00
Heiko Schaefer
1d4f058858 add comment about Gnuk pin change precondition 2021-10-27 12:10:18 +02:00
Heiko Schaefer
3407cd3a39 Add reset_user_pin() fn for Open and for Admin, as well as set_resetting_code() to Admin. 2021-10-26 21:57:32 +02:00
Heiko Schaefer
2c0c19502f Add change_user_pin() and change_admin_pin() 2021-10-26 14:46:57 +02:00
Heiko Schaefer
77c7a90daf sq_util::get_subkey() now returns an Option.
Not finding any subkey is not an error.
2021-10-23 20:01:10 +02:00
Heiko Schaefer
5d8b547158 Build and run card-functionality tests against two JavaCard images (SmartPGP and YubiKey NEO) 2021-10-19 22:57:57 +02:00
Heiko Schaefer
dfca788e2f Yet more documentation edits. 2021-10-13 16:44:37 +02:00
Heiko Schaefer
f2b65e7880 Some more edits for documentation. 2021-10-11 12:11:56 +02:00
Heiko Schaefer
63576de817 Add documentation, in particular for running the tests against emulated Gnuk. 2021-10-11 11:53:41 +02:00
Heiko Schaefer
73593e66e7 Add "list-cards" tool. 2021-10-08 00:51:01 +02:00
Heiko Schaefer
a4c04de09c Add notes about using Protected memory for private key material. 2021-10-05 17:38:08 +02:00
Heiko Schaefer
ddf62dbfe2 Use the MPI::value_padded() method for left-padding. 2021-10-05 17:11:52 +02:00
Heiko
40c52c7f3a Merge branch 'add-more-examples' into 'main'
Add decrypt and detach-sign examples

See merge request hkos/openpgp-card!1
2021-10-01 15:35:33 +00:00
Wiktor Kwapisiewicz
1ec7fc97dc
Add decrypt and detach-sign examples
This should mirror the usage of `gpg --decrypt` and `gpg --detach
--sign`.
2021-09-27 13:28:34 +02:00
Heiko Schaefer
1ce74ab8c6 Pad private key scalars of ECC keys.
MPIs can have leading zeros stripped, in OpenPGP, however, e.g. the floss34 card requires the NIST scalar in its non-stripped form.
2021-09-23 20:54:33 +02:00
Heiko Schaefer
c73a4fa2f8 Adjust card name to the shop's naming. 2021-09-22 16:42:43 +02:00
Heiko Schaefer
6d24054e1e Normalize capitalization to "OpenPGP card" 2021-09-22 16:41:53 +02:00
Heiko Schaefer
6de3901c12 Add a NIST384 key for testing. 2021-09-22 13:22:45 +02:00
Heiko Schaefer
43e57ffc7a Make password exploration-test more robust. 2021-09-21 19:54:43 +02:00
Heiko Schaefer
10ddb8918d Add an RSA1k key for testing (with older cards). 2021-09-21 17:18:43 +02:00
Heiko Schaefer
cf8fb05210 Don't set a policy implicitly. 2021-09-21 16:59:01 +02:00
Heiko Schaefer
dbbe4ed4c1 Fix comparison of card ident (the test config shouldn't be case sensitive) 2021-09-21 16:50:34 +02:00
Heiko Schaefer
5417fde8ca Implement support for alternate ECC import format (which includes public key data) 2021-09-21 16:50:34 +02:00
Heiko Schaefer
200d7e60d1 Algo attributes for key generation should be checked if we can't set them. 2021-09-21 16:50:34 +02:00
Heiko Schaefer
c0088c4eae Hack for SmartPGP applet (use the last of the suitable algorithm variants from the Algorithm Information list). 2021-09-21 11:22:56 +02:00
Heiko Schaefer
56e3845ea4 Explicitly set policy when calling util::upload_subkeys() 2021-09-21 11:22:56 +02:00
Heiko Schaefer
773117965c Add RSA1k/17 and RSA1k/32 to AlgoSimple 2021-09-21 11:22:56 +02:00
Heiko Schaefer
332360cbbb Implement additional import formats for RSA key import. 2021-09-21 11:22:56 +02:00
Heiko Schaefer
256690d97c Print RSA import format in Display for Algo 2021-09-19 19:13:51 +02:00
Heiko Schaefer
0bf59c7e51 In key generation: don't set algo attributes if the card doesn't support that feature. 2021-09-17 13:56:28 +02:00
Heiko Schaefer
a39f25d8a3 Handle SW_EXACT_LENGTH (0x6c??) in send_command() 2021-09-17 13:36:20 +02:00
Heiko Schaefer
60c67d3ebe Print status bytes as hex, for UnknownStatus 2021-09-16 17:17:19 +02:00
Heiko Schaefer
5e92f4ee25 Adjust to changed extended_capabilities types. 2021-09-16 02:38:25 +02:00