Commit graph

183 commits

Author SHA1 Message Date
Heiko Schaefer
92a3f76dd0
Cardholder name format handling belongs in openpgp-card-sequoia 2022-10-27 18:26:18 +02:00
Nora Widdecke
f0c9fcc842
opgpcard: Add and improve help texts 2022-10-27 17:44:00 +02:00
Nora Widdecke
e656946335
opgpcard: Unify on aut-fp not auth-fp 2022-10-27 17:42:21 +02:00
Nora Widdecke
eebe3f0fc2
opgpcard: Use the name cv25519 2022-10-27 17:42:21 +02:00
Nora Widdecke
a580a9c8a7
opgpcard: Enable dynamic line wrapping 2022-10-27 17:42:21 +02:00
Heiko
2fb4f3961a Merge branch 'nora/mandatory_generate_output' into 'main'
opgpcard: Prevent losing the generated cert.

Closes #49

See merge request openpgp-card/openpgp-card!23
2022-10-27 14:55:32 +00:00
Nora Widdecke
4c5a166d2b
opgpcard: Remove ident line from output.
- The certificate generated by admin generate is written to a file,
    prefixed with a line containing the card identifier. That means the
    file is not immediately usable as a pgp certificate.

  - Remove the identifier line.
2022-10-27 15:48:55 +02:00
Nora Widdecke
dfb7f3275d
opgpcard: Replace flagfile with environment variable
- A flagfile requires manual management with touch and rm, replace it
    with an environment variable that can be set more conveniently.

  - Removing tools/tests/opgpcard.rs is not necessary, the file it links
    to is always generated in build.rs, either with subplot tests or
    without. But it is always there, so cargo test does not fail for
    that reason.
2022-10-27 15:46:42 +02:00
Nora Widdecke
db34132dda
opgpcard: Make docker script more robust 2022-10-27 15:11:45 +02:00
Nora Widdecke
bfe22ec1b8
opgpcard: Make shebang system independent 2022-10-27 15:11:45 +02:00
Nora Widdecke
f0d6d4b1d2
opgpcard: Add rudimentary logging to build.rs 2022-10-27 15:11:45 +02:00
Nora Widdecke
71f6c98ed5
opgpcard: Prevent losing the generated cert.
- opgpcard admin generate by default prints the corresponding
    certificate to stdout, where it's easy for a careless user to lose
    it.

  - Make the --output argument mandatory, so the certificate is always
    stored in a file.
