Commit Graph

266 Commits

Author SHA1 Message Date
Jack Grigg ba3ccda8ce TUI: Use rage binary in example commands if installed 2021-05-02 09:23:58 +12:00
Jack Grigg 458a09125f Make --list{-all} and --identity behave the same way
- Both commands print all slots from all connected YubiKeys by default.
- If --serial is specified (without --slot) then print all slots in that
  YubiKey.
- If --slot is specified then then instead print a single slot (requiring
  --serial if necessary to select a single YubiKey).

Closes str4d/age-plugin-yubikey#26.
2021-05-02 08:48:05 +12:00
Jack Grigg 2a013fc018 Add example commands to end of TUI
Closes str4d/age-plugin-yubikey#25.
2021-05-02 08:48:05 +12:00
Jack Grigg c230d93726 TUI: Write identity to file
Closes str4d/age-plugin-yubikey#23.
2021-05-02 08:48:05 +12:00
Jack Grigg acdbb79083 Use non-short flags as defaults for TUI
Closes str4d/age-plugin-yubikey#27.
2021-05-02 08:48:05 +12:00
Jack Grigg d9b4fba546 Collect flag-parsing logic into PluginFlags struct 2021-05-02 08:48:05 +12:00
Jack Grigg d4eae4d631 Add name field to TUI
Closes str4d/age-plugin-yubikey#28.
2021-05-02 08:48:05 +12:00
Jack Grigg 64b0ab4e16 Add --list comments to identity output
This improves the output of --generate and --identity, as well as the
interactive TUI.

