1extern crate alloc;
5
6use alloc::vec::Vec;
7
8#[derive(mesh_protobuf::Protobuf, Debug, Clone, PartialEq, Default)]
9#[cfg_attr(feature = "manifest", derive(serde::Serialize, serde::Deserialize))]
10#[cfg_attr(
11 feature = "manifest",
12 serde(rename_all = "snake_case", deny_unknown_fields)
13)]
14#[cfg_attr(feature = "inspect", derive(inspect::Inspect))]
15#[mesh(package = "openhcl.product_policy")]
16pub struct CwcowPolicy {
18 #[mesh(1)]
20 pub require_ephemeral_vmgs: bool,
21
22 #[mesh(2)]
24 pub require_secure_boot: bool,
25
26 #[mesh(3)]
28 pub require_secure_boot_vars: bool,
29
30 #[mesh(4)]
32 pub require_bcd_integrity: bool,
33
34 #[mesh(5)]
38 #[cfg_attr(
39 feature = "manifest",
40 serde(with = "super::product_policy_helpers::custom_uefi_json_serde")
41 )]
42 #[cfg_attr(feature = "inspect", inspect(with = "Vec::<u8>::len"))]
43 pub custom_uefi_json: Vec<u8>,
44
45 #[mesh(6)]
47 pub require_secure_avic: bool,
48}
49
50impl crate::uefi_security_policy::UefiSecurityPolicyParams for CwcowPolicy {
51 fn require_secure_boot(&self) -> bool {
52 self.require_secure_boot
53 }
54}
55
56impl crate::uefi_security_policy::UefiSecurityPolicy for CwcowPolicy {}