summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNora Widdecke <nora@sequoia-pgp.org>2020-08-04 18:42:31 +0200
committerNora Widdecke <nora@sequoia-pgp.org>2020-08-04 18:42:31 +0200
commit19a097dc6681874aa767572ed9fdd52bce1f2640 (patch)
treeb05350ececcd85dc8a017d8d023fe8c967085a3f
parente18c79c37db27d138caeed67025d8b247410c3b8 (diff)
openpgp: Add test for hashing streamed packets.nora/literal_io_copy
-rw-r--r--openpgp/src/parse.rs18
1 files changed, 18 insertions, 0 deletions
diff --git a/openpgp/src/parse.rs b/openpgp/src/parse.rs
index 0bfa4e49..4c760939 100644
--- a/openpgp/src/parse.rs
+++ b/openpgp/src/parse.rs
@@ -5601,4 +5601,22 @@ mod test {
panic!("expected unknown packet, got: {:?}", packet);
}
}
+
+ /// Copying body changes hash
+ #[test]
+ fn hash_packet() -> Result<()> {
+ let ppr1 = PacketParser::from_bytes(
+ crate::tests::message("literal-mode-b.gpg"))?;
+ let mut pp1 = ppr1.unwrap();
+ let (packet1, _) = pp1.recurse()?;
+
+ let ppr2 = PacketParser::from_bytes(
+ crate::tests::message("literal-mode-b.gpg"))?;
+ let mut pp2 = ppr2.unwrap();
+ io::copy(&mut pp2, &mut io::sink())?;
+ let (packet2, _) = pp2.recurse()?;
+
+ assert_eq!(packet1, packet2);
+ Ok(())
+ }
}