2022-10-27 15:10:28 +02:00
Heiko Schaefer
538fc645c5
opgpcard: use new Card<State> interface 2022-10-27 13:41:24 +02:00
Nora Widdecke
cc6ce53364
make rustfmt happy 2022-10-26 19:41:07 +02:00
Nora Widdecke
77ed66bde7
opgpcard: Add Lars to license header 2022-10-26 19:07:24 +02:00
Nora Widdecke
00d40e940b
opgpcard: refactor admin generate 2022-10-26 19:07:24 +02:00
Nora Widdecke
72f8a1994b
opgpcard: Extract admin command into module 2022-10-26 18:58:31 +02:00
Nora Widdecke
1be21cfc7f
opgpcard: Extract attestation command into module 2022-10-26 18:58:30 +02:00
Nora Widdecke
25ae73711d
opgpcard: Read pinpad_modify only when needed 2022-10-26 18:58:30 +02:00
Nora Widdecke
56d70e3218
opgpcard: Clean up returns 2022-10-26 18:58:30 +02:00
Nora Widdecke
1ecaf396c7
opgpcard: Reorganize pin 2022-10-26 18:58:30 +02:00
Nora Widdecke
b6dfa08d52
opgpcard: Extract pin command into module 2022-10-26 18:58:30 +02:00
Nora Widdecke
9b7e614772
opgpcard: Extract set_identity command into module 2022-10-26 18:58:30 +02:00
Nora Widdecke
d0ad41c9f5
opgpcard: Extract factory_reset command into module 2022-10-26 18:58:30 +02:00
Nora Widdecke
3615087065
opgpcard: Extract sign command into module 2022-10-26 18:58:30 +02:00
Nora Widdecke
9e5e30cea4
opgpcard: Extract decrypt command into module 2022-10-26 18:58:30 +02:00
Nora Widdecke
3ff4127fff
opgpcard: Extract pubkey command into module 2022-10-26 18:58:30 +02:00
Nora Widdecke
660ba2d3bb
opgpcard: Extract ssh command into module 2022-10-26 18:58:30 +02:00
Nora Widdecke
d05feec605
opgpcard: Extract info command into module 2022-10-26 18:58:30 +02:00
Nora Widdecke
f0ab24b040
opgpcard: Extract status command into module 2022-10-26 18:58:30 +02:00
Nora Widdecke
4e575685a1
opgpcard: Make default output values type safe 2022-10-26 12:02:53 +02:00
Heiko Schaefer
6df7e2d56f
opgpcard: tighten/clarify output 2022-10-26 01:12:51 +02:00
Heiko Schaefer
bb577647c4
opgpcard: clarify/add comment 2022-10-26 01:00:29 +02:00
Heiko Schaefer
4674b95557
opgpcard: properly error out of sign/decrypt, if the relevant key slot is empty 2022-10-25 19:03:53 +02:00
Nora Widdecke
23b4c05c3d
opgpcard: Make algo selection type safe 2022-10-25 14:55:39 +02:00
Nora Widdecke
1834762879
opgpcard: Remove negative logic 2022-10-25 14:53:05 +02:00
Nora Widdecke
e81ebd21a0
opgpcard: Restrict values of id of set-identity 2022-10-25 14:53:05 +02:00
Nora Widdecke
a7731ec467
opgpcard: Add Nora to license headers 2022-10-25 14:53:05 +02:00
Nora Widdecke
e9787dcbd3
opgpcard: Make TouchPolicy type safe 2022-10-25 14:53:05 +02:00
Nora Widdecke
9dd4f3ab56
opgpcard: Make the KeySlots type safe 2022-10-25 14:44:44 +02:00
Heiko Schaefer
708a8b2707
opgpcard: remove dependencies on lower level openpgp-card (use only the openpgp-card-sequoia API) 2022-10-25 12:53:37 +02:00
Heiko Schaefer
fff5b18310
opgpcard: adjust handling of card_service_data 2022-10-25 10:37:37 +02:00
Lars Wirzenius
bfb7449686 add an example for scripting use of opgpcard
Sponsored-by: NLnet Foundation; NGI Assure
2022-10-24 20:30:14 +03:00
Lars Wirzenius
dd02a29497 add integration/acceptance test with Subplot
These need to be run with the virtual smartcard emulation in the
Docker container specified in .gitlab-ci.yml for tests.

The tests are a little simplistic, as it turned out that making
changes to the smart card results in flaky tests. Thus only parts of
opgpcard that don't change the card are tested.

Sponsored-by: NLnet Foundation; NGI Assure
2022-10-24 20:30:14 +03:00
Lars Wirzenius
0b616e7b6e implement output formats, version
This is where we actually implement support for the new, versioned
JSON/YAML output formatting.
2022-10-24 19:33:21 +03:00
Lars Wirzenius
dd6950e5fe add command line options to specify output format, version
In this change, these have no effect, but they will have soon. Very soon.

Sponsored-by: NLnet Foundation; NGI Assure
2022-10-24 19:33:21 +03:00
Lars Wirzenius
eb0ad179f6 output: add module that models output for various subcommands
Each subcommand has its own model, and models for each major version
of the output. This isn't used yet, but soon will be.

Sponsored-by: author
2022-10-24 19:33:21 +03:00
Lars Wirzenius
dd0b74c43b versioned_output.rs: add scaffolding for versioned JSON
JSON and other structured output needs to be versioned so that
consumers can rely on it long term. Add a module for specifying output
format and version, as well as traits for implementing things. This
doesn't do anything on its own, but future changes will build on it.

Sponsored-by: NLnet Foundation; NGI Assure
2022-10-24 19:33:21 +03:00
Lars Wirzenius
326aa23dba tools/Cargo.toml: add dependencies for upcoming changes
These dependencies aren't used yet, but are added in preparation for
upcoming changes.

Sponsored-by: NLnet Foundation; NGI Assure
2022-10-24 19:33:21 +03:00
Heiko Schaefer
35f6240608
Bump versions.
This fixes a mistake with the openpgp-card-pcsc 0.2.2 release: openpgp-card-pcsc 0.2.2 depends on openpgp-card 0.3. However, this results in an (accidental) semver break, because openpgp-card-pcsc exposes parts of the openpgp-card API.
See https://gitlab.com/openpgp-card/openpgp-card/-/issues/41
2022-10-01 15:36:17 +02:00