Commit graph

621 commits

Author SHA1 Message Date
Heiko Schaefer
635fa0e6ac
Remove gratuitous fn from public API 2022-02-18 15:06:31 +01:00
Heiko Schaefer
09c47e4acd
Update to sshkeys 0.3.2, adjust to API changes. 2022-02-18 15:06:31 +01:00
Heiko Schaefer
c23f23c619
Introduce the new CardBackend trait.
A CardBackend represents a card without an open transaction (a CardTransaction implementation can be acquired from a CardBackend).
2022-02-18 15:06:31 +01:00
Heiko Schaefer
5133051626
Rename CardClient -> CardTransaction. 2022-02-18 15:06:31 +01:00
Heiko Schaefer
5b2979874b
Implement methods on the CardClient trait rather than on dyn CardClient.
This patch is largely based on input and an MR by @nwalfield.
2022-02-18 15:06:31 +01:00
Heiko Schaefer
05d5af4c3c
Set timeout for hw-keygen to 2h.
Generating keys on cards takes a long time, the default 1h is sometimes just barely enough for all currently tested cards, but not always.
2022-02-17 09:54:22 +01:00
Heiko Schaefer
06ad7772a6
Remove remnants of card_app. 2022-02-16 18:21:49 +01:00
Heiko Schaefer
a276c1fcd0
Clean up log output. 2022-02-16 18:09:21 +01:00
Heiko Schaefer
f1f4533332
Remove TxClient::tx() from API; clean up uses. 2022-02-16 17:46:26 +01:00
Heiko Schaefer
dcf73bd86d
More explicit data type Lang for language. 2022-02-16 10:02:35 +01:00
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
50d8b89fd2
Break from macro 2022-02-15 10:53:46 +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
984aa219bf
Print the auth key in ssh public key format, in the "status" output. 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
c53cf33137
more debug output 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
e92cad5b6a
Adjust openpgp-card-examples to changed openpgp-card API 2022-02-15 10:53:45 +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
6100ec4318
Adjust tools to changed openpgp-card API 2022-02-15 10:49:54 +01:00
Heiko Schaefer
376072910e
Adjust openpgp-card-sequoia to changed openpgp-card API 2022-02-15 10:49:42 +01:00
Heiko Schaefer
1b1f6bc2df
Adjust documentation 2022-02-14 17:50:42 +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
111f9e9631
Adjust to openpgp-card 0.2 API 2022-02-14 17:46:16 +01:00
Heiko Schaefer
405a2a1fc1
Don't fail when a card errors on "get DO ARD", we could still find the card we're looking for 2022-02-14 17:46:16 +01:00
Heiko Schaefer
e9ecfea4cf
Debug print card "status" before reading ARD 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
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