diff options
author | Justus Winter <justus@sequoia-pgp.org> | 2020-05-06 11:35:46 +0200 |
---|---|---|
committer | Justus Winter <justus@sequoia-pgp.org> | 2020-05-06 11:35:46 +0200 |
commit | c575a9b4d3d0644457d3a2ddfbfa0160d3490f19 (patch) | |
tree | 4c534f4baafc1121faaf75fd65a73a503752febd /openpgp/src | |
parent | dd22ba5e10be4958755ae250305f58a40b60c1a9 (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.rs | 11 |
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. |