Commit graph

141 commits

Author SHA1 Message Date
Heiko Schaefer
3df649d149
Release: openpgp-card 0.2.4, openpgp-card-tools 0.0.9 2022-04-23 21:23:53 +02:00
Heiko Schaefer
b795f32f09
opgpcard: Print additional card status details 2022-04-23 21:20:59 +02:00
Heiko Schaefer
34b1be073a
Clean up SSH public key output text 2022-04-23 21:03:59 +02:00
Heiko Schaefer
c275bfc7dd
Add more help output, re-organize commands 2022-04-21 20:06:16 +02:00
Heiko Schaefer
3442bd265d
Edits for consistency 2022-04-21 19:44:03 +02:00
Heiko Schaefer
8514ef35d1
Tweak opgpcard status output. 2022-04-21 19:39:00 +02:00
Heiko Schaefer
f4e344b959
Bump openpgp-card-sequoia to 0.0.11; openpgp-card-tools to 0.0.8 2022-04-21 18:24:14 +02:00
Heiko Schaefer
9b4a603ace
Move cardholder URL options to tools/README.md, to keep the guide short. 2022-04-21 18:22:28 +02:00
Heiko Schaefer
9edd459d86
Update to rpassword 6 2022-04-21 18:01:29 +02:00
Heiko Schaefer
3dadc5d16f
Always style PIN names as "User PIN" and "Admin PIN", in user interactions. 2022-04-21 17:58:05 +02:00
Heiko Schaefer
fe8768298b
Remove extra opgpcard-pin program. Its functionality has been folded into opgpcard. 2022-04-21 13:28:22 +02:00
Heiko Schaefer
99e0c6caaf
Implement, document PIN management in opgpcard 2022-04-21 13:28:21 +02:00
Heiko Schaefer
fbdb9e87b2
Adjust openpgp-card-sequoia API to take resetting code as &[u8] instead of &str. 2022-04-21 13:28:21 +02:00
Heiko Schaefer
d3e49e0bb3
Add cautionary text about OpenPGP cert export 2022-04-20 12:32:49 +02:00
Heiko Schaefer
33c0c5a3df
Update documentation for opgpcard info. 2022-04-15 18:04:43 +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
55696346c9
Use Display trait to print card information 2022-04-15 17:52:55 +02:00
Heiko Schaefer
e6c40be8ad
Adjusted/improved handling of public keys (especially to find the correct KDF parameters for ECC decryption keys):
- "Brute force" find the right KDF parameters in the new helper fn public_key_material_and_fp_to_key() [try possible parameters until a matching fingerprint is found, error if none].
- In `opgpcard pubkey`, use public_key_material_and_fp_to_key() to find the right parameters for the ECC decryption subkey (this subcommand now fails when the fingerprint on the card doesn't match the fingerprint of the public key data for that key slot)
- When generating OpenPGP ECC decryption keys from public key material (including to compute fingerprints from the key material), use SHA256/AES128 as default parameters.
2022-04-15 16:17:04 +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
43c8c12870
Bump openpgp-card-tools version to 0.0.6 2022-04-03 02:28:11 +02:00
Heiko Schaefer
58b8454e33
Implement an "info" command that prints capabilities/metadata for a card (the output format is currently not very nice, it would benefit from working on https://gitlab.com/hkos/openpgp-card/-/issues/9). 2022-04-03 02:27:27 +02:00
Heiko Schaefer
2f903f5907
Implement a "pubkey" command that prints the OpenPGP public key representation of the keys on a card. 2022-04-03 00:58:32 +02:00
Heiko Schaefer
6525c2ddbc
openpgp-card-sequoia release 0.0.9, use as a dependency in openpgp-card-tools 0.0.5 2022-03-30 03:15:07 +02:00
Heiko Schaefer
79499e2e1d
Bump openpgp-card-tools to 0.0.5 2022-03-30 02:50:30 +02:00
Heiko Schaefer
1f7d17bc70
Optionally allow interactive PIN entry. 2022-03-30 01:31:49 +02:00
Heiko Schaefer
f069fb1e20
Model PINs as &[u8] in openpgp-card-sequoia 2022-03-29 22:40:26 +02:00
Heiko Schaefer
e95b8c33bf
Expand documentation for opgpcard-pin 2022-03-25 21:55:18 +01:00
Heiko Schaefer
d6f0d90899
Add more example output, minor editing. 2022-03-25 21:25:14 +01:00
Heiko Schaefer
e18affc1ea
Print guidance for the '--card' parameter in status/ssh, when more than one card is plugged in. 2022-03-25 21:05:40 +01:00
Heiko Schaefer
d39d88694d
Adjust mistakenly copied SPDX header 2022-03-23 12:11:07 +01:00
Heiko Schaefer
63b47cffdc
Update/remove dependency on env_logger 2022-03-22 11:27:48 +01:00
Heiko Schaefer
2f32583fd1
Adjust opgpcard ssh output 2022-03-18 17:00:37 +01:00
Heiko Schaefer
4656394112
Move printing of ssh information into its own command 2022-03-18 12:38:15 +01:00
Heiko Schaefer
0b4a18b136
Fix clippy lints 2022-03-06 16:15:13 +01:00
Heiko Schaefer
0d2bf91676
Upgrade to clap 3.1 2022-03-06 15:19:56 +01:00
Heiko Schaefer
421e4d155f
Make OpenPgp "Send + Sync" 2022-02-28 11:06:00 +01:00
Heiko Schaefer
326ba895a9
Print language setting(s) in display format 2022-02-25 18:56:37 +01:00
Heiko Schaefer
a8637f48b1
Bump versions 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
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
636813279b
Reformatted to conform to vanilla rustfmt. 2022-02-24 21:25:47 +01:00
Neal H. Walfield
64119c4f29
Where possible, avoid unnecessary boxing. 2022-02-18 17:43:29 +01:00
Heiko Schaefer
1496da6dd5
Rename pcsc::PcscCard -> pcsc::PcscBackend, pcsc::TxClient -> pcsc::PcscTransaction 2022-02-18 15:58:12 +01:00
Heiko Schaefer
265587252a
lints 2022-02-18 15:06:31 +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
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
dcf73bd86d
More explicit data type Lang for language. 2022-02-16 10:02:35 +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
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
984aa219bf
Print the auth key in ssh public key format, in the "status" 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
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
30341d6c4b
Rename: PcscClient->PcscCard,PcscTxClient->TxClient 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
b367043a12
Implement a macro "start_tx!" for DRY transaction starting 2022-02-14 17:43:07 +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
bba1c264dd
release openpgp-card-sequoia 0.0.7 2021-12-12 01:36:50 +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
c643397989
Update openpgp-card-sequoia dependency version. 2021-12-02 18:59:37 +01:00
Heiko Schaefer
413e8b7d2a
Bump versions for releases. 2021-12-02 18:45:46 +01:00
Heiko Schaefer
e5b7f0c914
Document usage with a cardreader that has a pinpad. 2021-12-02 18:45:08 +01:00
Heiko Schaefer
b127046bd3
Simplify gen_subkeys() now that AlgoSimple has simple, unambiguous values for RSA. 2021-12-02 14:08:17 +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
c4fcafc25b
Slightly change format of status output for keys. 2021-11-30 23:59:17 +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
9e9cddc225
Implement setting of 'identity' for NitroKey Start. 2021-11-29 18:33:23 +01:00
Heiko Schaefer
9de79477b9
Implement get_firmware_version (probably YubiKey specific) 2021-11-23 20:38:46 +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
a24db398b6
Print PublicKeyMaterial for "status --verbose". 2021-11-16 19:19:29 +01:00
Heiko Schaefer
7a71f88eb6
Rename Open::open() to Open::new() 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
22bbf77707
Add examples for passing PINs via file-descriptors.
Change the example card ident so that the serial number doesn't look like the default admin PIN.
2021-11-06 12:36:59 +01:00
Heiko Schaefer
9955c9e1be
Normalize PIN-Parameters in opgpcard.
"-P" is now always the admin pin file, while "-p" is the user pin file.
2021-11-06 11:59:58 +01:00
Heiko Schaefer
8d31ee80db
Document that $HOME/.cargo/bin needs to be added to PATH 2021-11-05 23:40:07 +01:00
Heiko Schaefer
2085fdc66d
Release tools 2021-11-05 23:14:48 +01:00
Heiko Schaefer
1a37b437e2
Releases 2021-11-05 23:07:48 +01:00
Heiko Schaefer
f82cc6ae2a
Add documentation on installing. 2021-11-05 22:57:10 +01:00
Heiko Schaefer
cda224d738
Add more logic to key generation 2021-11-05 22:56:23 +01:00
Heiko Schaefer
02401d12f4 Initial parts of key generation. 2021-11-05 13:34:14 +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
8dd83b6c55 Extend comment 2021-11-05 13:34:14 +01:00
Heiko Schaefer
308e8bfabd enable env_logger 2021-11-03 02:24:59 +01:00
Heiko Schaefer
921e0d22d9 Add some more user facing output.
(Including for the case when a card doesn't allow a user password change when no key material exists on the card, which is a particular policy of Gnuk cards)
2021-10-30 01:25:08 +02:00
Heiko Schaefer
bc08ca68ed Releases 2021-10-29 22:51:23 +02:00
Heiko Schaefer
59d77f584d Add openpgp-card-tools crate 2021-10-29 22:38:01 +02:00