Commit graph

825 commits

Author SHA1 Message Date
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
Nora Widdecke
1f556c068d Merge branch 'missingkeys' into 'main'
opgpcard: properly error out of sign/decrypt, if the relevant key slot is empty

See merge request openpgp-card/openpgp-card!16
2022-10-25 22:19:55 +00: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
Heiko
65caf07cc0 Merge branch 'nora/types' into 'main'
opgpcard: Make argument parsing more type safe

See merge request openpgp-card/openpgp-card!14
2022-10-25 14:47:49 +00:00
Nora Widdecke
23b4c05c3d
opgpcard: Make algo selection type safe 2022-10-25 14:55:39 +02:00
Heiko Schaefer
6101e17979
ci: Update udeps 2022-10-25 14:53:05 +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
af9d4f49ad Merge branch 'nora/subplot-cache' into 'main'
ci: Use separate cache for subplot job

See merge request openpgp-card/openpgp-card!15
2022-10-25 12:16:19 +00:00
Nora Widdecke
a9d6c11bcc
ci: Use separate cache for subplot job
- Some subplot tests require a virtual card. Those are not always
    available on a system, so subplot uses the
    tests/virtual-card-available file to note whether a virtual card is
    available, and only generates those tests if it is.

  - That file is included in the cache, so the cache should not be
    shared.
2022-10-25 14:09:24 +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
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
Heiko
fe61a398a9 Merge branch 'nora/subplot-ci' into 'main'
CI fixes

See merge request openpgp-card/openpgp-card!13
2022-10-25 10:51:28 +00:00
Nora Widdecke
7113de821e
ci: Remove superflous workaround 2022-10-25 12:13:50 +02:00
Nora Widdecke
baf7895024
ci: Report rust and cargo versions 2022-10-25 12:13:50 +02:00
Nora Widdecke
e82d30b956
ci: Extract subplot into its own job
- Subplot requires the presence of virtual cards, so it needs an image
    where they are present. However this interferes with the intentions
    of the cargo-test and cargo-test-debian-bookworm jobs.

  - Revert the cargo-test and cargo-test-debian-bookworm jobs to the
    environments they used to test, rust:latest and
    debain:bookworm-slim, respectively.

  - Add a test "subplot" that runs the subplot tests as part of the
    virtual-test stage.
2022-10-25 12:13:47 +02:00
Lars Wirzenius
257a21cc43 Merge branch 'card-service-data' into 'main'
opgpcard: adjust handling of card_service_data

See merge request openpgp-card/openpgp-card!12
2022-10-25 09:18:47 +00:00
Heiko Schaefer
fff5b18310
opgpcard: adjust handling of card_service_data 2022-10-25 10:37:37 +02:00
Heiko
44c73a154b Merge branch 'liw/json' into 'main'
Add JSON and YAML output to opgpcard

Closes #36

See merge request openpgp-card/openpgp-card!9
2022-10-24 17:54:21 +00: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