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
Heiko Schaefer
10ddb8918d
Add an RSA1k key for testing (with older cards).
2021-09-21 17:18:43 +02:00
Heiko Schaefer
cf8fb05210
Don't set a policy implicitly.
2021-09-21 16:59:01 +02:00
Heiko Schaefer
dbbe4ed4c1
Fix comparison of card ident (the test config shouldn't be case sensitive)
2021-09-21 16:50:34 +02:00
Heiko Schaefer
56e3845ea4
Explicitly set policy when calling util::upload_subkeys()
2021-09-21 11:22:56 +02:00
Heiko Schaefer
0d249a47fd
sq_util::get_subkey() is now the central helper fn for picking a (sub)key from a Cert.
2021-09-11 16:27:31 +02:00
Heiko Schaefer
936f04663c
Rename list_cards() -> cards().
...
Remove open_yolo() from the openpgp-card-pcsc API (it's easy enough to approximate by using cards())
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
8814dbd766
Add test_change_pw() and test_resetting(), both of which are still in an exploratory stage.
2021-09-09 01:06:44 +02:00
Heiko Schaefer
c5d03bd677
Rename StatusByte -> StatusBytes
2021-09-07 11:50:20 +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
316ca7eb3a
Rename error types and re-export them at the crate top level.
2021-09-01 23:59:56 +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
5a6a5754e1
Add an RSA3k private key for import tests
2021-08-29 18:00:23 +02:00
Heiko Schaefer
a89a106d20
Print ApplicationId in test_print_caps
2021-08-28 19:59:23 +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
c6ba204293
Move debug prints for key generation from keys.rs to tests.rs
2021-08-25 21:18:13 +02:00
Heiko Schaefer
833a22f8f0
Add test to explore cardholder cert functionality
2021-08-25 16:42:18 +02:00
Heiko Schaefer
013af97c23
Implement get_private() and set_private().
2021-08-22 18:59:54 +02:00
Heiko Schaefer
cb8f3c7cb1
Elaborate "PW status bytes", fix broken naming of members.
...
Implement set_pw_status_bytes().
Add test code to card-functionality.
2021-08-22 01:20:14 +02:00
Heiko Schaefer
5109ac5445
Rename card_data -> card_do
2021-08-21 19:02:04 +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
7a7db8a131
Rename get_cards->into_cardapps;
...
Fix get_card_app() [doesn't need &mut]
2021-08-20 22:19:39 +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
d62f73e84c
Add panic message.
2021-08-20 13:25:58 +02:00
Heiko Schaefer
191c6221b4
Print human readable card name.
2021-08-20 13:25:58 +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
73cb298361
Adjust crate name to be in the same "namespace" as the other openpgp-card-* crates.
2021-08-19 17:39:24 +02:00
Heiko Schaefer
85a05167d1
Refactor, Document API.
...
(Moved algorithm-related data structures to algorithm.rs)
2021-08-18 19:19:22 +02:00
Heiko Schaefer
0b0e9c48fc
Refactor:
...
- Move high-level API from openpgp-card to openpgp-card-sequoia
- Move the pcsc backend into the separate crate openpgp-card-pcsc
2021-08-18 14:03:54 +02:00
Heiko Schaefer
b5ebc6b43c
Print card name from config in test output
2021-08-17 14:25:57 +02:00
Heiko Schaefer
413e464cff
Remove ciphertexts from the test data directory (ciphertext is now computed on the fly in import tests)
2021-08-15 17:16:15 +02:00
Heiko Schaefer
404d6dce3f
Configure private-key-data for import tests in the toml configuration
2021-08-15 17:12:50 +02:00
Heiko Schaefer
5237c1af85
Make the config.keygen optional in the configuration file
2021-08-13 21:28:10 +02:00
Heiko Schaefer
3361c8b79d
Extend Test configuration file format.
...
Run key generation tests for the algorithms specified in the configuration.
2021-08-13 20:02:53 +02:00
Heiko Schaefer
765b4e8fdc
Move "make_cert" into openpgp-card-sequoia
2021-08-13 20:02:53 +02:00
Heiko Schaefer
f1add02672
Lint fix
2021-08-13 20:02:53 +02:00
Heiko Schaefer
a0370c5c53
WIP: more testing in the context of on-card key generation.
...
In particular, add a decryption test.
2021-08-13 20:02:53 +02:00
Heiko Schaefer
6904551c7d
Set key flags while generating a Cert from card information.
2021-08-13 20:02:53 +02:00
Heiko Schaefer
ca5dd61001
Assemble information from the card into a Cert.
...
Still a WIP (this code serves in part to explore handling of Certs for cards).
2021-08-13 20:02:53 +02:00
Heiko Schaefer
27b6d686d9
Refactor card-functionality crate, tentatively breaking tests into groups.
2021-08-13 20:02:53 +02:00
Heiko Schaefer
3edadb8607
Add a "test" fn that prints algorithm information for cards.
2021-08-13 20:02:53 +02:00
Heiko Schaefer
d9a25c23c9
Remove printlns
2021-08-07 00:54:01 +02:00
Heiko Schaefer
feb6f7be51
Implement get_pub_key()
2021-08-07 00:18:13 +02:00
Heiko Schaefer
7acc1deb98
- Implement key generation (without specifying an algorithm so the current algo is used. only supports RSA for now)
...
- Refactor: rename key_upload.rs -> keys.rs
- Fix handling of key timestamps
2021-08-06 20:14:02 +02:00
Heiko Schaefer
538bfb51d4
Sort imports.
2021-08-06 16:44:48 +02:00
Heiko Schaefer
3effe39aa1
Moved handling of cards and configuration of cards for testing to cards.rs
2021-08-05 15:31:14 +02:00
Heiko Schaefer
f67501d0f9
Lints
2021-08-05 15:16:16 +02:00
Heiko Schaefer
7541b2f493
Expand documentation in example config file, reformat config.
2021-08-04 22:29:55 +02:00
Heiko Schaefer
d2c4152595
Move the configuration of cards for card-functionality test suite into the file config/test-cards.toml
.
...
Add an example for this config file in `config/test-cards-example.toml`.
Add handling for this toml configuration.
2021-08-04 19:15:45 +02:00
Heiko Schaefer
1af3a4b5ee
Explore shutting down scdaemon when accessing cards via pcsc.
2021-08-03 23:18:19 +02:00
Heiko Schaefer
d5b1b2daa3
Adjust to new ScdClient API, socket is not needed anymore.
2021-08-03 17:46:55 +02:00
Heiko Schaefer
083db2a8be
Adjust to changed ScdClient API
2021-08-03 15:32:48 +02:00
Heiko Schaefer
595bf3cf4d
Lints
2021-07-29 18:35:25 +02:00
Heiko Schaefer
420550ce75
Print the underlying error when a key upload fails
2021-07-29 18:35:25 +02:00
Heiko Schaefer
396ce9d8c6
Add a "test" that prints historical bytes, extended capabilities and extended length information.
...
(This is used for debugging during development, not as an actual test)
2021-07-29 18:35:25 +02:00
Heiko Schaefer
d67c01c9f6
Adjust to CardClient API changes
2021-07-29 18:35:25 +02:00
Heiko Schaefer
ee6b45477e
Clean up output format
2021-07-21 01:48:53 +02:00
Heiko Schaefer
3ed3c5c33f
Cleanup comment
2021-07-20 20:35:43 +02:00
Heiko Schaefer
03e07ef2d0
clippy lint
2021-07-20 20:30:14 +02:00
Heiko Schaefer
c789c90b9e
- more explicit error handling
...
- add abstraction for types of card
2021-07-20 20:30:14 +02:00
Heiko Schaefer
b47b7930f0
Add 25519 and NIST256/521 keys to the set of tests.
2021-07-18 21:41:03 +02:00
Heiko Schaefer
50295fdc84
Add more test keys and encrypted test-messages.
2021-07-18 21:30:32 +02:00