https://bugs.gentoo.org/970711 https://gitlab.com/sequoia-pgp/sequoia-chameleon-gnupg/-/commit/90e370fef788980e49aa807ac28531264bb9f404 From 90e370fef788980e49aa807ac28531264bb9f404 Mon Sep 17 00:00:00 2001 From: Malte Meiboom Date: Fri, 20 Feb 2026 13:50:40 +0100 Subject: [PATCH] Fix missing time corrections - `gpg-sq` can set a fake system time via `--faked-system-time`. - Fixed some occurrences where `None` was used as time instead of the passed fake time. - fixes: #156 --- src/decrypt.rs | 2 +- src/generate_key.rs | 2 +- src/gpg.rs | 2 +- tests/gpg/decrypt.rs | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/decrypt.rs b/src/decrypt.rs index 2749532..d722389 100644 --- a/src/decrypt.rs +++ b/src/decrypt.rs @@ -715,7 +715,7 @@ impl<'a, 'store> DHelper<'a, 'store> { .filter_map(|cert| cert.to_cert().ok().cloned()) { if let Some(key) = cert.keys() - .with_policy(&self.config.de_vs_producer, None) + .with_policy(&self.config.de_vs_producer, self.config.now()) .key_handle(recipient.clone()).next() { compliant = compliant && diff --git a/src/generate_key.rs b/src/generate_key.rs index 85e41b4..5dd42f9 100644 --- a/src/generate_key.rs +++ b/src/generate_key.rs @@ -280,7 +280,7 @@ async fn real_cmd_quick_add_key(config: &mut crate::Config<'_>, args: &[String]) all_expired_or_revoked: false, })?; - let vcert = cert.with_policy(config.policy(), None)?; + let vcert = cert.with_policy(config.policy(), config.now())?; let mut primary_signer = config.get_signer(&vcert, cert.primary_key().role_as_unspecified()).await?; diff --git a/src/gpg.rs b/src/gpg.rs index 81d5353..b4e4d38 100644 --- a/src/gpg.rs +++ b/src/gpg.rs @@ -721,7 +721,7 @@ impl<'store> Config<'store> { all_expired_or_revoked: false, })?; - if let Ok(vcert) = cert.with_policy(self.policy(), None) { + if let Ok(vcert) = cert.with_policy(self.policy(), self.now()) { for sk in vcert.keys().key_flags(&flags).alive() .revoked(false) { diff --git a/tests/gpg/decrypt.rs b/tests/gpg/decrypt.rs index 3fefe95..a34f693 100644 --- a/tests/gpg/decrypt.rs +++ b/tests/gpg/decrypt.rs @@ -489,7 +489,7 @@ fn encrypt_for(recipient_certs: &[&Cert]) -> Result> { // Make sure we add at least one subkey from every // certificate. let mut found_one = false; - for key in cert.keys().with_policy(p, None) + for key in cert.keys().with_policy(p, Experiment::now()) .supported().alive().revoked(false).for_transport_encryption() { recipients.push(key); -- GitLab