|
| 1 | +From 90e370fef788980e49aa807ac28531264bb9f404 Mon Sep 17 00:00:00 2001 |
| 2 | +From: Malte Meiboom <malte@sequoia-pgp.org> |
| 3 | +Date: Fri, 20 Feb 2026 13:50:40 +0100 |
| 4 | +Subject: [PATCH] Fix missing time corrections |
| 5 | + |
| 6 | +- `gpg-sq` can set a fake system time via `--faked-system-time`. |
| 7 | +- Fixed some occurrences where `None` was used as time instead of the |
| 8 | + passed fake time. |
| 9 | +- fixes: #156 |
| 10 | +--- |
| 11 | + src/decrypt.rs | 2 +- |
| 12 | + src/generate_key.rs | 2 +- |
| 13 | + src/gpg.rs | 2 +- |
| 14 | + tests/gpg/decrypt.rs | 2 +- |
| 15 | + 4 files changed, 4 insertions(+), 4 deletions(-) |
| 16 | + |
| 17 | +diff --git a/src/decrypt.rs b/src/decrypt.rs |
| 18 | +index 2749532..d722389 100644 |
| 19 | +--- a/src/decrypt.rs |
| 20 | ++++ b/src/decrypt.rs |
| 21 | +@@ -715,7 +715,7 @@ impl<'a, 'store> DHelper<'a, 'store> { |
| 22 | + .filter_map(|cert| cert.to_cert().ok().cloned()) |
| 23 | + { |
| 24 | + if let Some(key) = cert.keys() |
| 25 | +- .with_policy(&self.config.de_vs_producer, None) |
| 26 | ++ .with_policy(&self.config.de_vs_producer, self.config.now()) |
| 27 | + .key_handle(recipient.clone()).next() |
| 28 | + { |
| 29 | + compliant = compliant && |
| 30 | +diff --git a/src/generate_key.rs b/src/generate_key.rs |
| 31 | +index 85e41b4..5dd42f9 100644 |
| 32 | +--- a/src/generate_key.rs |
| 33 | ++++ b/src/generate_key.rs |
| 34 | +@@ -280,7 +280,7 @@ async fn real_cmd_quick_add_key(config: &mut crate::Config<'_>, args: &[String]) |
| 35 | + all_expired_or_revoked: false, |
| 36 | + })?; |
| 37 | + |
| 38 | +- let vcert = cert.with_policy(config.policy(), None)?; |
| 39 | ++ let vcert = cert.with_policy(config.policy(), config.now())?; |
| 40 | + let mut primary_signer = |
| 41 | + config.get_signer(&vcert, cert.primary_key().role_as_unspecified()).await?; |
| 42 | + |
| 43 | +diff --git a/src/gpg.rs b/src/gpg.rs |
| 44 | +index 81d5353..b4e4d38 100644 |
| 45 | +--- a/src/gpg.rs |
| 46 | ++++ b/src/gpg.rs |
| 47 | +@@ -721,7 +721,7 @@ impl<'store> Config<'store> { |
| 48 | + all_expired_or_revoked: false, |
| 49 | + })?; |
| 50 | + |
| 51 | +- if let Ok(vcert) = cert.with_policy(self.policy(), None) { |
| 52 | ++ if let Ok(vcert) = cert.with_policy(self.policy(), self.now()) { |
| 53 | + for sk in vcert.keys().key_flags(&flags).alive() |
| 54 | + .revoked(false) |
| 55 | + { |
| 56 | +diff --git a/tests/gpg/decrypt.rs b/tests/gpg/decrypt.rs |
| 57 | +index 3fefe95..a34f693 100644 |
| 58 | +--- a/tests/gpg/decrypt.rs |
| 59 | ++++ b/tests/gpg/decrypt.rs |
| 60 | +@@ -489,7 +489,7 @@ fn encrypt_for(recipient_certs: &[&Cert]) -> Result<Vec<u8>> { |
| 61 | + // Make sure we add at least one subkey from every |
| 62 | + // certificate. |
| 63 | + let mut found_one = false; |
| 64 | +- for key in cert.keys().with_policy(p, None) |
| 65 | ++ for key in cert.keys().with_policy(p, Experiment::now()) |
| 66 | + .supported().alive().revoked(false).for_transport_encryption() |
| 67 | + { |
| 68 | + recipients.push(key); |
| 69 | +-- |
| 70 | +GitLab |
| 71 | + |
0 commit comments