From 0058ebdd7a84f53a564ba382d67f522a087ca12b Mon Sep 17 00:00:00 2001 From: Justus Winter Date: Thu, 6 Apr 2023 14:05:41 +0200 Subject: openpgp: Refactor OnePassSig::parse in preparation for v6. --- openpgp/src/parse.rs | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) (limited to 'openpgp/src/parse.rs') 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 - { - OnePassSig3::parse(php) + fn parse(mut php: PacketHeaderParser) -> Result { + 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 - { + fn parse(mut php: PacketHeaderParser) -> Result { 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")); -- cgit v1.2.3