Heiko Schaefer
db682c45db
openpgp-card-sequoia: restructure code, api; add more documentation
2022-10-28 18:55:42 +02:00
Heiko Schaefer
da65260736
openpgp-card-sequoia: refactor, base API around a Card<State> type
2022-10-27 13:41:24 +02:00
Heiko Schaefer
9723ae40b6
openpgp-card-sequoia: add re-exports
2022-10-25 12:52:49 +02:00
Heiko Schaefer
37a99b63cf
openpgp-card-sequoia: update doc comments
2022-10-25 12:52:48 +02:00
Heiko Schaefer
13b2b62f07
Simplify: use the changed CardBackend handling and the new openpgp-card-sequoia Card struct
2022-09-28 20:44:34 +02:00
Heiko Schaefer
c96377c9df
OpenPGP owns CardBackend (instead of holding a &mut CardBackend).
...
When OpenPgp holds a &mut CardBackend, clients of this library need to keep track of the CardBackend (which adds unnecessary complexity).
2022-09-28 20:42:27 +02:00
Heiko Schaefer
d4f7b8d1b0
Update copyright headers
2022-07-26 09:42:03 +02:00
Heiko Schaefer
6e630254fa
Don't use Cert
to build signer and decryptor.
...
Rename decryptor/signer/authenticator getters.
Add alternatives that don't require PublicKey parameter.
2022-07-25 18:12:03 +02:00
Heiko Schaefer
374f9eec89
Add callback Fn for touch confirmation prompt for decryption operations.
2022-06-11 09:55:06 +02:00
Heiko Schaefer
079cc32427
Add callback Fn for touch confirmation prompt for signing operations.
2022-06-11 09:55:05 +02:00
Heiko Schaefer
f069fb1e20
Model PINs as &[u8] in openpgp-card-sequoia
2022-03-29 22:40:26 +02: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
1496da6dd5
Rename pcsc::PcscCard -> pcsc::PcscBackend, pcsc::TxClient -> pcsc::PcscTransaction
2022-02-18 15:58:12 +01:00
Heiko Schaefer
e01c79e857
Tweak ergonomics of openpgp-card-pcsc usage and simplify client code.
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
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
7573361836
Make ShareMode an optional parameter when opening cards via pcsc.
2022-02-15 10:53:46 +01:00
Heiko Schaefer
376072910e
Adjust openpgp-card-sequoia to changed openpgp-card API
2022-02-15 10:49:42 +01:00
Heiko Schaefer
30341d6c4b
Rename: PcscClient->PcscCard,PcscTxClient->TxClient
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
7031158f5b
Fix doctests
2021-12-12 02:34:56 +01:00
Heiko Schaefer
7a71f88eb6
Rename Open::open() to Open::new()
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
edc89078ce
Make the PublicKey type pub.
2021-11-03 02:26:07 +01:00
Heiko Schaefer
3b3a3b5064
More documentation
2021-09-11 13:00:05 +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
a5b6ce468d
Add high level crate documentation.
2021-09-11 12:42:01 +02:00
Heiko Schaefer
55e7a2c794
Re-ordering the -sequoia crate, as a first step towards defining its API.
2021-09-11 12:42:01 +02:00
Heiko Schaefer
ad929598ce
Rename Features -> ExCapFeatures
2021-09-03 20:03:50 +02:00
Heiko Schaefer
7a78271211
Rename decrypt() to decipher(), to correspond with naming in spec.
...
Add a note to investigate PKCS#1 formatting of the command input.
2021-09-03 13:45:19 +02:00
Heiko Schaefer
8b5894e961
Rename get_app_data() to get_application_related_data() to correspond with naming in spec.
2021-09-02 22:09:46 +02:00
Heiko Schaefer
f5b31aac26
Move KeySet from card_do.rs to lib.rs
...
(It is not a DO, only a container to conveniently handle triples of DO)
2021-09-02 21:59:05 +02:00
Heiko Schaefer
6b3ae2cf62
Adjust DO struct names to correspond to naming in the spec
2021-09-02 21:54:44 +02:00
Heiko Schaefer
316ca7eb3a
Rename error types and re-export them at the crate top level.
2021-09-01 23:59:56 +02:00
Heiko Schaefer
f501c09d2f
Add #[non_exhaustive] to error and crypto_data enums.
2021-09-01 22:46:04 +02:00
Heiko Schaefer
f8d998b3a6
Implement From<CardClientBox>, Into<CardClientBox> for CardApp and adjust client code.
2021-09-01 22:26:25 +02:00
Heiko Schaefer
88c924c7d9
Add documentation, normalize fn names.
2021-09-01 20:45:18 +02:00
Heiko Schaefer
935c77f59a
Rename ApplicationRelatedData::get_aid() to get_application_id()
2021-08-28 19:58:34 +02:00
Heiko Schaefer
fdac0de34f
Add a CI job to run 'cargo test' with rustc/cargo from debian stable.
...
Minor fixes so that the code compiles with rustc 1.48
2021-08-27 15:15:31 +02:00
Heiko Schaefer
7c8c72339b
Use KeyGenerationTime in openpgp-card APIs (instead of u32 or SystemTime)
2021-08-26 19:27:08 +02:00
Heiko Schaefer
eaf46e6bbb
Make fields private, add accessor methods.
2021-08-26 17:59:54 +02:00
Heiko Schaefer
f3bfecd185
Use the openpgp_card::card_do::Fingerprint type instead of [u8; 20].
...
Add a TryFrom<&[u8]> implementation to Fingerprint.
2021-08-25 21:25:20 +02:00
Heiko Schaefer
c14664b9d5
Implement get_security_support_template()
2021-08-21 20:22:03 +02:00
Heiko Schaefer
5109ac5445
Rename card_data -> card_do
2021-08-21 19:02:04 +02:00
Heiko Schaefer
d599471be5
Refactor: move cryptographic data structures to the module crypto_data
2021-08-21 17:43:44 +02:00
Heiko Schaefer
44e915d3e0
Refactor: move OpenPGP card data structures (and parsing) into the module card_data
2021-08-21 15:59:31 +02:00
Heiko Schaefer
c872e46e80
Refactor: move accessor fn for "Application Related Data" into the struct ApplicationRelatedData.
2021-08-20 22:19:39 +02:00
Heiko Schaefer
8aae0a357e
Split the Response
type into an internal RawResponse
type which also contains the status bytes, and an external Response
type that can only be generated from a RawResponse with status "ok".
...
This removes the need for external users of openpgp-card to check the status or operations.
That is, openpgp-card now always returns an `Err` if the status of a command is not ok.
2021-08-20 13:25:58 +02:00
Heiko Schaefer
85a05167d1
Refactor, Document API.
...
(Moved algorithm-related data structures to algorithm.rs)
2021-08-18 19:19:22 +02:00