diff options
author | Justus Winter <justus@sequoia-pgp.org> | 2023-04-06 14:05:41 +0200 |
---|---|---|
committer | Justus Winter <justus@sequoia-pgp.org> | 2023-04-07 14:51:42 +0200 |
commit | 0058ebdd7a84f53a564ba382d67f522a087ca12b (patch) | |
tree | 095b73d72fefa9c5db8c053137c148fcadddae4d | |
parent | d57bd33cf9bddda77dff8e6508ebb1e4902f9294 (diff) |
openpgp: Refactor OnePassSig::parse in preparation for v6.
-rw-r--r-- | openpgp/src/parse.rs | 34 |
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")); |