diff options
author | Justus Winter <justus@sequoia-pgp.org> | 2020-08-20 16:10:32 +0200 |
---|---|---|
committer | Justus Winter <justus@sequoia-pgp.org> | 2020-08-20 17:43:21 +0200 |
commit | e06debf8e72a3422e84aff2a810ec8a295dd7468 (patch) | |
tree | 165083242392a4a70a3e53063b46d1cc8b055807 /openpgp/src/serialize.rs | |
parent | 776065ebb594674ab3258a2ad17d856646510bce (diff) |
openpgp: Make SKESK5::aead_iv fail with unknown S2K.
Diffstat (limited to 'openpgp/src/serialize.rs')
-rw-r--r-- | openpgp/src/serialize.rs | 10 |
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() } } |