packet: don't unwrap()
diff --git a/src/lib.rs b/src/lib.rs
index 2ffc716..83fcc61 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -1611,7 +1611,8 @@
let pn_len = packet::pkt_num_len(pn)?;
// The AEAD overhead at the current encryption level.
- let overhead = self.pkt_num_spaces[epoch].overhead();
+ let overhead =
+ self.pkt_num_spaces[epoch].overhead().ok_or(Error::Done)?;
let hdr = Header {
ty: pkt_type,
@@ -3378,8 +3379,8 @@
hdr.to_bytes(&mut b)?;
- let payload_len =
- frames.iter().fold(0, |acc, x| acc + x.wire_len()) + space.overhead();
+ let payload_len = frames.iter().fold(0, |acc, x| acc + x.wire_len()) +
+ space.overhead().unwrap();
if pkt_type != packet::Type::Short {
let len = pn_len + payload_len;
diff --git a/src/packet.rs b/src/packet.rs
index 494e154..6d81718 100644
--- a/src/packet.rs
+++ b/src/packet.rs
@@ -673,8 +673,8 @@
self.ack_elicited = false;
}
- pub fn overhead(&self) -> usize {
- self.crypto_seal.as_ref().unwrap().alg().tag_len()
+ pub fn overhead(&self) -> Option<usize> {
+ Some(self.crypto_seal.as_ref()?.alg().tag_len())
}
pub fn ready(&self) -> bool {