summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJustus Winter <justus@sequoia-pgp.org>2023-04-06 14:05:41 +0200
committerJustus Winter <justus@sequoia-pgp.org>2023-04-07 14:51:42 +0200
commit0058ebdd7a84f53a564ba382d67f522a087ca12b (patch)
tree095b73d72fefa9c5db8c053137c148fcadddae4d
parentd57bd33cf9bddda77dff8e6508ebb1e4902f9294 (diff)
openpgp: Refactor OnePassSig::parse in preparation for v6.
-rw-r--r--openpgp/src/parse.rs34
1 files changed, 18 insertions, 16 deletions
diff --git a/openpgp/src/parse.rs b/openpgp/src/parse.rs
index 8af14612..0b6975de 100644
--- a/openpgp/src/parse.rs
+++ b/openpgp/src/parse.rs
@@ -1902,10 +1902,22 @@ quickcheck! {
}
impl OnePassSig {
- fn parse(php: PacketHeaderParser)
- -> Result<PacketParser>
- {
- OnePassSig3::parse(php)
+ fn parse(mut php: PacketHeaderParser) -> Result<PacketParser> {
+ let indent = php.recursion_depth();
+ tracer!(TRACE, "OnePassSig", indent);
+
+ make_php_try!(php);
+
+ let version = php_try!(php.parse_u8("version"));
+ match version {
+ 3 => OnePassSig3::parse(php),
+ _ => {
+ t!("Ignoring version {} packet", version);
+
+ // Unknown version. Return an unknown packet.
+ php.fail("unknown version")
+ },
+ }
}
}
@@ -1913,22 +1925,12 @@ impl_parse_with_buffered_reader!(OnePassSig);
impl OnePassSig3 {
#[allow(clippy::blocks_in_if_conditions)]
- fn parse(mut php: PacketHeaderParser)
- -> Result<PacketParser>
- {
+ fn parse(mut php: PacketHeaderParser) -> Result<PacketParser> {
let indent = php.recursion_depth();
- tracer!(TRACE, "OnePassSig", indent);
+ tracer!(TRACE, "OnePassSig3", indent);
make_php_try!(php);
- let version = php_try!(php.parse_u8("version"));
- if version != 3 {
- t!("Ignoring version {} packet", version);
-
- // Unknown version. Return an unknown packet.
- return php.fail("unknown version");
- }
-
let typ = php_try!(php.parse_u8("type"));
let hash_algo = php_try!(php.parse_u8("hash_algo"));
let pk_algo = php_try!(php.parse_u8("pk_algo"));