mirror of
https://github.com/ibm-s390-linux/s390-tools.git
synced 2026-08-05 02:14:52 +00:00
rust/pvimg: Add secret flag to allow CCK update
The CCK will be able to be updated by an ultravisor call. For security reasons, this feature must be enabled at Secure Execution header creation time. Because this makes it possible to dump without having set a CCK earlier, the requirement to specify a CCK when creating an image with guest dump support is extended to also allow for CCK update instead. Change a CLI test for this that was a duplicate anyway. [seiden@linux.ibm.com: Allow --cck & --enable-cck-update simultaneously] Reviewed-by: Marc Hartmayer <mhartmay@linux.ibm.com> Reviewed-by: Steffen Eiden <seiden@linux.ibm.com> Signed-off-by: Jakob Naucke <naucke@linux.ibm.com> Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com>
This commit is contained in:
committed by
Jan Höppner
parent
2cd7c7a875
commit
b11bb64732
@@ -92,6 +92,8 @@ fn parse_flags(
|
||||
lf.enable_cck_extension_secret,
|
||||
[ScfV1::CckExtensionSecretEnforcement]
|
||||
),
|
||||
flag_disabled!(lf.disable_cck_update, [ScfV1::CckUpdateAllowed]),
|
||||
flag_enabled!(lf.enable_cck_update, [ScfV1::CckUpdateAllowed]),
|
||||
]
|
||||
.into_iter()
|
||||
.flatten()
|
||||
@@ -217,14 +219,18 @@ mod test {
|
||||
let args = CreateBootImageArgs {
|
||||
legacy_flags: CreateBootImageLegacyFlags {
|
||||
enable_dump: Some(true),
|
||||
enable_cck_update: Some(true),
|
||||
..Default::default()
|
||||
},
|
||||
..Default::default()
|
||||
};
|
||||
let parsed_flags = super::parse_flags(&args).expect("Failed to parse flags {args:?}");
|
||||
let mut exp_flags = Vec::from(PlaintextControlFlagsV1::PCKMO);
|
||||
exp_flags.push(PcfV1::AllowDumping);
|
||||
let pcf = PlaintextControlFlagsV1::from_flags(PcfV1::all_enabled(exp_flags));
|
||||
let mut exp_pcf = Vec::from(PlaintextControlFlagsV1::PCKMO);
|
||||
exp_pcf.push(PcfV1::AllowDumping);
|
||||
let pcf = PlaintextControlFlagsV1::from_flags(PcfV1::all_enabled(exp_pcf));
|
||||
assert_eq!(parsed_flags.0, pcf);
|
||||
let exp_scf = vec![ScfV1::CckUpdateAllowed];
|
||||
let scf = SecretControlFlagsV1::from_flags(ScfV1::all_enabled(exp_scf));
|
||||
assert_eq!(parsed_flags.1, scf);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user