summaryrefslogtreecommitdiffstats
path: root/openpgp/src/serialize.rs
diff options
context:
space:
mode:
authorJustus Winter <justus@sequoia-pgp.org>2020-08-20 16:10:32 +0200
committerJustus Winter <justus@sequoia-pgp.org>2020-08-20 17:43:21 +0200
commite06debf8e72a3422e84aff2a810ec8a295dd7468 (patch)
tree165083242392a4a70a3e53063b46d1cc8b055807 /openpgp/src/serialize.rs
parent776065ebb594674ab3258a2ad17d856646510bce (diff)
openpgp: Make SKESK5::aead_iv fail with unknown S2K.
Diffstat (limited to 'openpgp/src/serialize.rs')
-rw-r--r--openpgp/src/serialize.rs10
1 files changed, 5 insertions, 5 deletions
diff --git a/openpgp/src/serialize.rs b/openpgp/src/serialize.rs
index 99e689bc..c2c8b84f 100644
--- a/openpgp/src/serialize.rs
+++ b/openpgp/src/serialize.rs
@@ -2343,10 +2343,10 @@ impl Marshal for SKESK5 {
write_byte(o, self.symmetric_algo().into())?;
write_byte(o, self.aead_algo().into())?;
self.s2k().serialize(o)?;
- o.write_all(self.aead_iv()?)?;
- if let Some(ref esk) = self.esk()? {
- o.write_all(&esk[..])?;
+ if let Ok(iv) = self.aead_iv() {
+ o.write_all(iv)?;
}
+ o.write_all(self.raw_esk())?;
o.write_all(self.aead_digest())?;
Ok(())
@@ -2359,8 +2359,8 @@ impl NetLength for SKESK5 {
+ 1 // Cipher algo.
+ 1 // AEAD algo.
+ self.s2k().serialized_len()
- + self.aead_iv().unwrap().len()
- + self.esk().unwrap().map(|esk| esk.len()).unwrap_or(0)
+ + self.aead_iv().map(|iv| iv.len()).unwrap_or(0)
+ + self.raw_esk().len()
+ self.aead_digest().len()
}
}