Heiko Schaefer
5af213562b
Add decryption to card-functionality tests.
2021-07-17 02:24:43 +02:00
Heiko Schaefer
1bd1326a2b
For now: depend on sequoia-ipc from the branch where assuan::Client is Send+Sync
2021-07-16 18:52:43 +02:00
Heiko Schaefer
f59a8a948c
Remove unused imports; Lints.
2021-07-16 18:44:59 +02:00
Heiko Schaefer
77e32e02c2
Add the crate card-functionality, which implements a test suite to test the openpgp-card crate against a set of OpenPGP cards
2021-07-16 17:26:10 +02:00
Heiko Schaefer
4b7b4a2ab6
Use ScdClient::open_scdc_by_serial() in test code.
2021-07-16 17:24:53 +02:00
Heiko Schaefer
e34285dc68
Add helper fn vka_as_uploadable_key()
2021-07-16 17:23:47 +02:00
Heiko Schaefer
0fffb0c91b
Refactor for multiple card backends
2021-07-16 17:15:21 +02:00
Heiko Schaefer
610478695f
Bugfix in interpreting Sex value
2021-07-16 16:46:34 +02:00
Heiko Schaefer
c8a742e8d0
Imports cleanup; comment
2021-07-16 16:45:57 +02:00
Heiko Schaefer
1c15e61fb4
Add get_key_generation_times()
2021-07-16 16:39:02 +02:00
Heiko Schaefer
da51f27173
Simplify code.
2021-07-16 16:31:14 +02:00
Heiko Schaefer
01126aabdf
Support scdaemon as an alternative backend for interaction with OpenPGP cards.
2021-07-16 16:30:56 +02:00
Heiko Schaefer
b8bd87bd7e
Remove Arc<Mutex<>> attempts, rely on assuan::Client now being Send+Sync
2021-07-16 14:15:03 +02:00
Heiko Schaefer
68cad4c147
Implement ScdClient::open_scdc_by_serial() to open a specific card through scdaemon
2021-07-15 13:22:33 +02:00
Heiko Schaefer
32dbecbda2
Test code for key uploading
2021-07-15 13:13:56 +02:00
Heiko Schaefer
ec8c15cab3
Add conversion implementations
2021-07-14 22:31:00 +02:00
Heiko Schaefer
c445757633
Implement get_key_generation_times()
2021-07-14 21:59:33 +02:00
Heiko Schaefer
7afe2f52c2
Refactor card initialisation
2021-07-14 18:03:07 +02:00
Heiko Schaefer
38fb6bd970
Add a helper method to construct a CardUploadableKey from a ValidErasedKeyAmalgamation
2021-07-14 18:02:11 +02:00
Heiko Schaefer
42c4f14d57
- Add documentation
...
- Add placeholders for more tests
2021-07-14 02:09:35 +02:00
Heiko Schaefer
499e128b4e
Minimize the output data: assert data that is always expected - only return Status bytes that diverge between cards.
...
Added a test that sets and checks name, lang, sex, url data.
2021-07-14 00:06:30 +02:00
Heiko Schaefer
6c7ce6228c
Fix mistake in mapping of u8 value to Sex
2021-07-13 22:27:44 +02:00
Heiko Schaefer
6601d2d09b
- return data from tests in a Vec
...
- run a test on a set of cards
2021-07-13 20:38:27 +02:00
Heiko Schaefer
3bba67fbcc
First draft of low-level card functionality testing
2021-07-13 00:09:50 +02:00
Heiko Schaefer
31e577c896
Refactoring low level API for card-functionality tests
2021-07-13 00:08:45 +02:00
Heiko Schaefer
89745c0268
Experiment: wrap Arc<Mutex<CardSign>> in CardSigner
2021-07-12 13:54:59 +02:00
Heiko Schaefer
3872b585d8
Add SPDX copyright headers
2021-07-12 12:25:58 +02:00
Heiko Schaefer
de0645ef0e
refactor opening of cards
2021-07-12 12:15:31 +02:00
Heiko Schaefer
1187e816d0
Cleanup
2021-07-11 17:36:11 +02:00
Heiko Schaefer
2343bd8310
Initial scdc experimentation.
2021-07-10 22:08:36 +02:00
Heiko Schaefer
8e3c6c0046
Add an abstraction layer (CardClient) for access to the card, in preparation for scdaemon client mode.
2021-07-09 20:37:52 +02:00
Heiko Schaefer
efe88e3582
Don't expect data in the response to SELECT.
2021-07-07 00:30:31 +02:00
Heiko Schaefer
d1531de4f7
Break out low-level OpenPGP card functionality into card_app.rs
...
This split makes it possible to write tests based on the low-level API to explore the behaviour of cards in detail.
2021-07-05 21:18:34 +02:00
Heiko Schaefer
dc89010869
Re-format comment
2021-07-05 11:48:34 +02:00
Heiko Schaefer
fd9cd6eabd
Change set* commands to leave out 'Le', because no response data is expected.
...
(The Floss-Card 3.4 rejects set* commands with "expected" response data)
2021-07-04 01:03:09 +02:00
Heiko Schaefer
3bc14e9d19
Implement check_pw1/3(), which calls "7.2.2 VERIFY" with no data ("Lc empty"), to ask the card for verification status.
...
(It seems that the Yubikey 5 doesn't support this type of request, but instead responds "6A 80: Incorrect parameters")
2021-07-04 00:04:35 +02:00
Heiko Schaefer
d1f854f2f0
Implement get_pw_status_bytes()
2021-07-03 21:23:17 +02:00
Heiko Schaefer
2a836546b3
Adjust README
2021-07-03 18:24:56 +02:00
Heiko Schaefer
01fab2d91c
Use an "ident" to specify a card.
...
The ident is a combination of manufacturer and serial number.
The OpenPGP card spec stipulates:
"Each OpenPGP application on a card from a manufacturer/personaliser has a unique serial number"
2021-07-03 18:17:30 +02:00
Heiko Schaefer
920da0442b
Rename structs that represent different verification states of the OpenPGP card.
2021-07-02 19:47:34 +02:00
Heiko Schaefer
3fcb78caa5
Cleanup/fix CI config.
2021-07-02 00:24:29 +02:00
Heiko Schaefer
308210e615
Fix tests.
2021-07-02 00:04:00 +02:00
Heiko Schaefer
b427a9d2e7
Add missing enum variant
2021-07-01 23:52:23 +02:00
Heiko Schaefer
f00865ab75
rustfmt
2021-07-01 23:46:12 +02:00
Heiko Schaefer
959342bb5a
Add CI for reuse/test/fmt
2021-07-01 23:12:01 +02:00
Heiko Schaefer
60243b6d7c
Add handling of unknown Algorithms/OIDs in algo_info::parse
2021-07-01 22:45:35 +02:00
Heiko Schaefer
c800a54597
Add Ed448 and X448 to parseable algorithms (for latest Gnuk)
2021-07-01 04:18:59 +02:00
Heiko Schaefer
7ee737068b
Remove Le-hack
2021-07-01 04:18:01 +02:00
Heiko Schaefer
1f77472746
Add version to dependency
2021-06-30 22:37:20 +02:00
Heiko Schaefer
f8b10927e7
Documentation links
2021-06-30 22:34:42 +02:00