diff options
| author | Jan Setje-Eilers <jan.setjeeilers@oracle.com> | 2022-04-22 13:13:20 -0700 |
|---|---|---|
| committer | Peter Jones <pjones@redhat.com> | 2022-05-17 19:01:46 -0400 |
| commit | f81a7cc34e0b1a4f2d3104f44df80f93497eaa9e (patch) | |
| tree | 45dab9092c143ef6fd2fb63aa89137d0cbf884fe /test-sbat.c | |
| parent | b104fc480aae94eaa8d79717d0b7cf6dcc2253d3 (diff) | |
| download | efi-boot-shim-f81a7cc34e0b1a4f2d3104f44df80f93497eaa9e.tar.gz efi-boot-shim-f81a7cc34e0b1a4f2d3104f44df80f93497eaa9e.zip | |
SBAT revocation management
Support for updating SBAT revocations to latest or previous revocations.
Allow SBAT revocations to be reset to empty metadata only when UEFI
Secure Boot is disabled.
Signed-off-by: Jan Setje-Eilers <Jan.SetjeEilers@oracle.com>
Diffstat (limited to 'test-sbat.c')
| -rw-r--r-- | test-sbat.c | 52 |
1 files changed, 45 insertions, 7 deletions
diff --git a/test-sbat.c b/test-sbat.c index b64aa1e9..d0ed713f 100644 --- a/test-sbat.c +++ b/test-sbat.c @@ -14,6 +14,11 @@ list_t sbat_var; +BOOLEAN +secure_mode() { + return 1; +} + #if 0 /* * Mock test helpers @@ -965,11 +970,39 @@ err: int test_preserve_sbat_uefi_variable_good(void) { - char sbat[] = "sbat,1,\ncomponent,2,\n"; + char sbat[] = "sbat,1,2021030218\ncomponent,2,\n"; + char sbatvar[] = "sbat,1,2021030218\n"; + size_t sbat_size = sizeof(sbat); + UINT32 attributes = SBAT_VAR_ATTRS; + + if (preserve_sbat_uefi_variable(sbat, sbat_size, attributes, sbatvar)) + return 0; + else + return -1; +} + +int +test_preserve_sbat_uefi_variable_newer(void) +{ + char sbat[] = "sbat,1,2021030218\ncomponent,2,\n"; + char sbatvar[] = "sbat,1,2025030218\ncomponent,5,\n"; + size_t sbat_size = sizeof(sbat); + UINT32 attributes = SBAT_VAR_ATTRS; + + if (preserve_sbat_uefi_variable(sbat, sbat_size, attributes, sbatvar)) + return -1; + else + return 0; +} +int +test_preserve_sbat_uefi_variable_older(void) +{ + char sbat[] = "sbat,1,2025030218\ncomponent,2,\n"; + char sbatvar[] = "sbat,1,2020030218\ncomponent,1,\n"; size_t sbat_size = sizeof(sbat); UINT32 attributes = SBAT_VAR_ATTRS; - if (preserve_sbat_uefi_variable(sbat, sbat_size, attributes)) + if (preserve_sbat_uefi_variable(sbat, sbat_size, attributes, sbatvar)) return 0; else return -1; @@ -978,11 +1011,12 @@ test_preserve_sbat_uefi_variable_good(void) int test_preserve_sbat_uefi_variable_bad_sig(void) { - char sbat[] = "bad_sig,1,\ncomponent,2,\n"; + char sbat[] = "bad_sig,1,2021030218\ncomponent,2,\n"; + char sbatvar[] = "sbat,1,2021030218\n"; size_t sbat_size = sizeof(sbat); UINT32 attributes = SBAT_VAR_ATTRS; - if (preserve_sbat_uefi_variable(sbat, sbat_size, attributes)) + if (preserve_sbat_uefi_variable(sbat, sbat_size, attributes, sbatvar)) return -1; else return 0; @@ -991,11 +1025,12 @@ test_preserve_sbat_uefi_variable_bad_sig(void) int test_preserve_sbat_uefi_variable_bad_attr(void) { - char sbat[] = "sbat,1,\ncomponent,2,\n"; + char sbat[] = "sbat,1,2021030218\ncomponent,2,\n"; + char sbatvar[] = "sbat,1,2021030218\n"; size_t sbat_size = sizeof(sbat); UINT32 attributes = 0; - if (preserve_sbat_uefi_variable(sbat, sbat_size, attributes)) + if (preserve_sbat_uefi_variable(sbat, sbat_size, attributes, sbatvar)) return -1; else return 0; @@ -1005,10 +1040,11 @@ int test_preserve_sbat_uefi_variable_bad_short(void) { char sbat[] = "sba"; + char sbatvar[] = "sbat,1,2021030218\n"; size_t sbat_size = sizeof(sbat); UINT32 attributes = SBAT_VAR_ATTRS; - if (preserve_sbat_uefi_variable(sbat, sbat_size, attributes)) + if (preserve_sbat_uefi_variable(sbat, sbat_size, attributes, sbatvar)) return -1; else return 0; @@ -1052,6 +1088,8 @@ main(void) test(test_parse_and_verify); test(test_preserve_sbat_uefi_variable_good); + test(test_preserve_sbat_uefi_variable_newer); + test(test_preserve_sbat_uefi_variable_older); test(test_preserve_sbat_uefi_variable_bad_sig); test(test_preserve_sbat_uefi_variable_bad_attr); test(test_preserve_sbat_uefi_variable_bad_short); |
