From 76ca4b0812f3e3a3e29aec8b7e10c4c7d7fc98ad Mon Sep 17 00:00:00 2001 From: ryan Date: Tue, 25 Feb 2025 23:19:24 -0500 Subject: [PATCH] Release keyfork v0.3.0 --- CHANGELOG.md | 93 +++++++++++++++++++++++++ Cargo.lock | 12 ++-- crates/keyfork-shard/Cargo.toml | 2 +- crates/keyfork/Cargo.toml | 2 +- crates/qrcode/keyfork-qrcode/Cargo.toml | 2 +- crates/qrcode/keyfork-zbar/Cargo.toml | 2 +- crates/util/keyfork-bug/Cargo.toml | 2 +- crates/util/keyfork-prompt/Cargo.toml | 2 +- 8 files changed, 105 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 464a8b3..566bcd2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,96 @@ +# Keyfork v0.3.0 + +The Wizard is Dead. Long Live the Mnemonic Generator. + +The `keyfork wizard` subcommand was previously used to perform complex +operations that couldn't be performed with just `keyfork mnemonic generate`. +Since we've introduced complexity into `keyfork mnemonic generate`, it only +makes sense to consolidate all mnemonic generation complexity into one +location. Therefore, `keyfork mnemonic generate` should be a one-stop shop from +going to zero entropy to 256 bits of entropy. :) + +The following operations are added: + +* `keyfork mnemonic generate --derive=`: Allow for the immediate + derivation of a key. The value passed will be parsed directly as though + `keyfork derive` were run. For example, + `keyfork mnemonic generate --derive='openpgp "Ryan Heywood"'` generates an + OpenPGP Transferable Secret Key that is nearly-identical to one generated by + `keyfork derive openpgp "Ryan Heywood"`, with the only exception being the + time the signatures were created. +* `keyfork mnemonic generate --encrypt-to `: Encrypt the mnemonic to + an existing OpenPGP keyring or certificate. +* `keyfork mnemonic generate --shard-to `: Shard the mnemonic to + an existing Keyfork Shardfile. +* `keyfork mnemonic generate --shard `: Shard the mnemonic to an + existing set of OpenPGP certificates. +* `keyfork mnemonic generate --encrypt-to-self `: Encrypt the mnemonic to + an OpenPGP certificate generated in `--derive` or `--provision` +* `keyfork mnemonic generate --shard-to-self ,`: Shard the + mnemonic to freshly generated certificates, provisioned to OpenPGP + smartcards. This option replaces the traditional Keyfork Wizard, which has + been removed. +* `keyfork mnemonic generate --provision`: Provision a key derived from the new + mnemonic, which can be used for `--encrypt-to-self`, or to just bypass + needing to load the mnemonic to provision with it. + +Along with these changes, some other minor additions were added: + +* QR code retries in the Shard mechanism are now implemented. +* `keyfork-qrcode` now prefers libzbar and can compile with both. +* `keyfork-prompt` should now work better on AirgapOS and Linux terminals. + +### Changes in keyfork: + +``` +53665ca keyfork: the wizard is dead! long live the mnemonic generator! +a1c3d52 keyfork: restructure wizard shard key generation +674e2e9 keyfork: restructure CLI commands to act more like the other commands +723194f keyfork mnemonic generate: userid equivalency, rename provisioner cert_output to output +db19b30 keyfork mnemonic generate: feedback improvements +``` + +### Changes in keyfork-bug: + +Add `keyfork_bug::assert!()` for asserting with Keyfork Bug printing. + +``` +88a05f2 keyfork-prompt: add choice mechanism, & add to keyfork-shard +``` + +### Changes in keyfork-prompt: + +``` +88a05f2 keyfork-prompt: add choice mechanism, & add to keyfork-shard +0243212 keyfork-prompt: clear terminal before leaving alt screen; fixes linux terminal +``` + +### Changes in keyfork-qrcode: + +``` +98b9dbb keyfork-qrcode: restructure to prefer libzbar and compile with both enabled +``` + +### Changes in keyfork-shard: + +``` +88a05f2 keyfork-prompt: add choice mechanism, & add to keyfork-shard +aa8526c Release keyfork-shard v0.3.1 +``` + +### Changes in keyfork-zbar: + +``` +98b9dbb keyfork-qrcode: restructure to prefer libzbar and compile with both enabled +``` + +### Changes in keyforkd: + +``` +674e2e9 keyfork: restructure CLI commands to act more like the other commands +``` + + # Keyfork v0.2.6 * The `--daemon` flag has been added for `keyfork recover` subcommands. diff --git a/Cargo.lock b/Cargo.lock index 1176fe7..6a1aac6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1797,7 +1797,7 @@ dependencies = [ [[package]] name = "keyfork" -version = "0.2.6" +version = "0.3.0" dependencies = [ "base64", "card-backend-pcsc", @@ -1836,7 +1836,7 @@ dependencies = [ [[package]] name = "keyfork-bug" -version = "0.1.0" +version = "0.1.1" [[package]] name = "keyfork-crossterm" @@ -1944,7 +1944,7 @@ dependencies = [ [[package]] name = "keyfork-prompt" -version = "0.2.1" +version = "0.2.2" dependencies = [ "keyfork-bug", "keyfork-crossterm", @@ -1954,7 +1954,7 @@ dependencies = [ [[package]] name = "keyfork-qrcode" -version = "0.1.2" +version = "0.1.3" dependencies = [ "cfg-if", "image", @@ -1967,7 +1967,7 @@ dependencies = [ [[package]] name = "keyfork-shard" -version = "0.3.1" +version = "0.3.2" dependencies = [ "aes-gcm", "anyhow", @@ -2008,7 +2008,7 @@ dependencies = [ [[package]] name = "keyfork-zbar" -version = "0.1.1" +version = "0.1.2" dependencies = [ "image", "keyfork-zbar-sys", diff --git a/crates/keyfork-shard/Cargo.toml b/crates/keyfork-shard/Cargo.toml index c6bbf57..2127065 100644 --- a/crates/keyfork-shard/Cargo.toml +++ b/crates/keyfork-shard/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "keyfork-shard" -version = "0.3.1" +version = "0.3.2" edition = "2021" license = "AGPL-3.0-only" diff --git a/crates/keyfork/Cargo.toml b/crates/keyfork/Cargo.toml index eda5c26..9f38042 100644 --- a/crates/keyfork/Cargo.toml +++ b/crates/keyfork/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "keyfork" -version = "0.2.6" +version = "0.3.0" edition = "2021" license = "AGPL-3.0-only" diff --git a/crates/qrcode/keyfork-qrcode/Cargo.toml b/crates/qrcode/keyfork-qrcode/Cargo.toml index 71d3359..d4b96f4 100644 --- a/crates/qrcode/keyfork-qrcode/Cargo.toml +++ b/crates/qrcode/keyfork-qrcode/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "keyfork-qrcode" -version = "0.1.2" +version = "0.1.3" repository = "https://git.distrust.co/public/keyfork" edition = "2021" license = "MIT" diff --git a/crates/qrcode/keyfork-zbar/Cargo.toml b/crates/qrcode/keyfork-zbar/Cargo.toml index dcd228f..d1cd920 100644 --- a/crates/qrcode/keyfork-zbar/Cargo.toml +++ b/crates/qrcode/keyfork-zbar/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "keyfork-zbar" -version = "0.1.1" +version = "0.1.2" repository = "https://git.distrust.co/public/keyfork" edition = "2021" license = "MIT" diff --git a/crates/util/keyfork-bug/Cargo.toml b/crates/util/keyfork-bug/Cargo.toml index 40c0a53..4946ade 100644 --- a/crates/util/keyfork-bug/Cargo.toml +++ b/crates/util/keyfork-bug/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "keyfork-bug" -version = "0.1.0" +version = "0.1.1" edition = "2021" license = "MIT" diff --git a/crates/util/keyfork-prompt/Cargo.toml b/crates/util/keyfork-prompt/Cargo.toml index 1ab757d..36a8275 100644 --- a/crates/util/keyfork-prompt/Cargo.toml +++ b/crates/util/keyfork-prompt/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "keyfork-prompt" -version = "0.2.1" +version = "0.2.2" description = "Prompt management utilities for Keyfork" repository = "https://git.distrust.co/public/keyfork" edition = "2021"