summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--openpgp/src/parse/mpis.rs7
1 files changed, 6 insertions, 1 deletions
diff --git a/openpgp/src/parse/mpis.rs b/openpgp/src/parse/mpis.rs
index 9dd7d31a..b1af3c22 100644
--- a/openpgp/src/parse/mpis.rs
+++ b/openpgp/src/parse/mpis.rs
@@ -118,7 +118,12 @@ impl mpi::PublicKey {
"wrong kdf length".into()).into());
}
- let _reserved = php.parse_u8("kdf_reserved")?;
+ let reserved = php.parse_u8("kdf_reserved")?;
+ if reserved != 1 {
+ return Err(Error::MalformedPacket(
+ format!("Reserved kdf field must be 0x01, \
+ got 0x{:x}", reserved)).into());
+ }
let hash: HashAlgorithm = php.parse_u8("kdf_hash")?.into();
let sym: SymmetricAlgorithm = php.parse_u8("kek_symm")?.into();