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:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user