Heiko Schaefer
889eedbb79
Remove cardholder_certificate from the public CardClient API, for now (until we learn of actual use cases for this part of the spec).
2022-02-15 16:07:05 +01:00
Heiko Schaefer
574d7be765
Use byte-array data types for url, name, lang in openpgp-card.
2022-02-15 15:34:52 +01:00
Heiko Schaefer
80af7000e0
Use newly published pcsc 2.7 (instead of git)
2022-02-15 15:34:52 +01:00
Heiko Schaefer
0e94871189
Implement PcscCard::transaction() to replace the transaction!() macro.
...
(This currently requires unreleased pcsc from git)
2022-02-15 15:34:52 +01:00
Heiko Schaefer
87788e8912
rename get_txc!() -> transaction!()
2022-02-15 10:53:46 +01:00
Heiko Schaefer
bdde317a2d
Simplify optional $reselect parameter in get_txc!()
2022-02-15 10:53:46 +01:00
Heiko Schaefer
8a759f01f5
Try opening cards three times before failing
2022-02-15 10:53:46 +01:00
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
53f637e0a1
Change transaction-starting macro to consume a PcscCard and produce a TxClient.
...
Rename: start_tx!->get_txc!.
2022-02-14 17:50: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
431da53b28
Don't implement CardClient for PcscClient (users should always use transactions)
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
c43b53d210
Add $reselect parameter to start_tx! that specifies if the card should be re-selected if it was reset
2022-02-14 17:43:07 +01:00
Heiko Schaefer
f4eaca229d
Copy card_caps information from PcscClient to PcscTxClient, if any
2022-02-14 17:43:07 +01:00
Heiko Schaefer
b6b2957580
Naming; cleanup; logging for pcsc::initialize_card()
2022-02-14 17:43:07 +01:00
Heiko Schaefer
514d055c90
Run each test in a PCSC Transaction.
...
(Disabled scdc support in the tests, for now)
2022-02-14 17:43:07 +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
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
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
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
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
383f592865
Don't apply Policy when picking (sub)key from Cert for sign/decrypt.
2021-12-11 23:36:36 +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
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
9739074b63
Minor error handling/messaging cleanups.
2021-12-01 22:23:22 +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
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
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
8674b0e65c
Refactor "Open" to use a borrowed CardApp (instead of owning the CardApp).
2021-11-05 13:34:14 +01: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
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
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