summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJustus Winter <justus@sequoia-pgp.org>2019-09-02 13:55:59 +0200
committerJustus Winter <justus@sequoia-pgp.org>2019-09-02 15:38:57 +0200
commitfe65f0052adbb3ebee7f20edbc83ec4396d46b53 (patch)
tree60992babc1cb61a69592f1085617b247bc85394d
parentf6303413c2629463c40ed1c928cf7c092ee12fdc (diff)
openpgp: Add padding roundtrip test.
-rw-r--r--openpgp/src/serialize/padding.rs26
1 files changed, 26 insertions, 0 deletions
diff --git a/openpgp/src/serialize/padding.rs b/openpgp/src/serialize/padding.rs
index 08480854..b9928b69 100644
--- a/openpgp/src/serialize/padding.rs
+++ b/openpgp/src/serialize/padding.rs
@@ -309,4 +309,30 @@ mod test {
true
}
}
+
+ /// Asserts that we can consume the padded messages.
+ #[test]
+ fn roundtrip() {
+ use std::io::Write;
+ use crate::constants::DataFormat;
+ use crate::parse::Parse;
+ use crate::serialize::stream::*;
+
+ let mut msg = vec![0; rand::random::<usize>() % 1024];
+ crate::crypto::random(&mut msg);
+
+ let mut padded = vec![];
+ {
+ let message = Message::new(&mut padded);
+ let padder = Padder::new(message, padme).unwrap();
+ let mut w =
+ LiteralWriter::new(padder, DataFormat::Binary, None, None)
+ .unwrap();
+ w.write_all(&msg).unwrap();
+ w.finalize().unwrap();
+ }
+
+ let m = crate::Message::from_bytes(&padded).unwrap();
+ assert_eq!(m.body().unwrap().body().unwrap(), &msg[..]);
+ }
}