summaryrefslogtreecommitdiffstats
path: root/openpgp/src
diff options
context:
space:
mode:
authorJustus Winter <justus@sequoia-pgp.org>2020-05-06 11:35:46 +0200
committerJustus Winter <justus@sequoia-pgp.org>2020-05-06 11:35:46 +0200
commitc575a9b4d3d0644457d3a2ddfbfa0160d3490f19 (patch)
tree4c534f4baafc1121faaf75fd65a73a503752febd /openpgp/src
parentdd22ba5e10be4958755ae250305f58a40b60c1a9 (diff)
openpgp: Don't merge signatures in Cert::set_expiration_time.
- Align Cert::set_expiration_time with KeyAmalgamation::set_expiration_time, i.e. return the signatures instead of merging them directly. - Fixes #491.
Diffstat (limited to 'openpgp/src')
-rw-r--r--openpgp/src/cert/mod.rs11
1 files changed, 5 insertions, 6 deletions
diff --git a/openpgp/src/cert/mod.rs b/openpgp/src/cert/mod.rs
index bcee398b..b3f9d8de 100644
--- a/openpgp/src/cert/mod.rs
+++ b/openpgp/src/cert/mod.rs
@@ -966,23 +966,22 @@ impl Cert {
/// // Make cert expire now.
/// let mut keypair = cert.primary_key()
/// .key().clone().parts_into_secret()?.into_keypair()?;
- /// let cert = cert.set_expiration_time(p, None, &mut keypair,
+ /// let sigs = cert.set_expiration_time(p, None, &mut keypair,
/// Some(time::SystemTime::now()))?;
///
+ /// let cert = cert.merge_packets(sigs)?;
/// assert!(cert.with_policy(p, None)?.alive().is_err());
/// # Ok(())
/// # }
/// ```
- pub fn set_expiration_time<T>(self, policy: &dyn Policy, t: T,
+ pub fn set_expiration_time<T>(&self, policy: &dyn Policy, t: T,
primary_signer: &mut dyn Signer,
expiration: Option<time::SystemTime>)
- -> Result<Cert>
+ -> Result<Vec<Signature>>
where T: Into<Option<time::SystemTime>>,
{
let primary = self.primary_key().with_policy(policy, t.into())?;
- let sigs = primary.set_expiration_time(primary_signer,
- expiration)?;
- self.merge_packets(sigs)
+ primary.set_expiration_time(primary_signer, expiration)
}
/// Returns the primary User ID at the reference time, if any.