Commit graph

110 commits

Author SHA1 Message Date
Heiko Schaefer
7573361836
Make ShareMode an optional parameter when opening cards via pcsc. 2022-02-15 10:53:46 +01:00
Heiko Schaefer
36b9fb2770
get_txc!() now assumes the OpenPGP application should be re-selected, by default 2022-02-15 10:49:55 +01:00
Heiko Schaefer
376072910e
Adjust openpgp-card-sequoia to changed openpgp-card API 2022-02-15 10:49:42 +01:00
Heiko Schaefer
53c8609f05
Remove unused imports 2022-02-14 17:46:16 +01:00
Heiko Schaefer
30341d6c4b
Rename: PcscClient->PcscCard,PcscTxClient->TxClient 2022-02-14 17:46:16 +01:00
Heiko Schaefer
2480745088
Move implementation of low-level OpenPGP functionality from CardApp to CardClient. 2022-02-14 17:46:16 +01:00
Heiko Schaefer
111f9e9631
Adjust to openpgp-card 0.2 API 2022-02-14 17:46:16 +01:00
Heiko Schaefer
5e7fcd079b
Change CardApp API: take &mut CardClient parameter for all calls (instead of owning a CardClientBox).
This way, clients can exert control over the state of the CardClient, e.g. to combine CardApp operations in a PCSC transaction.
2022-02-14 17:43:07 +01:00
Heiko Schaefer
5e0007c7fd
Add FIXME for construction of EdDSA public keys from a card 2022-01-27 16:10:02 +01:00
Heiko Schaefer
7031158f5b
Fix doctests 2021-12-12 02:34:56 +01:00
Heiko Schaefer
383f592865
Don't apply Policy when picking (sub)key from Cert for sign/decrypt. 2021-12-11 23:36:36 +01:00
Heiko Schaefer
ecd862e23f
Remove "get_" prefix from getter function names (to better conform with Rust API Guidelines https://rust-lang.github.io/api-guidelines). 2021-12-01 19:11:22 +01:00
Heiko Schaefer
2709b4ad39
Implement pinpad feature detection and pinpad support for verify/modify (of pw1 and pw3) in pcsc backend.
Extend CardCaps to contain pw1_max_len and pw3_max_len (and initialize these values from ARD).

Add pinpad_verify(), pinpad_modify(), feature_verify()/feature_modify() to CardClient API.
Expose in card_app (and openpgp-card-sequoia card API).

Adjust opgpcard, opgpcard-pin to ue pinpad reader when available.
2021-11-30 22:51:18 +01:00
Heiko Schaefer
9de79477b9
Implement get_firmware_version (probably YubiKey specific) 2021-11-23 20:38:46 +01:00
Heiko Schaefer
a439397c62
Clippy fixes. 2021-11-22 16:33:15 +01:00
Heiko Schaefer
7413b5c062
Don't check cert revocation status when decrypting. 2021-11-22 16:33:15 +01:00
Heiko Schaefer
af673f537c
Adjust error handling in CardSigner and CardDecryptor (for better error messages in tools, such as opgpcard).
Refactor sq_utils, rename some fn for clarity.
2021-11-21 15:21:43 +01:00
Heiko Schaefer
874c28b7ff
Add get_pub_key() 2021-11-16 19:18:10 +01:00
Heiko Schaefer
13c8769ea3
Case insensitive comparison of ident. 2021-11-16 17:48:14 +01:00
Heiko Schaefer
90ae9398ed
Adjust the backend API and interaction with openpgp-card some more. 2021-11-12 18:47:56 +01:00
Heiko Schaefer
7a71f88eb6
Rename Open::open() to Open::new() 2021-11-11 16:40:08 +01:00
Heiko Schaefer
d10cbe8eff
clean up lints 2021-11-11 16:40:08 +01:00
Heiko Schaefer
d55985807c
Change the API for interactions between openpgp-card and backends.
The goal of this change is a cleaner structure, and in particular to make it the default for client-code to obtain a CardApp with pre-initialized "capabilities" (that is, init_caps() gets called implicitely).
2021-11-11 16:40:08 +01:00
Heiko Schaefer
288a2a8325
Add comments/assert for PSO: DECIPHER 2021-11-09 16:43:59 +01:00
Heiko Schaefer
87168ea0de
Cleanup imports 2021-11-05 23:14:36 +01:00
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
edc89078ce Make the PublicKey type pub. 2021-11-03 02:26:07 +01:00
Heiko Schaefer
753bd8b71b Move example keys/data to openpgp-card-sequoia 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
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
ddf62dbfe2 Use the MPI::value_padded() method for left-padding. 2021-10-05 17:11:52 +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
6d24054e1e Normalize capitalization to "OpenPGP card" 2021-09-22 16:41:53 +02:00
Heiko Schaefer
cf8fb05210 Don't set a policy implicitly. 2021-09-21 16:59:01 +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
332360cbbb Implement additional import formats for RSA key import. 2021-09-21 11:22:56 +02:00
Heiko Schaefer
5e92f4ee25 Adjust to changed extended_capabilities types. 2021-09-16 02:38:25 +02:00
Heiko Schaefer
39df280d70 Fix comment type 2021-09-16 02:05:28 +02:00
Heiko Schaefer
f2e5fea0fc extended capabilities: restructure, to prepare for different versions of this DO 2021-09-14 02:00:54 +02:00
Heiko Schaefer
d5651e96bb Reorganize key uploading API 2021-09-11 22:58:02 +02:00
Heiko Schaefer
1b9d860adf Minor edits on doc comments. 2021-09-11 16:54:34 +02:00
Heiko Schaefer
0d249a47fd sq_util::get_subkey() is now the central helper fn for picking a (sub)key from a Cert. 2021-09-11 16:27:31 +02:00
Heiko Schaefer
3b3a3b5064 More documentation 2021-09-11 13:00:05 +02:00
Heiko Schaefer
77b2ca98b0 Misc cleanup:
Simplify verify_foo() calls.
More orderly output.
Remove Scdc for now.
2021-09-11 12:42:33 +02:00
Heiko Schaefer
be95b9de43 Normalize fn names: remove 'get_' prefixes, and adjust to naming in the spec. 2021-09-11 12:42:33 +02:00
Heiko Schaefer
0e2b53feb4 Fix the assumptions about authorization underlying the card::* types:
Multiple passwords can be validated on a card at the same time.
Rename verify_* fn to be more easily legible ("user" instead of "pw1", ...)
2021-09-11 12:42:33 +02:00