summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWiktor Kwapisiewicz <wiktor@metacode.biz>2020-04-01 16:08:52 +0200
committerWiktor Kwapisiewicz <wiktor@metacode.biz>2020-04-03 14:22:53 +0200
commit86bda990a425c93950714e7e36e14f4308a593f0 (patch)
tree02e97db950a73efc13f9070161ef4dbf9d088493
parent08fc6757629ce38913cf594f8177dfb4496224d4 (diff)
openpgp: Convert `Message::from_packets` to `TryFrom<Vec<Packet>>`
-rw-r--r--openpgp/src/message/mod.rs74
1 files changed, 39 insertions, 35 deletions
diff --git a/openpgp/src/message/mod.rs b/openpgp/src/message/mod.rs
index 975b8efd..dd25fb4a 100644
--- a/openpgp/src/message/mod.rs
+++ b/openpgp/src/message/mod.rs
@@ -373,15 +373,6 @@ impl std::str::FromStr for Message {
}
impl Message {
- /// Converts the vector of `Packets` to a `Message`.
- ///
- /// See [`Message::try_from`] for more details.
- ///
- /// [`Message::try_from`]: #method.try_from
- pub fn from_packets(packets: Vec<Packet>) -> Result<Self> {
- Self::try_from(PacketPile::from(packets))
- }
-
/// Returns the body of the message.
///
/// Returns `None` if no literal data packet is found. This
@@ -454,6 +445,19 @@ impl TryFrom<PacketPile> for Message {
}
}
+impl TryFrom<Vec<Packet>> for Message {
+ type Error = anyhow::Error;
+
+ /// Converts the vector of `Packets` to a `Message`.
+ ///
+ /// See [`Message::try_from`] for more details.
+ ///
+ /// [`Message::try_from`]: #method.try_from
+ fn try_from(packets: Vec<Packet>) -> Result<Self> {
+ Self::try_from(PacketPile::from(packets))
+ }
+}
+
impl From<Message> for PacketPile {
fn from(m: Message) -> Self {
m.pile
@@ -752,7 +756,7 @@ mod tests {
fn basic() {
// Empty.
// => bad.
- let message = Message::from_packets(vec![]);
+ let message = Message::try_from(vec![]);
assert!(message.is_err(), "{:?}", message);
// 0: Literal
@@ -762,7 +766,7 @@ mod tests {
lit.set_body(b"data".to_vec());
packets.push(lit.into());
- let message = Message::from_packets(packets);
+ let message = Message::try_from(packets);
assert!(message.is_ok(), "{:?}", message);
}
@@ -780,7 +784,7 @@ mod tests {
.push(lit.clone().into())
.into());
- let message = Message::from_packets(packets);
+ let message = Message::try_from(packets);
assert!(message.is_ok(), "{:?}", message);
// 0: CompressedData
@@ -794,7 +798,7 @@ mod tests {
.push(lit.clone().into())
.into());
- let message = Message::from_packets(packets);
+ let message = Message::try_from(packets);
assert!(message.is_err(), "{:?}", message);
// 0: CompressedData
@@ -808,7 +812,7 @@ mod tests {
.into());
packets.push(lit.clone().into());
- let message = Message::from_packets(packets);
+ let message = Message::try_from(packets);
assert!(message.is_err(), "{:?}", message);
// 0: CompressedData
@@ -824,7 +828,7 @@ mod tests {
.into())
.into());
- let message = Message::from_packets(packets);
+ let message = Message::try_from(packets);
assert!(message.is_ok(), "{:?}", message);
}
@@ -846,7 +850,7 @@ mod tests {
let mut packets : Vec<Packet> = Vec::new();
packets.push(OnePassSig3::new(SignatureType::Binary).into());
- let message = Message::from_packets(packets);
+ let message = Message::try_from(packets);
assert!(message.is_err(), "{:?}", message);
// 0: OnePassSig
@@ -856,7 +860,7 @@ mod tests {
packets.push(OnePassSig3::new(SignatureType::Binary).into());
packets.push(lit.clone().into());
- let message = Message::from_packets(packets);
+ let message = Message::try_from(packets);
assert!(message.is_err(), "{:?}", message);
// 0: OnePassSig
@@ -868,7 +872,7 @@ mod tests {
packets.push(lit.clone().into());
packets.push(sig.clone().into());
- let message = Message::from_packets(packets);
+ let message = Message::try_from(packets);
assert!(message.is_ok(), "{:?}", message);
// 0: OnePassSig
@@ -882,7 +886,7 @@ mod tests {
packets.push(sig.clone().into());
packets.push(sig.clone().into());
- let message = Message::from_packets(packets);
+ let message = Message::try_from(packets);
assert!(message.is_err(), "{:?}", message);
// 0: OnePassSig
@@ -898,7 +902,7 @@ mod tests {
packets.push(sig.clone().into());
packets.push(sig.clone().into());
- let message = Message::from_packets(packets);
+ let message = Message::try_from(packets);
assert!(message.is_ok(), "{:?}", message);
// 0: OnePassSig
@@ -916,7 +920,7 @@ mod tests {
packets.push(sig.clone().into());
packets.push(sig.clone().into());
- let message = Message::from_packets(packets);
+ let message = Message::try_from(packets);
assert!(message.is_err(), "{:?}", message);
// 0: OnePassSig
@@ -936,7 +940,7 @@ mod tests {
packets.push(sig.clone().into());
packets.push(sig.clone().into());
- let message = Message::from_packets(packets);
+ let message = Message::try_from(packets);
assert!(message.is_ok(), "{:?}", message);
}
@@ -958,7 +962,7 @@ mod tests {
let mut packets : Vec<Packet> = Vec::new();
packets.push(sig.clone().into());
- let message = Message::from_packets(packets);
+ let message = Message::try_from(packets);
assert!(message.is_err(), "{:?}", message);
// 0: Signature
@@ -968,7 +972,7 @@ mod tests {
packets.push(sig.clone().into());
packets.push(lit.clone().into());
- let message = Message::from_packets(packets);
+ let message = Message::try_from(packets);
assert!(message.is_ok(), "{:?}", message);
// 0: Signature
@@ -980,7 +984,7 @@ mod tests {
packets.push(sig.clone().into());
packets.push(lit.clone().into());
- let message = Message::from_packets(packets);
+ let message = Message::try_from(packets);
assert!(message.is_ok(), "{:?}", message);
}
@@ -1004,7 +1008,7 @@ mod tests {
S2K::Simple { hash: HashAlgorithm::SHA256 },
&sk,
&"12345678".into()).unwrap().into());
- let message = Message::from_packets(packets.clone());
+ let message = Message::try_from(packets.clone());
assert!(message.is_err(), "{:?}", message);
// 0: SK-ESK
@@ -1015,7 +1019,7 @@ mod tests {
assert!(packets.iter().map(|p| p.tag()).collect::<Vec<Tag>>()
== [ Tag::SKESK, Tag::Literal ]);
- let message = Message::from_packets(packets.clone());
+ let message = Message::try_from(packets.clone());
assert!(message.is_err(), "{:?}", message);
// 0: SK-ESK
@@ -1033,7 +1037,7 @@ mod tests {
assert!(packets.iter().map(|p| p.tag()).collect::<Vec<Tag>>()
== [ Tag::SKESK, Tag::SEIP ]);
- let message = Message::from_packets(packets.clone());
+ let message = Message::try_from(packets.clone());
assert!(message.is_ok(), "{:#?}", message);
// 0: SK-ESK
@@ -1048,7 +1052,7 @@ mod tests {
assert!(packets.iter().map(|p| p.tag()).collect::<Vec<Tag>>()
== [ Tag::SKESK, Tag::SEIP, Tag::SKESK ]);
- let message = Message::from_packets(packets.clone());
+ let message = Message::try_from(packets.clone());
assert!(message.is_err(), "{:#?}", message);
// 0: SK-ESK
@@ -1062,7 +1066,7 @@ mod tests {
assert!(packets.iter().map(|p| p.tag()).collect::<Vec<Tag>>()
== [ Tag::SKESK, Tag::SKESK, Tag::SEIP ]);
- let message = Message::from_packets(packets.clone());
+ let message = Message::try_from(packets.clone());
assert!(message.is_ok(), "{:#?}", message);
// 0: SK-ESK
@@ -1080,7 +1084,7 @@ mod tests {
assert!(packets.iter().map(|p| p.tag()).collect::<Vec<Tag>>()
== [ Tag::SKESK, Tag::SKESK, Tag::SEIP, Tag::SEIP ]);
- let message = Message::from_packets(packets.clone());
+ let message = Message::try_from(packets.clone());
assert!(message.is_err(), "{:#?}", message);
// 0: SK-ESK
@@ -1095,7 +1099,7 @@ mod tests {
assert!(packets.iter().map(|p| p.tag()).collect::<Vec<Tag>>()
== [ Tag::SKESK, Tag::SKESK, Tag::SEIP, Tag::Literal ]);
- let message = Message::from_packets(packets.clone());
+ let message = Message::try_from(packets.clone());
assert!(message.is_err(), "{:#?}", message);
// 0: SK-ESK
@@ -1112,7 +1116,7 @@ mod tests {
assert!(packets.iter().map(|p| p.tag()).collect::<Vec<Tag>>()
== [ Tag::SKESK, Tag::SKESK, Tag::SEIP ]);
- let message = Message::from_packets(packets.clone());
+ let message = Message::try_from(packets.clone());
assert!(message.is_err(), "{:#?}", message);
// 0: SK-ESK
@@ -1135,13 +1139,13 @@ mod tests {
assert!(packets.iter().map(|p| p.tag()).collect::<Vec<Tag>>()
== [ Tag::SKESK, Tag::PKESK, Tag::SKESK, Tag::SEIP ]);
- let message = Message::from_packets(packets.clone());
+ let message = Message::try_from(packets.clone());
assert!(message.is_ok(), "{:#?}", message);
}
#[test]
fn message_is_send_and_sync() {
fn f<T: Send + Sync>(_: T) {}
- f(Message::from_packets(vec![]));
+ f(Message::try_from(vec![]));
}
}