Commit graph

239 commits

Author SHA1 Message Date
Heiko Schaefer
67e9f9b9a0
Implement CA Fingerprints 2022-04-23 21:20:59 +02:00
Heiko Schaefer
20ebac295d
Implement User Interaction Flag (UIF) 2022-04-23 21:20:59 +02:00
Heiko Schaefer
c4572de046
Move missing/unimplemented ARD getters from OpenPgpTransaction into ApplicationRelatedData 2022-04-23 21:20:59 +02:00
Heiko Schaefer
fee95b6b36
Update to nom 7 2022-04-21 17:59:39 +02:00
Heiko Schaefer
af3fd437ed
Bump openpgp-card to 0.2.3 (and use in openpgp-card-tools) 2022-04-15 17:52:56 +02:00
Heiko Schaefer
8e7a17faac
Implement Display for ApplicationIdentifier, CardCapabilities, CardServiceData, ExtendedCapabilities, ExtendedLengthInfo. 2022-04-15 17:52:55 +02:00
Heiko Schaefer
aae546326f
Clean up dependencies; move openpgp-card-sequoia test-code into examples/. 2022-04-12 11:41:33 +02:00
Heiko Schaefer
0a54fa92e4
Implement ApplicationIdentifier.manufacturer_name() 2022-04-07 00:03:42 +02:00
Heiko Schaefer
64cbe0c225
Bump openpgp-card version to 0.2.2 2022-03-22 16:49:39 +01:00
Heiko Schaefer
93baf42b84
Re-organize log levels.
- card operations are logged at "info" level
- APDU command/response are logged at "debug"
- other log output is at "trace"
2022-03-22 12:47:42 +01:00
Heiko Schaefer
63b47cffdc
Update/remove dependency on env_logger 2022-03-22 11:27:48 +01:00
Heiko Schaefer
0b4a18b136
Fix clippy lints 2022-03-06 16:15:13 +01:00
Heiko Schaefer
1d33870aa6
openpgp-card 0.2.1 release 2022-02-28 11:08:15 +01:00
Heiko Schaefer
421e4d155f
Make OpenPgp "Send + Sync" 2022-02-28 11:06:00 +01:00
Heiko Schaefer
af0410191e
Implement Display for Lang 2022-02-25 18:56:37 +01:00
Heiko Schaefer
a8637f48b1
Bump versions 2022-02-24 21:25:47 +01:00
Heiko Schaefer
56d03ffca6
Drop use of "anyhow". 2022-02-24 21:25:47 +01:00
Heiko Schaefer
986094fac8
Update/improve crate level documentation. 2022-02-24 21:25:47 +01:00
Heiko Schaefer
e9235164c8
Rename PIN-related functions for clarity 2022-02-24 21:25:47 +01:00
Heiko Schaefer
8ab3a43d6e
Use Error::InternalError less, introduce additional specific error variants. 2022-02-24 21:25:47 +01:00
Heiko Schaefer
088bb88a02
Consistently model pin as &[u8] in openpgp-card.
Fixes #22
2022-02-24 21:25:47 +01:00
Heiko Schaefer
96167f6530
Move OpenPGP card functionality into OpenPgp/OpenPgpTransaction.
This separates backend access (implemented in CardBackend and CardTransaction) from OpenPGP card operations.

Fixes #7
2022-02-24 21:25:47 +01:00
Heiko Schaefer
074bab321e
Add notes that "check_pw1 causes the error counter to decrease" (see #23) on some cards 2022-02-24 21:25:47 +01:00
Heiko Schaefer
12a6a77b8d
CardTransaction::method should not return a Response. Most don't have a return value, the rest should return Vec<u8> instead.
Fixes #19
2022-02-24 21:25:47 +01:00
Heiko Schaefer
636813279b
Reformatted to conform to vanilla rustfmt. 2022-02-24 21:25:47 +01:00
Neal H. Walfield
c4119ae77f
For CardBackend and CardTransaction, implement T for Box<T>
- Allow a Box<dyn CardBackend> to be used in all contexts where a
    type that implements CardBackend can be used.

  - Likewise for CardTransaction.
2022-02-18 17:45:09 +01:00
Heiko Schaefer
282b16fdba
Cleanup: move ?Sized bounds to "where". 2022-02-18 15:09:33 +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
06ad7772a6
Remove remnants of card_app. 2022-02-16 18:21:49 +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
2480745088
Move implementation of low-level OpenPGP functionality from CardApp to CardClient. 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
748c334403
Implement TxClient to use pcsc with transactions (transaction opening code is duplicated) 2022-02-14 17:43:07 +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
b04295543e
Gracefully handle missing algorithm_information in generate_key_simple() 2021-12-10 22:42:37 +01:00
Heiko Schaefer
413e8b7d2a
Bump versions for releases. 2021-12-02 18:45:46 +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
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