Closes str4d/age-plugin-yubikey#24.
2021-04-25 12:10:35 +12:00
Jack Grigg 72c5278de0 Hash public key directly for stanza tag
Closes str4d/age-plugin-yubikey#32.
2021-04-23 23:01:08 +12:00
Jack Grigg 6da29e7125 Remove URL prefix from HKDF label
Closes str4d/age-plugin-yubikey#31.
2021-04-23 22:56:43 +12:00
str4d 5d228e3aee Merge pull request #18 from str4d/ux-tweaks
UX tweaks
2021-04-15 22:45:28 +12:00
Jack Grigg f05c635d7b clippy fixes 2021-04-15 22:33:33 +12:00
Jack Grigg 9208719e8c Add issue templates 2021-04-15 22:16:05 +12:00
Jack Grigg b1249982de Add direct command flags to pretty CLI interface text 2021-04-15 22:14:13 +12:00
Jack Grigg 9fb8cd5f86 Add version flag 2021-04-15 21:52:43 +12:00
Jack Grigg dd8589811b Improve UI messages for YubiKey management
In particular, we now print out the candidate management key if setting
it as the PIN-protected management key fails.
2021-04-14 00:51:45 +12:00
Jack Grigg 50b873c89f Reliably ignore PIV devices that are not connected
This is primarily to ignore smart card readers that don't have cards
plugged in.
2021-04-14 00:51:45 +12:00
str4d 856a73dc90 Merge pull request #17 from str4d/tidy-ups
Tidy ups
2021-04-13 21:47:48 +12:00
Jack Grigg 33ab757025 Migrate to new age-plugin API 2021-04-13 20:41:34 +12:00
Jack Grigg 63c8d6c303 Rename PLUGIN_NAME to BINARY_NAME 2021-04-12 22:31:46 +12:00
Jack Grigg 771cad885a Always use created date from YubiKey certificate 2021-04-12 18:22:54 +12:00
str4d 4e33ac1267 Merge pull request #16 from str4d/earlier-release-runners
CI: Build Linux releases with earlier Ubuntu versions
2021-04-11 23:41:36 +12:00
Jack Grigg eeccad0c3f Use Ubuntu 18.04 to build Debian packages
cargo-deb requires the lzma_stream_encoder_mt function, which doesn't
exist in the version of liblzma in Ubuntu 16.04.
2021-04-11 23:30:22 +12:00
Jack Grigg 4bc2769100 CI: Build Linux releases with Ubuntu 16.04
This ensures they are linked to earlier versions of libc and
libpcsclite.
2021-04-11 23:16:48 +12:00
str4d 940f90c882 Merge pull request #15 from str4d/debian-package
Debian package generation
2021-04-11 20:45:16 +12:00
Jack Grigg f46b3f973f CI: Add Debian package generation 2021-04-11 20:17:14 +12:00
Jack Grigg d4c53157a7 Add manpage generator 2021-04-11 20:10:45 +12:00
str4d f316257d6b Merge pull request #14 from str4d/release-workflow-fixes
CI: Fixes to release workflow
2021-04-11 18:28:49 +12:00
Jack Grigg 3bb90e0fcb CI: Remove cross-compiling release targets
GitHub doesn't provide any ARM runners, and we can't cross-compile
without a compatible libpcsclite-dev. Until we can work that out, we'll
just build for direct targets.
2021-04-11 18:21:40 +12:00
Jack Grigg 43024048a2 Release: Add libpcsclite-dev to cross-compilation dependencies 2021-04-11 18:05:04 +12:00
str4d 96564d9169 Merge pull request #13 from str4d/release-workflow
CI: Add release workflow
2021-04-11 17:58:42 +12:00
Jack Grigg 80a7f64bdc CI: Add release workflow 2021-04-11 17:56:23 +12:00
str4d fa1ecece51 Merge pull request #8 from str4d/twitch
YubiKey plugin protocol
2021-04-05 23:12:48 +12:00
Jack Grigg 5a85a15341 YubiKey plugin protocol 2021-04-05 23:08:07 +12:00
str4d 12df32817c Merge pull request #11 from str4d/recipient-rework
Rework Recipient to wrap p256::PublicKey
2021-04-04 17:01:42 +12:00
Jack Grigg f74dd2ec4b Fix clippy lints 2021-04-04 16:55:34 +12:00
Jack Grigg 3ea2463c3c Remove direct dependency on elliptic-curve crate
Using the re-export from p256 ensures we always use the correct version.
2021-04-04 16:48:12 +12:00
Jack Grigg c7f173b43e Rework Recipient to wrap p256::PublicKey 2021-04-04 16:13:57 +12:00
str4d a08f23a3e8 Merge pull request #7 from str4d/pretty-cli
Implement no-command pretty CLI
2021-03-29 21:53:33 +13:00
Jack Grigg c5a2b7ee5a Implement no-command pretty CLI 2021-03-29 21:19:20 +13:00
str4d a617cc91fb Merge pull request #6 from str4d/generation-command
Implement --generate command
2021-03-29 21:11:00 +13:00
Jack Grigg 4ea8506e49 Extract slot UI indexing into util functions 2021-03-29 21:09:02 +13:00
Jack Grigg 850f96cd2c Implement --generate command
Includes logic to help users manage their keys:

- If the key is using a default PIN, we require the user to change it.
- We set the PUK equal to the PIN so the user doesn't need to remember
  them separately.
- We migrate the default management key to a new PIN-protected key.
2021-03-29 19:02:32 +13:00
str4d eedf9fa997 Merge pull request #10 from str4d/resilient-list
Make --list and --list-all more resilient
2021-03-29 19:01:13 +13:00
Jack Grigg acac62660c list: Ignore PIV devices we can't read from 2021-03-29 18:51:21 +13:00
Jack Grigg b6d70ba1f0 Use env_logger to enable logging
Log output is disabled by default.
2021-03-29 18:43:16 +13:00
str4d bd9bab21e5 Merge pull request #9 from str4d/dep-updates
Dependency updates
2021-03-29 11:51:23 +13:00
Jack Grigg 258e88d5f9 CI: Bump to Rust 1.51 and update workflow 2021-03-29 11:39:16 +13:00
Jack Grigg 0f7095a60a Bump to latest age-plugin 2021-03-29 11:00:42 +13:00
Jack Grigg 50e4fee48c bech32 0.8 2021-03-29 10:43:57 +13:00