diff options
author | Justus Winter <justus@sequoia-pgp.org> | 2020-08-12 15:42:18 +0200 |
---|---|---|
committer | Justus Winter <justus@sequoia-pgp.org> | 2020-08-20 12:17:21 +0200 |
commit | 05df451257320bf8dfd86f7fdd4d63f9c78dd691 (patch) | |
tree | 7d7cfbf8a88de0138bb2cd10785743d17955adee /openpgp/src/serialize.rs | |
parent | bb447441a4a94563736760e28f368e1186064c57 (diff) |
openpgp: Make SKESK?::esk and SKESK5::aead_iv fallible.
Diffstat (limited to 'openpgp/src/serialize.rs')
-rw-r--r-- | openpgp/src/serialize.rs | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/openpgp/src/serialize.rs b/openpgp/src/serialize.rs index 4aababcd..fe1d36cc 100644 --- a/openpgp/src/serialize.rs +++ b/openpgp/src/serialize.rs @@ -2313,7 +2313,7 @@ impl Marshal for SKESK4 { write_byte(o, 4)?; // Version. write_byte(o, self.symmetric_algo().into())?; self.s2k().serialize(o)?; - if let Some(ref esk) = self.esk() { + if let Some(ref esk) = self.esk()? { o.write_all(&esk[..])?; } @@ -2326,7 +2326,7 @@ impl NetLength for SKESK4 { 1 // Version. + 1 // Algo. + self.s2k().serialized_len() - + self.esk().map(|esk| esk.len()).unwrap_or(0) + + self.esk().unwrap().map(|esk| esk.len()).unwrap_or(0) } } @@ -2346,8 +2346,8 @@ 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(self.aead_iv()?)?; + if let Some(ref esk) = self.esk()? { o.write_all(&esk[..])?; } o.write_all(self.aead_digest())?; @@ -2362,8 +2362,8 @@ impl NetLength for SKESK5 { + 1 // Cipher algo. + 1 // AEAD algo. + self.s2k().serialized_len() - + self.aead_iv().len() - + self.esk().map(|esk| esk.len()).unwrap_or(0) + + self.aead_iv().unwrap().len() + + self.esk().unwrap().map(|esk| esk.len()).unwrap_or(0) + self.aead_digest().len() } } |