diff --git a/rust/pvimg/src/cmd/create.rs b/rust/pvimg/src/cmd/create.rs index c9d39745..ceeb90c2 100644 --- a/rust/pvimg/src/cmd/create.rs +++ b/rust/pvimg/src/cmd/create.rs @@ -58,16 +58,10 @@ fn parse_flags( .and(Some(PcfV1::all_enabled([PcfV1::AllowDumping]))), lf.disable_pckmo .filter(|x| *x) - .and(Some(PcfV1::all_disabled([ - PcfV1::PckmoAes, - PcfV1::PckmoDeaTdea, - PcfV1::PckmoEcc, - ]))), - lf.enable_pckmo.filter(|x| *x).and(Some(PcfV1::all_enabled([ - PcfV1::PckmoAes, - PcfV1::PckmoDeaTdea, - PcfV1::PckmoEcc, - ]))), + .and(Some(PcfV1::all_disabled(PlaintextControlFlagsV1::PCKMO))), + lf.enable_pckmo + .filter(|x| *x) + .and(Some(PcfV1::all_enabled(PlaintextControlFlagsV1::PCKMO))), lf.disable_pckmo_hmac .filter(|x| *x) .and(Some(PcfV1::all_disabled([PcfV1::PckmoHmac]))), diff --git a/rust/pvimg/src/pv_utils/se_hdr/flags.rs b/rust/pvimg/src/pv_utils/se_hdr/flags.rs index 0b5607bf..fdb6b5b8 100644 --- a/rust/pvimg/src/pv_utils/se_hdr/flags.rs +++ b/rust/pvimg/src/pv_utils/se_hdr/flags.rs @@ -169,14 +169,13 @@ pub enum PcfV1 { BackupTargetKeys = 62, } pub type PlaintextControlFlagsV1 = ControlFlags; +impl PlaintextControlFlagsV1 { + pub const PCKMO: [PcfV1; 3] = [PcfV1::PckmoAes, PcfV1::PckmoDeaTdea, PcfV1::PckmoEcc]; +} impl Default for PlaintextControlFlagsV1 { fn default() -> Self { - Self::from_flags(PcfV1::all_enabled([ - PcfV1::PckmoAes, - PcfV1::PckmoDeaTdea, - PcfV1::PckmoEcc, - ])) + Self::from_flags(PcfV1::all_enabled(PlaintextControlFlagsV1::PCKMO)) } }