diff options
Diffstat (limited to 'openpgp/src/parse.rs')
-rw-r--r-- | openpgp/src/parse.rs | 38 |
1 files changed, 33 insertions, 5 deletions
diff --git a/openpgp/src/parse.rs b/openpgp/src/parse.rs index fe421c71..c7912584 100644 --- a/openpgp/src/parse.rs +++ b/openpgp/src/parse.rs @@ -5474,6 +5474,7 @@ impl<'a> PacketParser<'a> { #[cfg(test)] mod test { use super::*; + use crate::serialize::Serialize; enum Data<'a> { File(&'a str), @@ -5803,15 +5804,27 @@ mod test { #[test] fn keyring_validator() { - use std::io::Cursor; + for marker in 0..4 { + let marker_before = marker & 1 > 0; + let marker_after = marker & 2 > 0; + for test in &["testy.pgp", "lutz.gpg", "testy-new.pgp", "neal.pgp"] { - let mut ppr = PacketParserBuilder::from_reader( - Cursor::new(crate::tests::key("testy.pgp")).chain( - Cursor::new(crate::tests::key(test)))).unwrap() + let mut buf = Vec::new(); + if marker_before { + Packet::Marker(Default::default()).serialize(&mut buf).unwrap(); + } + buf.extend_from_slice(crate::tests::key("testy.pgp")); + buf.extend_from_slice(crate::tests::key(test)); + if marker_after { + Packet::Marker(Default::default()).serialize(&mut buf).unwrap(); + } + + let mut ppr = PacketParserBuilder::from_bytes(&buf) + .unwrap() .build() .expect(&format!("Error reading {:?}", test)); @@ -5826,16 +5839,30 @@ mod test { unreachable!(); } } + } } #[test] fn cert_validator() { + for marker in 0..4 { + let marker_before = marker & 1 > 0; + let marker_after = marker & 2 > 0; + for test in &["testy.pgp", "lutz.gpg", "testy-new.pgp", "neal.pgp"] { - let mut ppr = PacketParserBuilder::from_bytes(crate::tests::key(test)) + let mut buf = Vec::new(); + if marker_before { + Packet::Marker(Default::default()).serialize(&mut buf).unwrap(); + } + buf.extend_from_slice(crate::tests::key(test)); + if marker_after { + Packet::Marker(Default::default()).serialize(&mut buf).unwrap(); + } + + let mut ppr = PacketParserBuilder::from_bytes(&buf) .unwrap() .build() .expect(&format!("Error reading {:?}", test)); @@ -5852,6 +5879,7 @@ mod test { unreachable!(); } } + } } // If we don't decrypt the SEIP packet, it shows up as opaque |