From 629150aad26459592572e1df73a403832e3630cf Mon Sep 17 00:00:00 2001 From: Justus Winter Date: Thu, 17 Sep 2020 09:23:41 +0200 Subject: Revert "openpgp: Remove SignatureBuilder::set_key_expiration_time." This reverts commit e18c79c37db27d138caeed67025d8b247410c3b8. --- openpgp/src/packet/signature/subpacket.rs | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'openpgp') diff --git a/openpgp/src/packet/signature/subpacket.rs b/openpgp/src/packet/signature/subpacket.rs index 0510acc3..84f3c570 100644 --- a/openpgp/src/packet/signature/subpacket.rs +++ b/openpgp/src/packet/signature/subpacket.rs @@ -4564,6 +4564,32 @@ impl signature::SignatureBuilder { Ok(self) } + /// Sets the value of the Key Expiration Time subpacket. + /// + /// If `None` is given, any expiration subpacket is removed. + pub fn set_key_expiration_time( + self, + key: &Key, + expiration: Option) + -> Result + where P: key::KeyParts, + R: key::KeyRole, + { + if let Some(e) = expiration.map(crate::types::normalize_systemtime) { + let ct = key.creation_time(); + let vp = match e.duration_since(ct) { + Ok(v) => v, + Err(_) => return Err(Error::InvalidArgument( + format!("Expiration time {:?} predates creation time \ + {:?}", e, ct)).into()), + }; + + self.set_key_validity_period(Some(vp)) + } else { + self.set_key_validity_period(None) + } + } + /// Sets the Preferred Symmetric Algorithms subpacket. /// /// Replaces any [Preferred Symmetric Algorithms subpacket] in the -- cgit v1.2.3