Commit graph

733 commits

Author SHA1 Message Date
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
b367043a12
Implement a macro "start_tx!" for DRY transaction starting 2022-02-14 17:43:07 +01:00
Heiko Schaefer
748c334403
Implement TxClient to use pcsc with transactions (transaction opening code is duplicated) 2022-02-14 17:43:07 +01:00
Heiko Schaefer
0baf36df67
Restructure cards() and open_by_ident(); Add debug logging 2022-02-14 16:37:20 +01:00
Heiko Schaefer
2c3bc492ab
expect to find a running, shared pcscd instance (passed in from the runner VM) 2022-02-14 16:16:46 +01:00
Heiko Schaefer
f212822ccc
Set RUST_LOG=debug in cookiejar CI. 2022-02-14 15:42:14 +01:00
Heiko Schaefer
476f46dacc
Simplify get_data() by splitting it into a one-byte- and two-byte-tag variant. 2022-02-09 13:34:43 +01:00
Heiko Schaefer
8a899afb9d
Fix/clean up limitation of data length. 2022-02-09 12:50:42 +01:00
Heiko Schaefer
40f279684e
workaround and test for "ledger nano s" quirks 2022-02-08 12:28:17 +01:00
Heiko Schaefer
9cdc699745
Fix for key generation: signing subkey was processed as a decryption subkey by mistake (this broke generation of 25519 keys) 2022-02-04 14:48:40 +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
65e192d728
Clean up warnings 2022-01-07 13:18:36 +01:00
Heiko Schaefer
29c7d5c550
Fix RSA keygen parameters in the example config (e bitsize has been removed in 9984aca5b9) 2021-12-30 18:18:03 +01:00
Heiko Schaefer
28e4200090
Make pcsc usage less platform specific. 2021-12-30 17:37:44 +01:00
Heiko Schaefer
873f2ed910
Rename card-functionality example config, and add config/*toml to .gitignore, to adjust to the new option of individual config files per card. 2021-12-26 11:49:51 +01:00
Heiko Schaefer
9a3b47f0fa
Get pcsc card via PcscClient::open_by_ident(), instead of manually filtering it from a list of all cards. 2021-12-24 11:39:54 +01:00
puzzlewolf
f312ce94f7
Configure caching of Rust build artifacts.
Don't 'cd' into the card-functionality directory to run tests ('cd'-ing broke the caching mechanism).
Adjust test configurations accordingly.
2021-12-24 11:37:54 +01:00
puzzlewolf
4988ccea49
Update debian test to bookworm 2021-12-24 11:37:54 +01:00
puzzlewolf
a45586cf13
Use ykneo/smartpgp builddeps images for virtual Java Card tests.
Remove unnecessary dockerfiles and run.sh.
Make hardware-builddeps image to run hardware card tests on.
Add license header and cleanup.
2021-12-24 11:37:54 +01:00
puzzlewolf
1722e1b328
Add hardware-OpenPGP card tests on cookiejar CI.
Rename stages for clarity.
2021-12-24 11:37:54 +01:00
Heiko Schaefer
3b089b83dc
Add test configurations for physical cards in sequoia CI 2021-12-24 11:36:09 +01:00
Heiko Schaefer
40d8639a26
Take config file as parameter in test binaries 2021-12-24 11:36:09 +01:00
Heiko Schaefer
7031158f5b
Fix doctests 2021-12-12 02:34:56 +01:00
Heiko Schaefer
bba1c264dd
release openpgp-card-sequoia 0.0.7 2021-12-12 01:36:50 +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
b04295543e
Gracefully handle missing algorithm_information in generate_key_simple() 2021-12-10 22:42:37 +01:00
Heiko Schaefer
487cc41160
Disable caching in build_cardtest_ykneo and build_cardtest_smartpgp. 2021-12-10 21:56:15 +01:00
Heiko Schaefer
9984aca5b9
Adjust test configurations:
Remove bitsize of e parameter for RSA from SimpleAlgo.
2021-12-10 18:49:32 +01:00
Heiko Schaefer
953ee58120
Don't fail to open the card when GET_FEATURE_REQUEST returns with an error (this is a problem when running on jcardsim). 2021-12-10 17:51:21 +01:00
Heiko Schaefer
c643397989
Update openpgp-card-sequoia dependency version. 2021-12-02 18:59:37 +01:00
Heiko Schaefer
e5788f2a2c
Bump version for release. 2021-12-02 18:55:49 +01:00
Heiko Schaefer
413e8b7d2a
Bump versions for releases. 2021-12-02 18:45:46 +01:00
Heiko Schaefer
e5b7f0c914
Document usage with a cardreader that has a pinpad. 2021-12-02 18:45:08 +01:00
Heiko Schaefer
4ff2cf8b2e
Normalize naming: always use algo_info instead of algo_list. 2021-12-02 18:35:54 +01:00
Heiko Schaefer
281bf403e3
Normalize naming of "private use" DO related fn. 2021-12-02 18:35:54 +01:00
Heiko Schaefer
133b290ae6
Adjust getter fn naming. 2021-12-02 18:35:54 +01:00
Heiko Schaefer
1dc178a7b2
Documentation edits. 2021-12-02 18:35:53 +01:00
Heiko Schaefer
ddcd888834
Refactor determine_ecc_attrs() for reusability.
Use in AlgoSimple::determine_algo().
2021-12-02 16:58:50 +01:00
Heiko Schaefer
b127046bd3
Simplify gen_subkeys() now that AlgoSimple has simple, unambiguous values for RSA. 2021-12-02 14:08:17 +01:00
Heiko Schaefer
c37c34e525
Remove bitsize of e parameter for RSA from SimpleAlgo.
Use determine_rsa_attrs() to get a concrete Algo for a specific card from an AlgoSimple.
2021-12-02 14:08:17 +01:00
Heiko Schaefer
10bdb32c45
Refactor determine_rsa_attrs() to be more easily reusable for key generation. 2021-12-02 13:13:28 +01:00
Heiko Schaefer
9739074b63
Minor error handling/messaging cleanups. 2021-12-01 22:23:22 +01:00
Heiko Schaefer
576110ecce
Update comments. 2021-12-01 22:21:28 +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
9d87cddb60
Minor tweaks in Display impl for Algo. 2021-12-01 00:06:39 +01:00
Heiko Schaefer
c4fcafc25b
Slightly change format of status output for keys. 2021-11-30 23:59:17 +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
a7fb5b2b2c
Don't fail while enumerating readers, when a reader returns an error (just log).
This is useful with hubs that can power down individual ports: when a port is powered down, the reader is still visible to pcsc, but connecting to it returns an error.
2021-11-29 21:26:30 +01:00
Heiko Schaefer
9e9cddc225
Implement setting of 'identity' for NitroKey Start. 2021-11-29 18:33:23 +01:00
Heiko Schaefer
9de79477b9
Implement get_firmware_version (probably YubiKey specific) 2021-11-23 20:38:46 +01:00