Compare commits

...

4 Commits

6 changed files with 33 additions and 5 deletions

View File

@ -1,3 +1,25 @@
# Keyfork v0.3.2
This is another bugfix release, allowing the derivation of Shard keys.
### Changes in keyfork:
```
6ffcdc3 add derivation path for Shard keys
```
# Keyfork v0.3.1
This is a bugfix release, resolving an issue with Keyfork Shard not having a
exit condition for when a valid QR code was scanned.
### Changes in keyfork-shard:
```
d0019a9 keyfork-shard: break loop when receiving valid QR code
```
# Keyfork v0.3.0 # Keyfork v0.3.0
The Wizard is Dead. Long Live the Mnemonic Generator. The Wizard is Dead. Long Live the Mnemonic Generator.

4
Cargo.lock generated
View File

@ -1797,7 +1797,7 @@ dependencies = [
[[package]] [[package]]
name = "keyfork" name = "keyfork"
version = "0.3.0" version = "0.3.2"
dependencies = [ dependencies = [
"base64", "base64",
"card-backend-pcsc", "card-backend-pcsc",
@ -1967,7 +1967,7 @@ dependencies = [
[[package]] [[package]]
name = "keyfork-shard" name = "keyfork-shard"
version = "0.3.2" version = "0.3.3"
dependencies = [ dependencies = [
"aes-gcm", "aes-gcm",
"anyhow", "anyhow",

View File

@ -1,6 +1,6 @@
[package] [package]
name = "keyfork-shard" name = "keyfork-shard"
version = "0.3.2" version = "0.3.3"
edition = "2021" edition = "2021"
license = "AGPL-3.0-only" license = "AGPL-3.0-only"

View File

@ -578,6 +578,7 @@ pub fn remote_decrypt(w: &mut impl Write) -> Result<(), Box<dyn std::error::Erro
let _ = let _ =
pubkey_data.insert(decoded_data[..32].try_into().map_err(|_| InvalidData)?); pubkey_data.insert(decoded_data[..32].try_into().map_err(|_| InvalidData)?);
let _ = payload_data.insert(decoded_data[32..].to_vec()); let _ = payload_data.insert(decoded_data[32..].to_vec());
break;
} else { } else {
let choice = keyfork_prompt::prompt_choice( let choice = keyfork_prompt::prompt_choice(
&mut *pm, &mut *pm,

View File

@ -1,6 +1,6 @@
[package] [package]
name = "keyfork" name = "keyfork"
version = "0.3.0" version = "0.3.2"
edition = "2021" edition = "2021"
license = "AGPL-3.0-only" license = "AGPL-3.0-only"
@ -8,7 +8,7 @@ license = "AGPL-3.0-only"
default = [ default = [
"completion", "completion",
"qrcode-decode-backend-rqrr", "qrcode-decode-backend-rqrr",
"sequoia-crypto-backend-nettle", "sequoia-crypto-backend-nettle",
] ]
completion = ["dep:clap_complete"] completion = ["dep:clap_complete"]

View File

@ -58,6 +58,9 @@ pub enum Path {
/// The Disaster Recovery index. /// The Disaster Recovery index.
DisasterRecovery, DisasterRecovery,
/// The Shard index.
Shard,
} }
impl std::fmt::Display for Path { impl std::fmt::Display for Path {
@ -71,6 +74,7 @@ impl Path {
match self { match self {
Path::Default => "default", Path::Default => "default",
Path::DisasterRecovery => "disaster-recovery", Path::DisasterRecovery => "disaster-recovery",
Path::Shard => "shard",
} }
} }
@ -78,6 +82,7 @@ impl Path {
match self { match self {
Self::Default => paths::OPENPGP.clone(), Self::Default => paths::OPENPGP.clone(),
Self::DisasterRecovery => paths::OPENPGP_DISASTER_RECOVERY.clone(), Self::DisasterRecovery => paths::OPENPGP_DISASTER_RECOVERY.clone(),
Self::Shard => paths::OPENPGP_SHARD.clone(),
} }
} }
} }