pcrlock: add vl methods for fw and sb

Add varlink method wrappers for locking/unlocking firmware code and config,
and secure boot policy and authority.
This commit is contained in:
Luca Boccassi
2026-07-01 14:56:53 +01:00
parent 04f8927173
commit ef7b9f679b
3 changed files with 127 additions and 15 deletions
+22
View File
@@ -14,6 +14,24 @@ static SD_VARLINK_DEFINE_METHOD(
static SD_VARLINK_DEFINE_METHOD(
RemovePolicy);
static SD_VARLINK_DEFINE_ENUM_TYPE(
LockCategory,
SD_VARLINK_FIELD_COMMENT("Firmware code measurements (PCRs 0, 2, 4)."),
SD_VARLINK_DEFINE_ENUM_VALUE(firmwareCode),
SD_VARLINK_FIELD_COMMENT("Firmware configuration measurements (PCRs 1, 3, 5)."),
SD_VARLINK_DEFINE_ENUM_VALUE(firmwareConfig),
SD_VARLINK_FIELD_COMMENT("SecureBoot policy, i.e. the SecureBoot, PK, KEK, db and dbx EFI variables (PCR 7)."),
SD_VARLINK_DEFINE_ENUM_VALUE(secureBootPolicy),
SD_VARLINK_FIELD_COMMENT("SecureBoot authority measurements, i.e. the certificates used to validate the boot components (PCR 7)."),
SD_VARLINK_DEFINE_ENUM_VALUE(secureBootAuthority));
static SD_VARLINK_DEFINE_METHOD(
Lock,
SD_VARLINK_FIELD_COMMENT("The category of measurements to generate or remove a .pcrlock file for."),
SD_VARLINK_DEFINE_INPUT_BY_TYPE(category, LockCategory, 0),
SD_VARLINK_FIELD_COMMENT("If true (the default), generate the .pcrlock file(s) for the selected category; if false, remove them again."),
SD_VARLINK_DEFINE_INPUT(lock, SD_VARLINK_BOOL, SD_VARLINK_NULLABLE));
static SD_VARLINK_DEFINE_ERROR(
NoChange);
@@ -23,4 +41,8 @@ SD_VARLINK_DEFINE_INTERFACE(
&vl_method_ReadEventLog,
&vl_method_MakePolicy,
&vl_method_RemovePolicy,
SD_VARLINK_SYMBOL_COMMENT("The category of measurements a .pcrlock file can be generated for or removed, as used by the Lock() method."),
&vl_type_LockCategory,
SD_VARLINK_SYMBOL_COMMENT("Generates or removes the .pcrlock file(s) for the selected category of measurements. Generates (locks) them by default, or removes (unlocks) them if 'lock' is false."),
&vl_method_Lock,
&vl_error_NoChange);