Commit graph

195 commits

Author SHA1 Message Date
Heiko Schaefer
2d1bf919d4
openpgp-card: rename Openpgp and OpenpgpTransaction, restructure modules 2023-09-06 01:16:32 +02:00
Heiko Schaefer
e6658713cb
openpgp-card: rename Algo -> AlgorithmAttributes 2023-09-06 01:16:32 +02:00
Heiko Schaefer
308bd804ae
openpgp-card-sequoia: rustdoc 2023-09-06 01:16:32 +02:00
Heiko Schaefer
d3e30d5c4c
openpgp-card-sequoia: re-export Fingerprint 2023-09-06 01:16:32 +02:00
Heiko Schaefer
ccf605f086
openpgp-card-sequoia: make Card<Transaction>::new private 2023-09-06 01:16:31 +02:00
Heiko Schaefer
dcf98c512c
openpgp-card-sequoia: add Card<Admin>::set_pw_status_bytes 2023-09-06 01:16:31 +02:00
Heiko Schaefer
2601e58fe3
openpgp-card-sequoia: rename Card<Admin>::as_open to ::as_transaction 2023-09-06 01:16:31 +02:00
Heiko Schaefer
212e7f335f
openpgp-card-sequoia: Transaction::to_*_card() methods
Allow more ergonomic switching to User/Sign/Admin states by directly providing a PIN, while also allowing a `None` parameter if verification has already happened.
2023-09-06 01:16:31 +02:00
Heiko Schaefer
15646bc50b
openpgp-card-sequoia: adjust to card-backend refactor
Note that a `open_by_ident` fn was added here: the backend now doesn't have knowledge of applications (like OpenPGP) anymore, so it can't select a card by OpenPGP card ident anymore.
2023-09-05 19:08:34 +02:00
Heiko Schaefer
00345fff2c
openpgp-card-sequoia: expose login_data getter/setter 2023-08-17 12:57:32 +02:00
Heiko Schaefer
7c42ec4d5e
openpgp-card-sequoia: add Card<Open>::into_card() 2023-08-04 15:09:38 +02:00
Heiko Schaefer
365670041f
openpgp-card-sequoia: fix padding for Curve 25519 private key material.
Importing 25519 keys with leading zero bytes led to failures on at least Gnuk and Nitrokey's opgpcard-rs implementation.

Reported by Wiktor Kwapisiewicz, also see https://codeberg.org/wiktor/broken-nitro
2023-04-08 13:49:01 +02:00
Wiktor Kwapisiewicz
5bd73d81fc
Replace nettle with pure-rust RSA for conversions
Fixes: https://gitlab.com/openpgp-card/openpgp-card/-/issues/66
2023-02-10 12:52:47 +01:00
Wiktor Kwapisiewicz
c80e549cc4
Add test for verifying SqRSA conversions 2023-02-10 12:24:51 +01:00
Wiktor Kwapisiewicz
c81f3ba6a9 Fix clippy warnings: remove explicit lifetime and unneeded Deref impl 2023-02-02 09:26:21 +01:00
Wiktor Kwapisiewicz
4510c34cdc Fix clippy lints: directly use variables in format! strings
The source has been reformatted using `cargo +nightly fmt`.
2023-02-02 09:09:47 +01:00
Heiko Schaefer
4d94386b82
Fix new clippy lints for Rust 1.65 2022-11-07 17:32:28 +01:00
Heiko Schaefer
a1d6d8cad2
openpgp-card-sequoia: add comments to url fns 2022-11-03 15:10:15 +01:00
Heiko Schaefer
a4dff1ecb8
rustfmt: enable format_code_in_doc_comments 2022-11-03 14:43:28 +01:00
Heiko Schaefer
5e039204d5
remove "use sequoia_openpgp as openpgp;" pattern 2022-11-03 14:43:28 +01:00
Heiko Schaefer
27697cb2c5
add rustfmt.toml and set group_imports = "StdExternalCrate" 2022-11-03 14:32:00 +01:00
Heiko Schaefer
db682c45db
openpgp-card-sequoia: restructure code, api; add more documentation 2022-10-28 18:55:42 +02:00
Heiko Schaefer
375c002730
openpgp-card-sequoia: add getters for attestation key metadata 2022-10-28 10:17:45 +02:00
Heiko Schaefer
92a3f76dd0
Cardholder name format handling belongs in openpgp-card-sequoia 2022-10-27 18:26:18 +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
d2ac526523
openpgp-card-sequoia: add key_information() 2022-10-25 12:52:49 +02:00
Heiko Schaefer
1f7aa97df5
openpgp-card-sequoia: add ca_fingerprints() 2022-10-25 12:52:49 +02:00
Heiko Schaefer
5dae8e5758
openpgp-card-sequoia: add getters for uif_* 2022-10-25 12:52:49 +02:00
Heiko Schaefer
5fbe9186cb
openpgp-card-sequoia: add wrapper fn for set_identity() 2022-10-25 12:52:48 +02:00
Heiko Schaefer
37a99b63cf
openpgp-card-sequoia: update doc comments 2022-10-25 12:52:48 +02:00
Sosthène Guédon
0c7fae8ef9
openpgp-card-sequoia: Implement MANAGE SECURITY ENVIRONMENT command 2022-09-30 14:24:39 +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
15e7241807
Add Card to the openpgp-card-sequoia API, as a wrapper around a CardBackend/OpenPgp.
This allows using the openpgp-card-sequoia API without needing the crate openpgp-card.
2022-09-28 20:43:57 +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
f87ce5e53d
openpgp-card-sequoia:
add cardholder_name()
2022-09-18 23:18:28 +02:00
Heiko Schaefer
3756521141
openpgp-card-sequoia: Fix make_cert()
[The primary key was missing its CS Key Flags after the changes in 4557c40b, both in the User ID selfsigs, and the DirectKey signature]
2022-09-18 23:18:28 +02:00
Heiko Schaefer
b32cf67196
Don't implicitly add a User ID for the cardholder name, in make_cert() 2022-09-18 15:30:35 +02:00
Heiko Schaefer
2ece9734fd
opgpcard: filter out empty User IDs in make_cert() 2022-09-08 19:25:55 +02:00
Heiko Schaefer
4557c40bda
opgpcard: DRY make_cert(). 2022-09-08 19:25:35 +02:00
Heiko Schaefer
1b483b5c09
opgpcard: Add direct key signature in make_cert().
Without this, pubkey output contains no signatures at all, if no User ID is set.
2022-09-08 19:25:30 +02:00
Heiko Schaefer
d167883835
opgpcard: Remove obsolete FIXME 2022-09-08 19:25:24 +02:00
Heiko Schaefer
96e28b1b4f
opgpcard: Add optional user-id parameter for "pubkey" and "admin generate", to bind User IDs to the certificate. 2022-09-04 20:30:33 +02:00
Heiko Schaefer
11ccc9b5e3
cleanup import 2022-08-05 01:29:43 +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
f9ed6c30c0
Clippy: don't bind unit values. 2022-07-16 14:24:49 +02:00
Heiko Schaefer
7bfeb4df59
Always allow getting Sign/User 2022-06-22 21:50:57 +02:00
Heiko Schaefer
43a9abdabd
Implement signing for auth slot 2022-06-22 21:50:07 +02:00
Heiko Schaefer
17fc6ebeff
Handle empty signing key slot in key_slot() 2022-06-19 14:53:15 +02:00