commit 98d990ea3827f305daf5c65a57a347f446b83a17 Author: MSVSphere Packaging Team Date: Fri Sep 22 20:40:09 2023 +0300 import tpm2-tools-5.2-3.el9 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d7a7eba --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/tpm2-tools-5.2.tar.gz diff --git a/.tpm2-tools.metadata b/.tpm2-tools.metadata new file mode 100644 index 0000000..bddb705 --- /dev/null +++ b/.tpm2-tools.metadata @@ -0,0 +1 @@ +00dc3b052d3b4ea44aeda95a9b3a6809ee471358 SOURCES/tpm2-tools-5.2.tar.gz diff --git a/SOURCES/0001-Fix-nv_readpublic.patch b/SOURCES/0001-Fix-nv_readpublic.patch new file mode 100644 index 0000000..24f16b3 --- /dev/null +++ b/SOURCES/0001-Fix-nv_readpublic.patch @@ -0,0 +1,62 @@ +From 4dffb4295392f69f00003b2879f60bd36076f22d Mon Sep 17 00:00:00 2001 +From: Imran Desai +Date: Tue, 7 Dec 2021 13:21:58 -0700 +Subject: [PATCH 01/17] Fix nv_readpublic + +Based on 4af3e6b4 tpm2_nvreadpublic: Add option to output cpHash +--- + lib/tpm2.c | 11 +++++++++-- + lib/tpm2_nv_util.h | 14 +------------- + 2 files changed, 10 insertions(+), 15 deletions(-) + +diff --git a/lib/tpm2.c b/lib/tpm2.c +index 4ee27c8c..d91072ae 100644 +--- a/lib/tpm2.c ++++ b/lib/tpm2.c +@@ -101,9 +101,16 @@ tool_rc tpm2_close(ESYS_CONTEXT *esys_context, ESYS_TR *rsrc_handle) { + tool_rc tpm2_nv_readpublic(ESYS_CONTEXT *esys_context, ESYS_TR nv_index, + TPM2B_NV_PUBLIC **nv_public, TPM2B_NAME **nv_name) { + +- TSS2_RC rval = Esys_NV_ReadPublic(esys_context, nv_index, +- ESYS_TR_NONE, ESYS_TR_NONE, ESYS_TR_NONE, nv_public, nv_name); ++ ESYS_TR esys_tr_nv_index; ++ TSS2_RC rval = Esys_TR_FromTPMPublic(esys_context, nv_index, ESYS_TR_NONE, ++ ESYS_TR_NONE, ESYS_TR_NONE, &esys_tr_nv_index); ++ if (rval != TPM2_RC_SUCCESS) { ++ LOG_PERR(Esys_TR_FromTPMPublic, rval); ++ return tool_rc_from_tpm(rval); ++ } + ++ rval = Esys_NV_ReadPublic(esys_context, esys_tr_nv_index, ++ ESYS_TR_NONE, ESYS_TR_NONE, ESYS_TR_NONE, nv_public, nv_name); + if (rval != TSS2_RC_SUCCESS) { + LOG_PERR(Esys_NV_ReadPublic, rval); + return tool_rc_from_tpm(rval); +diff --git a/lib/tpm2_nv_util.h b/lib/tpm2_nv_util.h +index 99843156..daf8b624 100644 +--- a/lib/tpm2_nv_util.h ++++ b/lib/tpm2_nv_util.h +@@ -28,19 +28,7 @@ + static inline tool_rc tpm2_util_nv_read_public(ESYS_CONTEXT *context, + TPMI_RH_NV_INDEX nv_index, TPM2B_NV_PUBLIC **nv_public) { + +- ESYS_TR tr_object; +- tool_rc rc = tpm2_from_tpm_public(context, nv_index, ESYS_TR_NONE, +- ESYS_TR_NONE, ESYS_TR_NONE, &tr_object); +- if (rc != tool_rc_success) { +- return rc; +- } +- +- rc = tpm2_nv_readpublic(context, tr_object, nv_public, NULL); +- tool_rc tmp_rc = tpm2_close(context, &tr_object); +- if (tmp_rc != tool_rc_success) { +- rc = tmp_rc; +- } +- return rc; ++ return tpm2_nv_readpublic(context, nv_index, nv_public, 0); + } + + /** +-- +2.40.1 + diff --git a/SOURCES/0001-lib-tpm2_eventlog_yaml-use-char16_t-for-UEFI-charact.patch b/SOURCES/0001-lib-tpm2_eventlog_yaml-use-char16_t-for-UEFI-charact.patch new file mode 100644 index 0000000..ea4f8de --- /dev/null +++ b/SOURCES/0001-lib-tpm2_eventlog_yaml-use-char16_t-for-UEFI-charact.patch @@ -0,0 +1,26 @@ +From 4351d850bb664941f88463229758171c2603080a Mon Sep 17 00:00:00 2001 +From: Erik Larsson +Date: Mon, 4 Oct 2021 10:21:49 +0200 +Subject: [PATCH 1/9] lib/tpm2_eventlog_yaml: use char16_t for UEFI characters + +Signed-off-by: Erik Larsson +--- + lib/tpm2_eventlog_yaml.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/lib/tpm2_eventlog_yaml.c b/lib/tpm2_eventlog_yaml.c +index 6e6923e5..9b048db1 100644 +--- a/lib/tpm2_eventlog_yaml.c ++++ b/lib/tpm2_eventlog_yaml.c +@@ -475,7 +475,7 @@ static bool yaml_uefi_var(UEFI_VARIABLE_DATA *data, size_t size, UINT32 type, + tpm2_tool_output(" Description: \""); + int i; + for (i = 0; (wchar_t)loadopt->Description[i] != 0; i++) { +- wchar_t c = (wchar_t)loadopt->Description[i]; ++ char16_t c = (char16_t)loadopt->Description[i]; + tpm2_tool_output("%lc", c); + } + tpm2_tool_output("\"\n"); +-- +2.37.3 + diff --git a/SOURCES/0001-testparms-fix-condition-for-negative-test.patch b/SOURCES/0001-testparms-fix-condition-for-negative-test.patch new file mode 100644 index 0000000..a1da9f8 --- /dev/null +++ b/SOURCES/0001-testparms-fix-condition-for-negative-test.patch @@ -0,0 +1,34 @@ +From 0789bf264a108c4718875a050d00b1fdee4478b7 Mon Sep 17 00:00:00 2001 +From: Jonas Witschel +Date: Wed, 29 Sep 2021 17:08:07 +0200 +Subject: [PATCH] testparms: fix condition for negative test +Content-type: text/plain + +Commit e858dec76686bb4c42e74e0984b433231e530f93 ("testparms: ensure curve not +supported before negative test") is supposed to ensure that the negative test +is run only if ecc521 is *not* supported, but instead it runs the negative test +if ecc521 is *available*. This worked anyway for libtpms < 0.9.0 because camellia +was not supported, but since libtpms 0.9.0 added support for this algorithm, the +test suite fails now with swtpm. + +Signed-off-by: Jonas Witschel +--- + test/integration/tests/testparms.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/test/integration/tests/testparms.sh b/test/integration/tests/testparms.sh +index 8c3548e58f39..a587a60a34cf 100644 +--- a/test/integration/tests/testparms.sh ++++ b/test/integration/tests/testparms.sh +@@ -63,7 +63,7 @@ else + fi + + # Attempt to specify a suite that is not supported (error from TPM) +-if tpm2 getcap ecc-curves | grep -q TPM2_ECC_NIST_P521; then ++if ! tpm2 getcap ecc-curves | grep -q TPM2_ECC_NIST_P521; then + if tpm2 testparms "ecc521:ecdsa:camellia" &>/dev/null; then + echo "tpm2 testparms succeeded while it shouldn't or TPM failed" + exit 1 +-- +2.35.3 + diff --git a/SOURCES/0002-Patch-set-for-handling-of-new-event-types-in-tpm2_ev.patch b/SOURCES/0002-Patch-set-for-handling-of-new-event-types-in-tpm2_ev.patch new file mode 100644 index 0000000..1469af4 --- /dev/null +++ b/SOURCES/0002-Patch-set-for-handling-of-new-event-types-in-tpm2_ev.patch @@ -0,0 +1,151 @@ +From 2558005814e4a64f8941216b9dc3d3c3a9b35c51 Mon Sep 17 00:00:00 2001 +From: George Almasi +Date: Fri, 8 Apr 2022 15:27:05 +0000 +Subject: [PATCH 2/9] Patch set for handling of new event types in + tpm2_eventlog: EV_EFI_PLATFORM_FIRMWARE_BLOB2, EV_EFI_HANDOFF_TABLES2, + EV_EFI_VARIABLE_BOOT2 + +Signed-off-by: George Almasi +--- + lib/efi_event.h | 11 ++++++++ + lib/tpm2_eventlog_yaml.c | 42 ++++++++++++++++++++++++++++- + test/unit/test_tpm2_eventlog_yaml.c | 6 +++++ + 3 files changed, 58 insertions(+), 1 deletion(-) + +diff --git a/lib/efi_event.h b/lib/efi_event.h +index 0136e32b..cc2ffc98 100644 +--- a/lib/efi_event.h ++++ b/lib/efi_event.h +@@ -41,6 +41,10 @@ + #define EV_EFI_ACTION EV_EFI_EVENT_BASE + 0x7 + #define EV_EFI_PLATFORM_FIRMWARE_BLOB EV_EFI_EVENT_BASE + 0x8 + #define EV_EFI_HANDOFF_TABLES EV_EFI_EVENT_BASE + 0x9 ++#define EV_EFI_PLATFORM_FIRMWARE_BLOB2 EV_EFI_EVENT_BASE + 0xa ++#define EV_EFI_HANDOFF_TABLES2 EV_EFI_EVENT_BASE + 0xb ++#define EV_EFI_VARIABLE_BOOT2 EV_EFI_EVENT_BASE + 0xc ++ + #define EV_EFI_VARIABLE_AUTHORITY EV_EFI_EVENT_BASE + 0xe0 + + #ifndef PACKED +@@ -96,6 +100,13 @@ typedef struct { + UINT64 BlobLength; + } PACKED UEFI_PLATFORM_FIRMWARE_BLOB; + ++ ++typedef struct { ++ UINT8 BlobDescriptionSize; ++ BYTE BlobDescription[]; ++ /* UEFI_PLATFORM_FIRMWARE_BLOB comes next */ ++} PACKED UEFI_PLATFORM_FIRMWARE_BLOB2; ++ + typedef struct { + UINT32 pcrIndex; + UINT32 eventType; +diff --git a/lib/tpm2_eventlog_yaml.c b/lib/tpm2_eventlog_yaml.c +index 9b048db1..d2d4aefe 100644 +--- a/lib/tpm2_eventlog_yaml.c ++++ b/lib/tpm2_eventlog_yaml.c +@@ -90,6 +90,12 @@ char const *eventtype_to_string (UINT32 event_type) { + return "EV_EFI_PLATFORM_FIRMWARE_BLOB"; + case EV_EFI_HANDOFF_TABLES: + return "EV_EFI_HANDOFF_TABLES"; ++ case EV_EFI_PLATFORM_FIRMWARE_BLOB2: ++ return "EV_EFI_PLATFORM_FIRMWARE_BLOB2"; ++ case EV_EFI_HANDOFF_TABLES2: ++ return "EV_EFI_HANDOFF_TABLES2"; ++ case EV_EFI_VARIABLE_BOOT2: ++ return "EV_EFI_VARIABLE_BOOT2"; + case EV_EFI_VARIABLE_AUTHORITY: + return "EV_EFI_VARIABLE_AUTHORITY"; + default: +@@ -433,7 +439,7 @@ static bool yaml_uefi_var(UEFI_VARIABLE_DATA *data, size_t size, UINT32 type, + uuidstr, sdata); + free(sdata); + return true; +- } else if (type == EV_EFI_VARIABLE_BOOT) { ++ } else if (type == EV_EFI_VARIABLE_BOOT || type == EV_EFI_VARIABLE_BOOT2) { + if ((strlen(ret) == 9 && strncmp(ret, "BootOrder", 9) == 0)) { + free(ret); + tpm2_tool_output(" VariableData:\n"); +@@ -526,6 +532,37 @@ bool yaml_uefi_platfwblob(UEFI_PLATFORM_FIRMWARE_BLOB *data) { + data->BlobLength); + return true; + } ++ ++/* TCG PC Client PFP (02 dec 2020) section 10.2.5 */ ++bool yaml_uefi_platfwblob2(UEFI_PLATFORM_FIRMWARE_BLOB2 *data) { ++ UINT8 blobdescsize = data->BlobDescriptionSize; ++ UEFI_PLATFORM_FIRMWARE_BLOB * data2 = (UEFI_PLATFORM_FIRMWARE_BLOB *)((UINT8 *)data + sizeof(UINT8) + blobdescsize); ++ ++ char * eventdesc = (char *)calloc (1, 2*blobdescsize+1); ++ if (!eventdesc) { ++ LOG_ERR("failed to allocate memory: %s\n", strerror(errno)); ++ return false; ++ } ++ ++ bytes_to_str (data->BlobDescription, blobdescsize, eventdesc, 2*blobdescsize); ++ ++ tpm2_tool_output(" Event:\n" ++ " BlobDescriptionSize: %d\n" ++ " BlobDescription: \"%.*s\"\n" ++ " BlobBase: 0x%" PRIx64 "\n" ++ " BlobLength: 0x%" PRIx64 "\n", ++ blobdescsize, ++ 2*blobdescsize, ++ eventdesc, ++ data2->BlobBase, ++ data2->BlobLength); ++ ++ free(eventdesc); ++ return true; ++} ++ ++ ++ + /* TCG PC Client PFP section 9.4.4 */ + bool yaml_uefi_action(UINT8 const *action, size_t size) { + +@@ -713,6 +750,7 @@ bool yaml_event2data(TCG_EVENT2 const *event, UINT32 type, uint32_t eventlog_ver + switch (type) { + case EV_EFI_VARIABLE_DRIVER_CONFIG: + case EV_EFI_VARIABLE_BOOT: ++ case EV_EFI_VARIABLE_BOOT2: + case EV_EFI_VARIABLE_AUTHORITY: + return yaml_uefi_var((UEFI_VARIABLE_DATA*)event->Event, + event->EventSize, type, eventlog_version); +@@ -721,6 +759,8 @@ bool yaml_event2data(TCG_EVENT2 const *event, UINT32 type, uint32_t eventlog_ver + case EV_S_CRTM_CONTENTS: + case EV_EFI_PLATFORM_FIRMWARE_BLOB: + return yaml_uefi_platfwblob((UEFI_PLATFORM_FIRMWARE_BLOB*)event->Event); ++ case EV_EFI_PLATFORM_FIRMWARE_BLOB2: ++ return yaml_uefi_platfwblob2((UEFI_PLATFORM_FIRMWARE_BLOB2*)event->Event); + case EV_EFI_ACTION: + return yaml_uefi_action(event->Event, event->EventSize); + case EV_IPL: +diff --git a/test/unit/test_tpm2_eventlog_yaml.c b/test/unit/test_tpm2_eventlog_yaml.c +index d4e30b0e..6881703b 100644 +--- a/test/unit/test_tpm2_eventlog_yaml.c ++++ b/test/unit/test_tpm2_eventlog_yaml.c +@@ -47,6 +47,9 @@ def_eventtype_to_string(EV_EFI_GPT_EVENT) + def_eventtype_to_string(EV_EFI_ACTION) + def_eventtype_to_string(EV_EFI_PLATFORM_FIRMWARE_BLOB) + def_eventtype_to_string(EV_EFI_HANDOFF_TABLES) ++def_eventtype_to_string(EV_EFI_PLATFORM_FIRMWARE_BLOB2) ++def_eventtype_to_string(EV_EFI_HANDOFF_TABLES2) ++def_eventtype_to_string(EV_EFI_VARIABLE_BOOT2) + def_eventtype_to_string(EV_EFI_VARIABLE_AUTHORITY) + + static void eventtype_to_string_default(void **state) { +@@ -141,6 +144,9 @@ int main(void) { + cmocka_unit_test(eventtype_to_string_EV_EFI_ACTION), + cmocka_unit_test(eventtype_to_string_EV_EFI_PLATFORM_FIRMWARE_BLOB), + cmocka_unit_test(eventtype_to_string_EV_EFI_HANDOFF_TABLES), ++ cmocka_unit_test(eventtype_to_string_EV_EFI_PLATFORM_FIRMWARE_BLOB2), ++ cmocka_unit_test(eventtype_to_string_EV_EFI_HANDOFF_TABLES2), ++ cmocka_unit_test(eventtype_to_string_EV_EFI_VARIABLE_BOOT2), + cmocka_unit_test(eventtype_to_string_EV_EFI_VARIABLE_AUTHORITY), + cmocka_unit_test(eventtype_to_string_default), + cmocka_unit_test(test_yaml_event2hdr_callback), +-- +2.37.3 + diff --git a/SOURCES/0002-tpm2_encodeobject-New-tool-to-encode-TPM2-object.patch b/SOURCES/0002-tpm2_encodeobject-New-tool-to-encode-TPM2-object.patch new file mode 100644 index 0000000..6cc7b12 --- /dev/null +++ b/SOURCES/0002-tpm2_encodeobject-New-tool-to-encode-TPM2-object.patch @@ -0,0 +1,385 @@ +From ba7682dc511f4ef6bbb8a15ca3bb0edf67ec39ce Mon Sep 17 00:00:00 2001 +From: Daiki Ueno +Date: Fri, 17 Sep 2021 07:14:20 +0200 +Subject: [PATCH 02/17] tpm2_encodeobject: New tool to encode TPM2 object + +This adds a new tool tpm2_encodeobject in tools/misc. It takes +public and private portions of an object and encode them in a combined +PEM form used by tpm2-tss-engine and other applications. + +Signed-off-by: Daiki Ueno +--- + Makefile.am | 2 + + man/tpm2_encodeobject.1.md | 92 +++++++++++++ + tools/misc/tpm2_encodeobject.c | 240 +++++++++++++++++++++++++++++++++ + 3 files changed, 334 insertions(+) + create mode 100644 man/tpm2_encodeobject.1.md + create mode 100644 tools/misc/tpm2_encodeobject.c + +diff --git a/Makefile.am b/Makefile.am +index 71322159..e1a51ebf 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -103,6 +103,7 @@ tools_tpm2_SOURCES = \ + tpm2_tools = \ + tools/misc/tpm2_certifyX509certutil.c \ + tools/misc/tpm2_checkquote.c \ ++ tools/misc/tpm2_encodeobject.c \ + tools/misc/tpm2_eventlog.c \ + tools/misc/tpm2_print.c \ + tools/misc/tpm2_rc_decode.c \ +@@ -376,6 +377,7 @@ if HAVE_MAN_PAGES + man/man1/tpm2_createprimary.1 \ + man/man1/tpm2_dictionarylockout.1 \ + man/man1/tpm2_duplicate.1 \ ++ man/man1/tpm2_encodeobject.1 \ + man/man1/tpm2_getcap.1 \ + man/man1/tpm2_encryptdecrypt.1 \ + man/man1/tpm2_eventlog.1 \ +diff --git a/man/tpm2_encodeobject.1.md b/man/tpm2_encodeobject.1.md +new file mode 100644 +index 00000000..791eafbd +--- /dev/null ++++ b/man/tpm2_encodeobject.1.md +@@ -0,0 +1,92 @@ ++% tpm2_encodeobject(1) tpm2-tools | General Commands Manual ++ ++# NAME ++ ++**tpm2_encodeobject**(1) - Encode an object into a combined PEM format. ++ ++# SYNOPSIS ++ ++**tpm2_encodeobject** [*OPTIONS*] ++ ++# DESCRIPTION ++ ++**tpm2_encodeobject**(1) - Encode both the private and public portions of an ++object into a combined PEM format used by tpm2-tss-engine. ++ ++The tool reads private and public portions of an object and encodes it ++into a combined PEM format used by tpm2-tss-engine and other ++applications. ++ ++**NOTE**: Both private and public portions of the tpm key must be specified. ++ ++# OPTIONS ++ ++ * **-C**, **\--parent-context**=_OBJECT_: ++ ++ The parent object. ++ ++ * **-P**, **\--auth**=_AUTH_: ++ ++ The authorization value of the parent object specified by **-C**. ++ ++ * **-u**, **\--public**=_FILE_: ++ ++ A file containing the public portion of the object. ++ ++ * **-r**, **\--private**=_FILE_: ++ ++ A file containing the sensitive portion of the object. ++ ++ * **-o**, **\--output**=_FILE_: ++ ++ The output file path, recording the public portion of the object. ++ ++## References ++ ++[context object format](common/ctxobj.md) details the methods for specifying ++_OBJECT_. ++ ++[authorization formatting](common/authorizations.md) details the methods for ++specifying _AUTH_. ++ ++[common options](common/options.md) collection of common options that provide ++information many users may expect. ++ ++[common tcti options](common/tcti.md) collection of options used to configure ++the various known TCTI modules. ++ ++# EXAMPLES ++ ++## Setup ++To load an object you first must create an object under a primary object. So the ++first step is to create the primary object. ++ ++```bash ++tpm2_createprimary -c primary.ctx ++``` ++ ++Step 2 is to create an object under the primary object. ++ ++```bash ++tpm2_create -C primary.ctx -u key.pub -r key.priv -f pem -o pub.pem ++``` ++ ++This creates the private and public portions of the TPM object. With these ++object portions, it is now possible to load that object into the TPM for ++subsequent use. ++ ++## Encoding an Object into a combined PEM format ++ ++The final step, is encoding the public and private portions of the object into a ++PEM format. ++ ++```bash ++tpm2_encodeobject -C primary.ctx -u key.pub -r key.priv -c priv.pem ++``` ++ ++The generated `priv.pem` can be used together with `pub.pem` created in the ++step 2 of Setup section. ++ ++[returns](common/returns.md) ++ ++[footer](common/footer.md) +diff --git a/tools/misc/tpm2_encodeobject.c b/tools/misc/tpm2_encodeobject.c +new file mode 100644 +index 00000000..2341c3a1 +--- /dev/null ++++ b/tools/misc/tpm2_encodeobject.c +@@ -0,0 +1,240 @@ ++/* SPDX-License-Identifier: BSD-3-Clause */ ++ ++/* ++ * Part of this file is copied from tpm2-tss-engine. ++ * ++ * Copyright 2017-2018, Fraunhofer SIT sponsored by Infineon Technologies AG ++ * All rights reserved. ++ * Copyright (c) 2019, Wind River Systems. ++ * All rights reserved. ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "files.h" ++#include "log.h" ++#include "tpm2.h" ++#include "tpm2_options.h" ++#include "tpm2_tool.h" ++ ++#define OID_loadableKey "2.23.133.10.1.3" ++ ++typedef struct { ++ ASN1_OBJECT *type; ++ ASN1_BOOLEAN emptyAuth; ++ ASN1_INTEGER *parent; ++ ASN1_OCTET_STRING *pubkey; ++ ASN1_OCTET_STRING *privkey; ++} TSSPRIVKEY; ++ ++DECLARE_ASN1_FUNCTIONS(TSSPRIVKEY); ++DECLARE_PEM_write_bio(TSSPRIVKEY, TSSPRIVKEY); ++ ++ASN1_SEQUENCE(TSSPRIVKEY) = { ++ ASN1_SIMPLE(TSSPRIVKEY, type, ASN1_OBJECT), ++ ASN1_EXP_OPT(TSSPRIVKEY, emptyAuth, ASN1_BOOLEAN, 0), ++ ASN1_SIMPLE(TSSPRIVKEY, parent, ASN1_INTEGER), ++ ASN1_SIMPLE(TSSPRIVKEY, pubkey, ASN1_OCTET_STRING), ++ ASN1_SIMPLE(TSSPRIVKEY, privkey, ASN1_OCTET_STRING) ++} ASN1_SEQUENCE_END(TSSPRIVKEY) ++ ++#define TSSPRIVKEY_PEM_STRING "TSS2 PRIVATE KEY" ++ ++IMPLEMENT_ASN1_FUNCTIONS(TSSPRIVKEY); ++IMPLEMENT_PEM_write_bio(TSSPRIVKEY, TSSPRIVKEY, TSSPRIVKEY_PEM_STRING, TSSPRIVKEY); ++IMPLEMENT_PEM_read_bio(TSSPRIVKEY, TSSPRIVKEY, TSSPRIVKEY_PEM_STRING, TSSPRIVKEY); ++ ++typedef struct tpm_encodeobject_ctx tpm_encodeobject_ctx; ++struct tpm_encodeobject_ctx { ++ struct { ++ const char *ctx_path; ++ const char *auth_str; ++ tpm2_loaded_object object; ++ } parent; ++ ++ struct { ++ const char *pubpath; ++ TPM2B_PUBLIC public; ++ const char *privpath; ++ TPM2B_PRIVATE private; ++ ESYS_TR handle; ++ } object; ++ ++ char *output_path; ++}; ++ ++static tpm_encodeobject_ctx ctx; ++ ++static bool on_option(char key, char *value) { ++ switch (key) { ++ case 'P': ++ ctx.parent.auth_str = value; ++ break; ++ case 'u': ++ ctx.object.pubpath = value; ++ break; ++ case 'r': ++ ctx.object.privpath = value; ++ break; ++ case 'C': ++ ctx.parent.ctx_path = value; ++ break; ++ case 'o': ++ ctx.output_path = value; ++ break; ++ } ++ ++ return true; ++} ++ ++static bool tpm2_tool_onstart(tpm2_options **opts) { ++ const struct option topts[] = { ++ { "auth", required_argument, NULL, 'P' }, ++ { "public", required_argument, NULL, 'u' }, ++ { "private", required_argument, NULL, 'r' }, ++ { "parent-context", required_argument, NULL, 'C' }, ++ { "output", required_argument, NULL, 'o' }, ++ }; ++ ++ *opts = tpm2_options_new("P:u:r:C:o:", ARRAY_LEN(topts), topts, on_option, ++ NULL, 0); ++ ++ return *opts != NULL; ++} ++ ++static tool_rc check_opts(void) { ++ tool_rc rc = tool_rc_success; ++ if (!ctx.parent.ctx_path) { ++ LOG_ERR("Expected parent object via -C"); ++ rc = tool_rc_option_error; ++ } ++ ++ if (!ctx.object.pubpath) { ++ LOG_ERR("Expected public object portion via -u"); ++ rc = tool_rc_option_error; ++ } ++ ++ if (!ctx.object.privpath) { ++ LOG_ERR("Expected private object portion via -r"); ++ rc = tool_rc_option_error; ++ } ++ ++ if (!ctx.output_path) { ++ LOG_ERR("Expected output file path via -o"); ++ rc = tool_rc_option_error; ++ } ++ ++ return rc; ++} ++ ++static tool_rc init(ESYS_CONTEXT *ectx) { ++ bool res = files_load_public(ctx.object.pubpath, &ctx.object.public); ++ if (!res) { ++ return tool_rc_general_error; ++ } ++ ++ res = files_load_private(ctx.object.privpath, &ctx.object.private); ++ if (!res) { ++ return tool_rc_general_error; ++ } ++ ++ return tpm2_util_object_load_auth(ectx, ctx.parent.ctx_path, ++ ctx.parent.auth_str, &ctx.parent.object, false, ++ TPM2_HANDLE_ALL_W_NV); ++} ++ ++static int ++encode(void) ++{ ++ TSS2_RC rc; ++ BIO *bio = NULL; ++ TSSPRIVKEY *tpk = NULL; ++ ++ uint8_t private_buf[sizeof(ctx.object.private)]; ++ uint8_t public_buf[sizeof(ctx.object.public)]; ++ size_t private_len = 0, public_len = 0; ++ ++ rc = Tss2_MU_TPM2B_PRIVATE_Marshal(&ctx.object.private, private_buf, ++ sizeof(private_buf), &private_len); ++ if (rc) { ++ LOG_ERR("Error serializing private portion of object"); ++ goto error; ++ } ++ ++ rc = Tss2_MU_TPM2B_PUBLIC_Marshal(&ctx.object.public, public_buf, ++ sizeof(public_buf), &public_len); ++ if (rc) { ++ LOG_ERR("Error serializing public portion of object"); ++ goto error; ++ } ++ ++ tpk = TSSPRIVKEY_new(); ++ if (!tpk) { ++ LOG_ERR("oom"); ++ goto error; ++ } ++ ++ tpk->type = OBJ_txt2obj(OID_loadableKey, 1); ++ tpk->parent = ASN1_INTEGER_new(); ++ tpk->privkey = ASN1_OCTET_STRING_new(); ++ tpk->pubkey = ASN1_OCTET_STRING_new(); ++ if (!tpk->type || !tpk->privkey || !tpk->pubkey || !tpk->parent) { ++ LOG_ERR("oom"); ++ goto error; ++ } ++ ++ tpk->emptyAuth = ctx.parent.auth_str == NULL ? 0xFF : 0; ++ ++ if ((ctx.parent.object.handle >> TPM2_HR_SHIFT) == TPM2_HT_PERSISTENT) { ++ ASN1_INTEGER_set(tpk->parent, ctx.parent.object.handle); ++ } else { ++ /* Indicate that the parent is a primary object generated on the fly. */ ++ ASN1_INTEGER_set(tpk->parent, TPM2_RH_OWNER); ++ } ++ ++ ASN1_STRING_set(tpk->privkey, private_buf, private_len); ++ ASN1_STRING_set(tpk->pubkey, public_buf, public_len); ++ ++ if ((bio = BIO_new_file(ctx.output_path, "w")) == NULL) { ++ LOG_ERR("Could not open file: \"%s\"", ctx.output_path); ++ goto error; ++ } ++ ++ PEM_write_bio_TSSPRIVKEY(bio, tpk); ++ TSSPRIVKEY_free(tpk); ++ BIO_free(bio); ++ ++ return tool_rc_success; ++ error: ++ if (bio) ++ BIO_free(bio); ++ if (tpk) ++ TSSPRIVKEY_free(tpk); ++ return tool_rc_general_error; ++} ++ ++static tool_rc tpm2_tool_onrun(ESYS_CONTEXT *ectx, tpm2_option_flags flags) { ++ UNUSED(flags); ++ ++ tool_rc rc = check_opts(); ++ if (rc != tool_rc_success) { ++ return rc; ++ } ++ ++ rc = init(ectx); ++ if (rc != tool_rc_success) { ++ return rc; ++ } ++ ++ return encode(); ++} ++ ++// Register this tool with tpm2_tool.c ++TPM2_TOOL_REGISTER("encodeobject", tpm2_tool_onstart, tpm2_tool_onrun, NULL, NULL) +-- +2.40.1 + diff --git a/SOURCES/0003-Code-clarity-fix-for-calculation-of-data-member-addr.patch b/SOURCES/0003-Code-clarity-fix-for-calculation-of-data-member-addr.patch new file mode 100644 index 0000000..8afe3bd --- /dev/null +++ b/SOURCES/0003-Code-clarity-fix-for-calculation-of-data-member-addr.patch @@ -0,0 +1,27 @@ +From 18f211c7f28d204e5676a30480b681519316d87f Mon Sep 17 00:00:00 2001 +From: George Almasi +Date: Mon, 11 Apr 2022 12:12:45 +0000 +Subject: [PATCH 3/9] Code clarity fix for calculation of data member addresses + when printing out UEFI_PLATFORM_FIRMWARE_BLOB2 structures. + +Signed-off-by: George Almasi +--- + lib/tpm2_eventlog_yaml.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/lib/tpm2_eventlog_yaml.c b/lib/tpm2_eventlog_yaml.c +index d2d4aefe..647a2225 100644 +--- a/lib/tpm2_eventlog_yaml.c ++++ b/lib/tpm2_eventlog_yaml.c +@@ -536,7 +536,7 @@ bool yaml_uefi_platfwblob(UEFI_PLATFORM_FIRMWARE_BLOB *data) { + /* TCG PC Client PFP (02 dec 2020) section 10.2.5 */ + bool yaml_uefi_platfwblob2(UEFI_PLATFORM_FIRMWARE_BLOB2 *data) { + UINT8 blobdescsize = data->BlobDescriptionSize; +- UEFI_PLATFORM_FIRMWARE_BLOB * data2 = (UEFI_PLATFORM_FIRMWARE_BLOB *)((UINT8 *)data + sizeof(UINT8) + blobdescsize); ++ UEFI_PLATFORM_FIRMWARE_BLOB * data2 = (UEFI_PLATFORM_FIRMWARE_BLOB *)((UINT8 *)data + sizeof(data->BlobDescriptionSize) + blobdescsize); + + char * eventdesc = (char *)calloc (1, 2*blobdescsize+1); + if (!eventdesc) { +-- +2.37.3 + diff --git a/SOURCES/0003-tools-tpm2_evictconrol-fix-for-call-to-Esys_TR_Close.patch b/SOURCES/0003-tools-tpm2_evictconrol-fix-for-call-to-Esys_TR_Close.patch new file mode 100644 index 0000000..990d1d3 --- /dev/null +++ b/SOURCES/0003-tools-tpm2_evictconrol-fix-for-call-to-Esys_TR_Close.patch @@ -0,0 +1,104 @@ +From be8b4cb178332f24fb06f30d3211a24ea3c9e632 Mon Sep 17 00:00:00 2001 +From: Imran Desai +Date: Fri, 3 Sep 2021 11:24:31 -0700 +Subject: [PATCH 03/17] tools/tpm2_evictconrol: fix for call to Esys_TR_Close + on bad handle + +Fixes #2254 + +Signed-off-by: Imran Desai +--- + tools/tpm2_evictcontrol.c | 36 +++++++++++++++--------------------- + 1 file changed, 15 insertions(+), 21 deletions(-) + +diff --git a/tools/tpm2_evictcontrol.c b/tools/tpm2_evictcontrol.c +index 0ae4edc6..8199be39 100644 +--- a/tools/tpm2_evictcontrol.c ++++ b/tools/tpm2_evictcontrol.c +@@ -106,20 +106,18 @@ static tool_rc tpm2_tool_onrun(ESYS_CONTEXT *ectx, tpm2_option_flags flags) { + bool evicted = false; + + /* load up the object/handle to work on */ +- tool_rc tmp_rc = tpm2_util_object_load(ectx, ctx.to_persist_key.ctx_path, +- &ctx.to_persist_key.object, TPM2_HANDLE_ALL_W_NV); +- if (tmp_rc != tool_rc_success) { +- rc = tmp_rc; +- goto out; ++ rc = tpm2_util_object_load(ectx, ctx.to_persist_key.ctx_path, ++ &ctx.to_persist_key.object, TPM2_HANDLE_ALL_W_NV); ++ if (rc != tool_rc_success) { ++ return rc; + } + + /* load up the auth hierarchy */ +- tmp_rc = tpm2_util_object_load_auth(ectx, ctx.auth_hierarchy.ctx_path, ++ rc = tpm2_util_object_load_auth(ectx, ctx.auth_hierarchy.ctx_path, + ctx.auth_hierarchy.auth_str, &ctx.auth_hierarchy.object, false, + TPM2_HANDLE_FLAGS_O | TPM2_HANDLE_FLAGS_P); +- if (tmp_rc != tool_rc_success) { +- rc = tmp_rc; +- goto out; ++ if (rc != tool_rc_success) { ++ return rc; + } + + if (ctx.to_persist_key.object.handle >> TPM2_HR_SHIFT +@@ -136,11 +134,10 @@ static tool_rc tpm2_tool_onrun(ESYS_CONTEXT *ectx, tpm2_option_flags flags) { + */ + if (ctx.flags.c && !ctx.flags.p) { + bool is_platform = ctx.auth_hierarchy.object.handle == TPM2_RH_PLATFORM; +- tmp_rc = tpm2_capability_find_vacant_persistent_handle(ectx, ++ rc = tpm2_capability_find_vacant_persistent_handle(ectx, + is_platform, &ctx.persist_handle); +- if (tmp_rc != tool_rc_success) { +- rc = tmp_rc; +- goto out; ++ if (rc != tool_rc_success) { ++ return rc; + } + /* we searched and found a persistent handle, so mark that peristent handle valid */ + ctx.flags.p = 1; +@@ -148,7 +145,7 @@ static tool_rc tpm2_tool_onrun(ESYS_CONTEXT *ectx, tpm2_option_flags flags) { + + if (ctx.flags.o && !ctx.flags.p) { + LOG_ERR("Cannot specify -o without using a persistent handle"); +- goto out; ++ return tool_rc_option_error; + } + + ESYS_TR out_tr; +@@ -175,7 +172,7 @@ static tool_rc tpm2_tool_onrun(ESYS_CONTEXT *ectx, tpm2_option_flags flags) { + rc = tpm2_evictcontrol(ectx, &ctx.auth_hierarchy.object, + &ctx.to_persist_key.object, ctx.persist_handle, &out_tr, NULL); + if (rc != tool_rc_success) { +- goto out; ++ return rc; + } + + /* +@@ -191,19 +188,16 @@ static tool_rc tpm2_tool_onrun(ESYS_CONTEXT *ectx, tpm2_option_flags flags) { + evicted = out_tr == ESYS_TR_NONE; + tpm2_tool_output("persistent-handle: 0x%x\n", ctx.persist_handle); + tpm2_tool_output("action: %s\n", evicted ? "evicted" : "persisted"); +- ++ tool_rc tmp_rc = tool_rc_success; + if (ctx.output_arg) { +- rc = files_save_ESYS_TR(ectx, out_tr, ctx.output_arg); +- } else { +- rc = tool_rc_success; ++ tmp_rc = files_save_ESYS_TR(ectx, out_tr, ctx.output_arg); + } + +-out: + if (!evicted) { + rc = tpm2_close(ectx, &out_tr); + } + +- return rc; ++ return (tmp_rc == tool_rc_success) ? rc : tmp_rc; + } + + static tool_rc tpm2_tool_onstop(ESYS_CONTEXT *ectx) { +-- +2.40.1 + diff --git a/SOURCES/0004-Fix-argument-parsing-in-tpm2_policylocality.patch b/SOURCES/0004-Fix-argument-parsing-in-tpm2_policylocality.patch new file mode 100644 index 0000000..6913a58 --- /dev/null +++ b/SOURCES/0004-Fix-argument-parsing-in-tpm2_policylocality.patch @@ -0,0 +1,45 @@ +From f365a0adca8379ce89ff86fdf740082cf6a56f1b Mon Sep 17 00:00:00 2001 +From: Tien-Ren Chen +Date: Thu, 25 Nov 2021 12:41:52 -0500 +Subject: [PATCH 04/17] Fix argument parsing in tpm2_policylocality + +This patch fixes a bug that caused tpm2_policylocality to almost +always generate PolicyLocality(0). + +There was a logical inversion that caused almost any argument +(including invalid ones) to be interpreted as zero, except "zero" +would be interpreted as one. + +Signed-off-by: Tien-Ren Chen +--- + tools/tpm2_policylocality.c | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/tools/tpm2_policylocality.c b/tools/tpm2_policylocality.c +index 81edbe65..b1d43d02 100644 +--- a/tools/tpm2_policylocality.c ++++ b/tools/tpm2_policylocality.c +@@ -54,15 +54,15 @@ static bool on_arg(int argc, char **argv) { + return false; + } + +- if (strcmp(argv[0], "zero")) { ++ if (strcmp(argv[0], "zero") == 0) { + ctx.locality = TPMA_LOCALITY_TPM2_LOC_ZERO; +- } else if (strcmp(argv[0], "one")) { ++ } else if (strcmp(argv[0], "one") == 0) { + ctx.locality = TPMA_LOCALITY_TPM2_LOC_ONE; +- } else if (strcmp(argv[0], "two")) { ++ } else if (strcmp(argv[0], "two") == 0) { + ctx.locality = TPMA_LOCALITY_TPM2_LOC_TWO; +- } else if (strcmp(argv[0], "three")) { ++ } else if (strcmp(argv[0], "three") == 0) { + ctx.locality = TPMA_LOCALITY_TPM2_LOC_THREE; +- } else if (strcmp(argv[0], "four")) { ++ } else if (strcmp(argv[0], "four") == 0) { + ctx.locality = TPMA_LOCALITY_TPM2_LOC_FOUR; + } else { + bool result = tpm2_util_string_to_uint8(argv[0], &ctx.locality); +-- +2.40.1 + diff --git a/SOURCES/0004-tpm2_eventlog-clean-up-some-magic-numbers.patch b/SOURCES/0004-tpm2_eventlog-clean-up-some-magic-numbers.patch new file mode 100644 index 0000000..572d441 --- /dev/null +++ b/SOURCES/0004-tpm2_eventlog-clean-up-some-magic-numbers.patch @@ -0,0 +1,55 @@ +From 2781de8cb60d0e8efb72d57eb1178f2f6df9415c Mon Sep 17 00:00:00 2001 +From: Jerry Snitselaar +Date: Tue, 2 Aug 2022 11:59:06 -0700 +Subject: [PATCH 4/9] tpm2_eventlog: clean up some magic numbers + +Make the code a bit clearer by making it clear +we are subtracting the size of the EFI_GUID member +from the EFI_SIGNATURE_DATA size. + +Signed-off-by: Jerry Snitselaar +--- + lib/tpm2_eventlog_yaml.c | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +diff --git a/lib/tpm2_eventlog_yaml.c b/lib/tpm2_eventlog_yaml.c +index 647a2225..fee78027 100644 +--- a/lib/tpm2_eventlog_yaml.c ++++ b/lib/tpm2_eventlog_yaml.c +@@ -374,13 +374,13 @@ static bool yaml_uefi_var(UEFI_VARIABLE_DATA *data, size_t size, UINT32 type, + for (i = 0; i < signatures; i++) { + EFI_SIGNATURE_DATA *s = (EFI_SIGNATURE_DATA *)signature; + char *sdata = calloc (1, +- BYTES_TO_HEX_STRING_SIZE(slist->SignatureSize-16)); ++ BYTES_TO_HEX_STRING_SIZE(slist->SignatureSize - sizeof(EFI_GUID))); + if (sdata == NULL) { + LOG_ERR("Failled to allocate data: %s\n", strerror(errno)); + return false; + } +- bytes_to_str(s->SignatureData, slist->SignatureSize-16, +- sdata, BYTES_TO_HEX_STRING_SIZE(slist->SignatureSize-16)); ++ bytes_to_str(s->SignatureData, slist->SignatureSize - sizeof(EFI_GUID), ++ sdata, BYTES_TO_HEX_STRING_SIZE(slist->SignatureSize - sizeof(EFI_GUID))); + guid_unparse_lower(s->SignatureOwner, uuidstr); + tpm2_tool_output(" - SignatureOwner: %s\n" + " SignatureData: %s\n", +@@ -426,13 +426,13 @@ static bool yaml_uefi_var(UEFI_VARIABLE_DATA *data, size_t size, UINT32 type, + EFI_SIGNATURE_DATA *s= (EFI_SIGNATURE_DATA *)&data->UnicodeName[ + data->UnicodeNameLength]; + char *sdata = calloc (1, +- BYTES_TO_HEX_STRING_SIZE(data->VariableDataLength - 16)); ++ BYTES_TO_HEX_STRING_SIZE(data->VariableDataLength - sizeof(EFI_GUID))); + if (sdata == NULL) { + LOG_ERR("Failled to allocate data: %s\n", strerror(errno)); + return false; + } +- bytes_to_str(s->SignatureData, data->VariableDataLength - 16, +- sdata, BYTES_TO_HEX_STRING_SIZE(data->VariableDataLength - 16)); ++ bytes_to_str(s->SignatureData, data->VariableDataLength - sizeof(EFI_GUID), ++ sdata, BYTES_TO_HEX_STRING_SIZE(data->VariableDataLength - sizeof(EFI_GUID))); + guid_unparse_lower(s->SignatureOwner, uuidstr); + tpm2_tool_output(" - SignatureOwner: %s\n" + " SignatureData: %s\n", +-- +2.37.3 + diff --git a/SOURCES/0005-tools-tpm2_tool.c-Fix-an-issue-where-LOG_WARN-is-alw.patch b/SOURCES/0005-tools-tpm2_tool.c-Fix-an-issue-where-LOG_WARN-is-alw.patch new file mode 100644 index 0000000..329a342 --- /dev/null +++ b/SOURCES/0005-tools-tpm2_tool.c-Fix-an-issue-where-LOG_WARN-is-alw.patch @@ -0,0 +1,82 @@ +From 221d8e557ab5a00246f7b09746377819cfbaec5e Mon Sep 17 00:00:00 2001 +From: Imran Desai +Date: Wed, 9 Mar 2022 10:24:45 -0700 +Subject: [PATCH 05/17] tools/tpm2_tool.c: Fix an issue where LOG_WARN is + always displayed + +Despite setting the 'quiet' flag with -Q the warning messages were +always displayed. + +Signed-off-by: Imran Desai +--- + lib/tpm2_options.c | 12 +++++++++--- + tools/tpm2_makecredential.c | 9 ++++++--- + 2 files changed, 15 insertions(+), 6 deletions(-) + +diff --git a/lib/tpm2_options.c b/lib/tpm2_options.c +index 8c8af2af..1238e440 100644 +--- a/lib/tpm2_options.c ++++ b/lib/tpm2_options.c +@@ -456,12 +456,16 @@ tpm2_option_code tpm2_handle_options(int argc, char **argv, + + /* tool doesn't request a sapi, don't initialize one */ + if (flags->tcti_none && is_optional_sapi) { +- LOG_WARN("Tool optionally uses SAPI. Continuing with tcti=none"); ++ if (!flags->quiet) { ++ LOG_WARN("Tool optionally uses SAPI. Continuing with tcti=none"); ++ } + goto none; + } + + if (flags->tcti_none && is_no_sapi) { +- LOG_WARN("Tool does not use SAPI. Continuing with tcti=none"); ++ if (!flags->quiet) { ++ LOG_WARN("Tool does not use SAPI. Continuing with tcti=none"); ++ } + goto none; + } + +@@ -481,7 +485,9 @@ tpm2_option_code tpm2_handle_options(int argc, char **argv, + bool is_optional_fake_tcti = (flags->tcti_none && tool_opts && + tool_opts->flags & TPM2_OPTIONS_OPTIONAL_SAPI_AND_FAKE_TCTI); + if (is_optional_fake_tcti) { +- LOG_WARN("Tool optionally uses SAPI. Continuing with tcti=fake"); ++ if (!flags->quiet) { ++ LOG_WARN("Tool optionally uses SAPI. Continuing with tcti=fake"); ++ } + *tcti = (TSS2_TCTI_CONTEXT *)&fake_tcti; + goto none; + } +diff --git a/tools/tpm2_makecredential.c b/tools/tpm2_makecredential.c +index 0b0fa123..5bd5b484 100644 +--- a/tools/tpm2_makecredential.c ++++ b/tools/tpm2_makecredential.c +@@ -310,11 +310,14 @@ static void set_default_TCG_EK_template(TPMI_ALG_PUBLIC alg) { + ctx.public.publicArea.nameAlg = TPM2_ALG_SHA256; + } + +-static tool_rc process_input(void) { ++static tool_rc process_input(tpm2_option_flags flags) { + + TPMI_ALG_PUBLIC alg = TPM2_ALG_NULL; + if (ctx.key_type) { +- LOG_WARN("Because **-G** is specified, assuming input encryption public key is in PEM format."); ++ if (!flags.quiet) { ++ LOG_WARN("Because **-G** is specified, assuming input encryption " ++ "public key is in PEM format."); ++ } + alg = tpm2_alg_util_from_optarg(ctx.key_type, + tpm2_alg_util_flags_asymmetric); + if (alg == TPM2_ALG_ERROR || +@@ -379,7 +382,7 @@ static tool_rc tpm2_tool_onrun(ESYS_CONTEXT *ectx, tpm2_option_flags flags) { + + UNUSED(flags); + +- tool_rc rc = process_input(); ++ tool_rc rc = process_input(flags); + if (rc != tool_rc_success) { + return rc; + } +-- +2.40.1 + diff --git a/SOURCES/0005-tpm2_eventlog_yaml-fix-malformed-YAML-for-EV_IPL-dat.patch b/SOURCES/0005-tpm2_eventlog_yaml-fix-malformed-YAML-for-EV_IPL-dat.patch new file mode 100644 index 0000000..9e58f41 --- /dev/null +++ b/SOURCES/0005-tpm2_eventlog_yaml-fix-malformed-YAML-for-EV_IPL-dat.patch @@ -0,0 +1,209 @@ +From cef0317b83e06fdca25ef52a8bfd59b74d318e5a Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= +Date: Thu, 29 Sep 2022 10:48:36 -0400 +Subject: [PATCH 5/9] tpm2_eventlog_yaml: fix malformed YAML for EV_IPL data +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The code for printing EV_IPL data was fairly crude and often +did not generate valid YAML syntax. Some problems + + * Data starting with a space would result in invalid + indentation, a leading space requires a quoted string + * Non-printable cahracters must generally be escaped, + using a quoted string + * Embedded NUL bytes were turned into newlines, which + mangled any UTF16 encoded data. + +This change attempts to make the YAML output much safer. It +is not pefect as it just processes the data bytewise and +thus could potentially emit invalid UTF-8 bytes. In practice +this won't be a problem for known bootloader emitting EV_IPL +events. + +This changes the formatting slightly + + - All strings are now surrounded with double quotes + + - All NUL bytes, including the final trailing NUL + are displayed in escaped format. + + - Non-printable ASCII chars are escaped, including + the tab character, per YAML recommendations + +A much better long term solution would be to switch to +using libyaml for generating the output which would give +a strong guarantee of correct formatting. + +Signed-off-by: Daniel P. Berrangé +--- + lib/tpm2_eventlog_yaml.c | 141 ++++++++++++++++++++++++++++++++++++--- + 1 file changed, 130 insertions(+), 11 deletions(-) + +diff --git a/lib/tpm2_eventlog_yaml.c b/lib/tpm2_eventlog_yaml.c +index fee78027..66a20701 100644 +--- a/lib/tpm2_eventlog_yaml.c ++++ b/lib/tpm2_eventlog_yaml.c +@@ -571,6 +571,125 @@ bool yaml_uefi_action(UINT8 const *action, size_t size) { + + return true; + } ++ ++ ++/* ++ * The yaml_ipl description is received as raw bytes, but the ++ * data will represent a printable string. Unfortunately we ++ * are not told its encoding, and this can vary. For example, ++ * grub will use UTF8, while sd-boot will UTF16LE. ++ * ++ * We need to emit YAML with some rules: ++ * ++ * - No leading ' ' without quoting it ++ * - Escape non-printable ascii chars ++ * - Double quotes if using escape sequences ++ * - Valid UTF8 string ++ * ++ * This method will ignore the question of original data ++ * encoding and apply a few simple rules to make the data ++ * mostly YAML compliant. Where it falls down is not ++ * guaranteeing valid UTF8, if the input was not already ++ * valid UTF8. In practice this limitation shouldn't be ++ * a problem given expected measured data. ++ * ++ * Note: one consequence of this approach is that most ++ * UTF16LE data will be rendered with lots of \0 bytes ++ * escaped. ++ * ++ * For ease of output reading, the data is also split on newlines ++ */ ++char **yaml_split_escape_string(UINT8 const *description, size_t size) ++{ ++ char **lines = NULL, **tmp; ++ size_t nlines = 0; ++ size_t i, j, k; ++ size_t len; ++ UINT8 *nl; ++ ++ i = 0; ++ do { ++ nl = memchr(description + i, '\n', size - i); ++ len = nl ? (size_t)(nl - (description + i)) : size - i; ++ ++ tmp = realloc(lines, sizeof(char *) * (nlines + 2)); ++ if (!tmp) { ++ LOG_ERR("failed to allocate memory for description lines: %s\n", ++ strerror(errno)); ++ goto error; ++ } ++ lines = tmp; ++ lines[nlines + 1] = NULL; ++ k = 0; ++ ++ /* Worst case: every byte needs escaping, plus start/end quotes, plus nul */ ++ lines[nlines] = calloc(1, (len * 2) + 2 + 1); ++ if (!lines[nlines]) { ++ LOG_ERR("failed to allocate memory for escaped string: %s\n", ++ strerror(errno)); ++ goto error; ++ } ++ ++ lines[nlines][k++] = '"'; ++ for (j = i; j < (i + len); j++) { ++ char escape = '\0'; ++ ++ switch (description[j]) { ++ case '\0': ++ escape = '0'; ++ break; ++ case '\a': ++ escape = 'a'; ++ break; ++ case '\b': ++ escape = 'b'; ++ break; ++ case '\t': ++ escape = 't'; ++ break; ++ case '\v': ++ escape = 'v'; ++ break; ++ case '\f': ++ escape = 'f'; ++ break; ++ case '\r': ++ escape = 'r'; ++ break; ++ case '\e': ++ escape = 'e'; ++ break; ++ case '\'': ++ escape = '\''; ++ break; ++ case '\\': ++ escape = '\\'; ++ break; ++ } ++ ++ if (escape == '\0') { ++ lines[nlines][k++] = description[j]; ++ } else { ++ lines[nlines][k++] = '\\'; ++ lines[nlines][k++] = escape; ++ } ++ } ++ lines[nlines][k++] = '"'; ++ ++ nlines++; ++ i += len + 1; ++ } while (i < size); ++ ++ return lines; ++ ++ error: ++ for (i = 0; lines != NULL && lines[i] != NULL; i++) { ++ free(lines[i]); ++ } ++ free(lines); ++ return NULL; ++} ++ + /* + * TCG PC Client PFP section 9.4.1 + * This event type is extensively used by the Shim and Grub on a wide varities +@@ -578,21 +697,21 @@ bool yaml_uefi_action(UINT8 const *action, size_t size) { + * the loading of grub, kernel, and initrd images. + */ + bool yaml_ipl(UINT8 const *description, size_t size) { +- ++ char **lines = NULL; ++ size_t i; + tpm2_tool_output(" Event:\n" + " String: |-\n"); + +- /* We need to handle when description contains multiple lines. */ +- size_t i, j; +- for (i = 0; i < size; i++) { +- for (j = i; j < size; j++) { +- if (description[j] == '\n' || description[j] == '\0') { +- break; +- } +- } +- tpm2_tool_output(" %.*s\n", (int)(j - i), description+i); +- i = j; ++ lines = yaml_split_escape_string(description, size); ++ if (!lines) { ++ return false; ++ } ++ ++ for (i = 0; lines[i] != NULL; i++) { ++ tpm2_tool_output(" %s\n", lines[i]); ++ free(lines[i]); + } ++ free(lines); + + return true; + } +-- +2.37.3 + diff --git a/SOURCES/0006-import-fix-bug-on-using-scheme.patch b/SOURCES/0006-import-fix-bug-on-using-scheme.patch new file mode 100644 index 0000000..b6fd8a2 --- /dev/null +++ b/SOURCES/0006-import-fix-bug-on-using-scheme.patch @@ -0,0 +1,100 @@ +From acc82191f519f8bcdfcc0827faf024dcd2f56f78 Mon Sep 17 00:00:00 2001 +From: William Roberts +Date: Fri, 20 May 2022 10:49:04 -0500 +Subject: [PATCH 06/17] import: fix bug on using scheme + +When scheme is specified in the template, the openssl load functions +clobber the scheme value and set it to TPM2_ALG_NULL. Only set the +algorithm to NULL if zero value is specified. + +Fixes: #2997 + +Signed-off-by: William Roberts +--- + lib/tpm2_openssl.c | 24 ++++++++++++++++++------ + test/integration/tests/import.sh | 13 +++++++++---- + 2 files changed, 27 insertions(+), 10 deletions(-) + +diff --git a/lib/tpm2_openssl.c b/lib/tpm2_openssl.c +index 01bfc9ef..ad43c8e1 100644 +--- a/lib/tpm2_openssl.c ++++ b/lib/tpm2_openssl.c +@@ -534,9 +534,15 @@ static bool load_public_RSA_from_key(EVP_PKEY *key, TPM2B_PUBLIC *pub) { + pt->type = TPM2_ALG_RSA; + + TPMS_RSA_PARMS *rdetail = &pub->publicArea.parameters.rsaDetail; +- rdetail->scheme.scheme = TPM2_ALG_NULL; +- rdetail->symmetric.algorithm = TPM2_ALG_NULL; +- rdetail->scheme.details.anySig.hashAlg = TPM2_ALG_NULL; ++ /* ++ * If the scheme is not TPM2_ALG_ERROR (0), ++ * its a valid scheme so don't set it to NULL scheme ++ */ ++ if (rdetail->scheme.scheme == TPM2_ALG_ERROR) { ++ rdetail->scheme.scheme = TPM2_ALG_NULL; ++ rdetail->symmetric.algorithm = TPM2_ALG_NULL; ++ rdetail->scheme.details.anySig.hashAlg = TPM2_ALG_NULL; ++ } + + /* NULL out sym details */ + TPMT_SYM_DEF_OBJECT *sym = &rdetail->symmetric; +@@ -809,9 +815,15 @@ static bool load_public_ECC_from_key(EVP_PKEY *key, TPM2B_PUBLIC *pub) { + * no kdf - not sure what this should be + */ + pp->kdf.scheme = TPM2_ALG_NULL; +- pp->scheme.scheme = TPM2_ALG_NULL; +- pp->symmetric.algorithm = TPM2_ALG_NULL; +- pp->scheme.details.anySig.hashAlg = TPM2_ALG_NULL; ++ ++ /* ++ * If the scheme is not TPM2_ALG_ERROR (0), ++ * its a valid scheme so don't set it to NULL scheme ++ */ ++ if (pp->scheme.scheme == TPM2_ALG_ERROR) { ++ pp->scheme.scheme = TPM2_ALG_NULL; ++ pp->scheme.details.anySig.hashAlg = TPM2_ALG_NULL; ++ } + + /* NULL out sym details */ + TPMT_SYM_DEF_OBJECT *sym = &pp->symmetric; +diff --git a/test/integration/tests/import.sh b/test/integration/tests/import.sh +index 9f6a474e..9cb6096f 100644 +--- a/test/integration/tests/import.sh ++++ b/test/integration/tests/import.sh +@@ -4,8 +4,8 @@ source helpers.sh + + cleanup() { + rm -f import_key.ctx import_key.name import_key.priv import_key.pub \ +- parent.ctx plain.dec.ssl plain.enc plain.txt sym.key import_rsa_key.pub \ +- import_rsa_key.priv import_rsa_key.ctx import_rsa_key.name private.pem \ ++ parent.ctx plain.dec.ssl plain.enc plain.txt sym.key import_rsa_key*.pub \ ++ import_rsa_key*.priv import_rsa_key.ctx import_rsa_key.name private.pem \ + public.pem plain.rsa.enc plain.rsa.dec public.pem data.in.raw \ + data.in.digest data.out.signed ticket.out ecc.pub ecc.priv ecc.name \ + ecc.ctx private.ecc.pem public.ecc.pem passfile aes.key policy.dat \ +@@ -67,6 +67,10 @@ run_rsa_import_test() { + tpm2 import -Q -G rsa -g "$name_alg" -i private.pem -C $1 \ + -u import_rsa_key.pub -r import_rsa_key.priv + ++ # test in import with scheme and discard ++ tpm2 import -G rsa:rsassa-sha256 -g "$name_alg" -i private.pem -C $1 \ ++ -u import_rsa_key2.pub -r import_rsa_key2.priv | grep -q 'rsassa' ++ + tpm2 load -Q -C $1 -u import_rsa_key.pub -r import_rsa_key.priv \ + -n import_rsa_key.name -c import_rsa_key.ctx + +@@ -118,8 +122,9 @@ run_ecc_import_test() { + shasum -a 256 data.in.raw | awk '{ print "000000 " $1 }' | xxd -r -c 32 > \ + data.in.digest + +- tpm2 import -Q -G ecc -g "$name_alg" -i private.ecc.pem -C $1 -u ecc.pub \ +- -r ecc.priv ++ # test import with scheme ++ tpm2 import -G ecc:ecdsa-sha256 -g "$name_alg" -i private.ecc.pem -C $1 -u ecc.pub \ ++ -r ecc.priv | grep -q 'ecdsa' + + tpm2 load -Q -C $1 -u ecc.pub -r ecc.priv -n ecc.name -c ecc.ctx + +-- +2.40.1 + diff --git a/SOURCES/0006-test-track-expected-YAML-output-for-eventlog.patch b/SOURCES/0006-test-track-expected-YAML-output-for-eventlog.patch new file mode 100644 index 0000000..b303359 --- /dev/null +++ b/SOURCES/0006-test-track-expected-YAML-output-for-eventlog.patch @@ -0,0 +1,5678 @@ +From b4efb299f07f791c7597e3ee991f33d254939410 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= +Date: Thu, 29 Sep 2022 11:37:33 -0400 +Subject: [PATCH 6/9] test: track expected YAML output for eventlog +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +In addition to checking whether the YAML output is parsable, +compare it against the expected output, and expected stderr +warning messages. This will detect any unexpected changes +in eventlog output format. + +If there is ever an intentional change in format, the desired +data files can be re-created using: + + TEST_REGENERATE_OUTPUT=1 make check V=1 TESTS=test/integration/tests/eventlog.sh + +Signed-off-by: Daniel P. Berrangé +--- + .../fixtures/event-arch-linux.bin.warn | 1 + + .../fixtures/event-arch-linux.bin.yaml | 687 ++++++ + .../fixtures/event-bootorder.bin.yaml | 1467 ++++++++++++ + .../event-gce-ubuntu-2104-log.bin.yaml | 2004 +++++++++++++++++ + .../fixtures/event-postcode.bin.yaml | 884 ++++++++ + .../fixtures/event-uefi-sha1-log.bin.yaml | 182 ++ + .../fixtures/event-uefiaction.bin.yaml | 47 + + .../fixtures/event-uefiservices.bin.yaml | 45 + + .../fixtures/event-uefivar.bin.yaml | 51 + + test/integration/fixtures/event.bin.yaml | 56 + + .../fixtures/specid-vendordata.bin.yaml | 26 + + test/integration/tests/eventlog.sh | 91 +- + 13 files changed, 5524 insertions(+), 18 deletions(-) + create mode 100644 test/integration/fixtures/event-arch-linux.bin.warn + create mode 100644 test/integration/fixtures/event-arch-linux.bin.yaml + create mode 100644 test/integration/fixtures/event-bootorder.bin.yaml + create mode 100644 test/integration/fixtures/event-gce-ubuntu-2104-log.bin.yaml + create mode 100644 test/integration/fixtures/event-postcode.bin.yaml + create mode 100644 test/integration/fixtures/event-uefi-sha1-log.bin.yaml + create mode 100644 test/integration/fixtures/event-uefiaction.bin.yaml + create mode 100644 test/integration/fixtures/event-uefiservices.bin.yaml + create mode 100644 test/integration/fixtures/event-uefivar.bin.yaml + create mode 100644 test/integration/fixtures/event.bin.yaml + create mode 100644 test/integration/fixtures/specid-vendordata.bin.yaml + +diff --git a/test/integration/fixtures/event-arch-linux.bin.warn b/test/integration/fixtures/event-arch-linux.bin.warn +new file mode 100644 +index 00000000..3a9af01e +--- /dev/null ++++ b/test/integration/fixtures/event-arch-linux.bin.warn +@@ -0,0 +1 @@ ++WARN: Event 24's digest does not match its payload +diff --git a/test/integration/fixtures/event-arch-linux.bin.yaml b/test/integration/fixtures/event-arch-linux.bin.yaml +new file mode 100644 +index 00000000..74a7df2e +--- /dev/null ++++ b/test/integration/fixtures/event-arch-linux.bin.yaml +@@ -0,0 +1,687 @@ ++--- ++version: 2 ++events: ++- EventNum: 0 ++ PCRIndex: 0 ++ EventType: EV_NO_ACTION ++ Digest: "0000000000000000000000000000000000000000" ++ EventSize: 37 ++ SpecID: ++ - Signature: Spec ID Event03 ++ platformClass: 0 ++ specVersionMinor: 0 ++ specVersionMajor: 2 ++ specErrata: 0 ++ uintnSize: 2 ++ numberOfAlgorithms: 2 ++ Algorithms: ++ - Algorithm[0]: ++ algorithmId: sha1 ++ digestSize: 20 ++ - Algorithm[1]: ++ algorithmId: sha256 ++ digestSize: 32 ++ vendorInfoSize: 0 ++- EventNum: 1 ++ PCRIndex: 0 ++ EventType: EV_S_CRTM_VERSION ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "c42fedad268200cb1d15f97841c344e79dae3320" ++ - AlgorithmId: sha256 ++ Digest: "d4720b4009438213b803568017f903093f6bea8ab47d283db32b6eabedbbf155" ++ EventSize: 16 ++ Event: "1efb6b540c1d5540a4ad4ef4bf17b83a" ++- EventNum: 2 ++ PCRIndex: 0 ++ EventType: EV_POST_CODE ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "6b4f7011c3028cec0195a595f466515b33a82498" ++ - AlgorithmId: sha256 ++ Digest: "cffddf06708f2ccb64b958cdd2a57bba0e2812937b9f7bbfc001780259919219" ++ EventSize: 16 ++ Event: ++ BlobBase: 0xffa90000 ++ BlobLength: 0x350000 ++- EventNum: 3 ++ PCRIndex: 7 ++ EventType: EV_EFI_VARIABLE_DRIVER_CONFIG ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "2f20112a3f55398b208e0c42681389b4cb5b1823" ++ - AlgorithmId: sha256 ++ Digest: "ce9ce386b52e099f3019e512a0d6062d6b560efe4ff3e5661c7525e2f9c263df" ++ EventSize: 52 ++ Event: ++ VariableName: 8be4df61-93ca-11d2-aa0d-00e098032b8c ++ UnicodeNameLength: 10 ++ VariableDataLength: 0 ++ UnicodeName: SecureBoot ++ VariableData: ++ Enabled: 'No' ++- EventNum: 4 ++ PCRIndex: 7 ++ EventType: EV_EFI_VARIABLE_DRIVER_CONFIG ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "07c78f14aa2b98367011b004da3184d6a9797bf0" ++ - AlgorithmId: sha256 ++ Digest: "5a8857c9b84ba16d96f738d82078d729ddcbbf8f37414988a334b7a6676618af" ++ EventSize: 864 ++ Event: ++ VariableName: 8be4df61-93ca-11d2-aa0d-00e098032b8c ++ UnicodeNameLength: 2 ++ VariableDataLength: 828 ++ UnicodeName: PK ++ VariableData: ++ - SignatureType: a5c059a1-94e4-4aa7-87b5-ab155c2bf072 ++ SignatureListSize: 828 ++ SignatureHeaderSize: 0 ++ SignatureSize: 800 ++ Keys: ++ - SignatureOwner: 198bf991-38fd-4ebc-8e31-7bdbebbe0ca0 ++ SignatureData: 3082030c308201f4a003020102020900a77b8d32a15982a4300d06092a864886f70d01010b0500301a3118301606035504030c0f4a6f65205269636865792028504b293020170d3138303932333031333135365a180f32313138303833303031333135365a301a3118301606035504030c0f4a6f65205269636865792028504b2930820122300d06092a864886f70d01010105000382010f003082010a0282010100b9515f43871585b1542cf2e1e0accb725d27bbbbf32635a07effe0b4798c01d8e0903d7ee7fff05fdb8f2c8ff74453896c91292104a65d4fd613d50b09465c5891420960cdb0d17bab7278e02161a0091896ca42259d825e3167ae85cbfd2f2245cc42ebbcdb1b40b2e4a26327487d7f0f95a231d9a954ddcbdcce3b6d4fe54ee8ff5f19e0f200c430c236bc9a55d880d3f2e7fe6b0bf09518ec525058a1ecc70fb73f17daf37f082860b3d17fc9a77a087161e0e92015aea5b673d85a144d26289e26ce35fa7bc27f32f0a61030bce4c5d7afc42cdf58c151a54bb50db39b100946317d261391740c7743599f071d2fee75b82c63b723b27c22955fde1664230203010001a3533051301d0603551d0e04160414b8c3f94cf0f6d74d286bde70bcb6d6fc890b1020301f0603551d23041830168014b8c3f94cf0f6d74d286bde70bcb6d6fc890b1020300f0603551d130101ff040530030101ff300d06092a864886f70d01010b0500038201010096cc2623f1f6ca83ecc1f97869d4df4277161efa1e2b3b2145907ba4d3ecc08b760be41ebcf122eabb4a49f194bf6b2ec2c282dad751ba3349b6ed852e6b81158721e84965dcc2fa641487008831e02c47388a3a6247b7b6995e4999322a6863eb78f6fd139e1bc6e04106bc179339788f4315cfbbc9f41aef30dd2a8c1b42aca715060bdf9c8af15800778a27ad3ec11ba010c9d355020c0b88fe5720edb8331b7b35c9c2118bf57caf9a83fdd21fcf95a5223149ac4adbc8ad26632361eb0bb72f720733d1fa87acf8515095ae61fa3830616991655fd5d21ec0f8b52f98eaffa83d7b4ea2dd4a2b451df3731e1ab34c09926144c267285422e789d1cb0d8a ++- EventNum: 5 ++ PCRIndex: 7 ++ EventType: EV_EFI_VARIABLE_DRIVER_CONFIG ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "52f38b592534395cfdccf805aafccc2cec035d29" ++ - AlgorithmId: sha256 ++ Digest: "301c7f60b96d59e0bf4d820032fbccc3fd21069bf45611541cc59be2e69353db" ++ EventSize: 2428 ++ Event: ++ VariableName: 8be4df61-93ca-11d2-aa0d-00e098032b8c ++ UnicodeNameLength: 3 ++ VariableDataLength: 2390 ++ UnicodeName: KEK ++ VariableData: ++ - SignatureType: a5c059a1-94e4-4aa7-87b5-ab155c2bf072 ++ SignatureListSize: 830 ++ SignatureHeaderSize: 0 ++ SignatureSize: 802 ++ Keys: ++ - SignatureOwner: 198bf991-38fd-4ebc-8e31-7bdbebbe0ca0 ++ SignatureData: 3082030e308201f6a003020102020900be080ebd4704921d300d06092a864886f70d01010b0500301b3119301706035504030c104a6f652052696368657920284b454b293020170d3138303932333031333231395a180f32313138303833303031333231395a301b3119301706035504030c104a6f652052696368657920284b454b2930820122300d06092a864886f70d01010105000382010f003082010a0282010100ab3ca2875cf2d562a5a2516c087df6bd20d4b25bb95df92ad4ff657be317d86c022ce3d2af549cb5bc115bf93f15686be76223f5697dc1034c74bea8500665694d5a5211f10843b5038b61dcf36475cff1f105a9d9604917bccd84f1208aacde8f9dbc5b8a0a3a20127a1cf09b40d9eb9b79435f9142f167e9b505941da232f4dc1e9b3a2b7cfc445f93ef4aa5a544a71e75c34679b400ca8e31fd76a7392e3bceb79b84abe833d9258649ffcb48627754cf7c4e78a8e9fb48dcc57837c082efd89fc561f3befbd362aa774be1fa6e6279434f71ec3d084425d3f81fa4ccc20efdcb3ca7cc78ace20263c4c564450ca1a89a4b8b2deb97de646e3a8f82d0a9a90203010001a3533051301d0603551d0e04160414fb071ef998f896276b07bd4f20294422fc73fc0f301f0603551d23041830168014fb071ef998f896276b07bd4f20294422fc73fc0f300f0603551d130101ff040530030101ff300d06092a864886f70d01010b05000382010100a4d561d9b654a77e0c572f2fcf20f88d9691c3d3342f8d4c5279aee4523838ec215166e938a9f1953609fb70b1b1918703d0c7216a46629052e9ed880359c705ffc16fa6d1aeff3dfcbdfd331979c083f5f97241d0c3cc97a8bad5af62c1d7523f2d6278891ea20afb016fd1b15ab80dbdba0153bcdc2d837c413e0dac7ba38dbb46fbf5d46635392522c2091c31c78feadab66fabb6224f39ce57f6a1d46d1f6d8d34348f7c90d6e94e0df45035aa46901b044cc56c50a44f35dbbceeedb10cc667eda23af36b3de5475659934a22ebbab58515510a2cb483a29dfdc8a1b2ee6440181691570f61dc4bd5ed9230b2b77aaf2eec5138a3387ecf3c0ee34244a1 ++ - SignatureType: a5c059a1-94e4-4aa7-87b5-ab155c2bf072 ++ SignatureListSize: 1560 ++ SignatureHeaderSize: 0 ++ SignatureSize: 1532 ++ Keys: ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: 308205e8308203d0a003020102020a610ad188000000000003300d06092a864886f70d01010b0500308191310b3009060355040613025553311330110603550408130a57617368696e67746f6e3110300e060355040713075265646d6f6e64311e301c060355040a13154d6963726f736f667420436f72706f726174696f6e313b3039060355040313324d6963726f736f667420436f72706f726174696f6e205468697264205061727479204d61726b6574706c61636520526f6f74301e170d3131303632343230343132395a170d3236303632343230353132395a308180310b3009060355040613025553311330110603550408130a57617368696e67746f6e3110300e060355040713075265646d6f6e64311e301c060355040a13154d6963726f736f667420436f72706f726174696f6e312a3028060355040313214d6963726f736f667420436f72706f726174696f6e204b454b204341203230313130820122300d06092a864886f70d01010105000382010f003082010a0282010100c4e8b58abfad5726b026c3eae7fb577a44025d070dda4ae5742ae6b00fec6debec7fb9e35a63327c11174f0ee30ba73815938ec6f5e084b19a9b2ce7f5b791d609e1e2c004a8ac301cdf48f306509a64a7517fc8854f8f2086cefe2fe19fff82c0ede9cdcef4536a623a0b43b9e225fdfe05f9d4c414ab11e223898d70b7a41d4decaee59cfa16c2d7c1cbd4e8c42fe599ee248b03ec8df28beac34afb4311120b7eb547926cdce60489ebf53304eb10012a71e5f983133cff25092f687646ffba4fbedcad712a58aafb0ed2793de49b653bcc292a9ffc7259a2ebae92eff6351380c602ece45fcc9d76cdef6392c1af79408479877fe352a8e89d7b07698f150203010001a382014f3082014b301006092b06010401823715010403020100301d0603551d0e0416041462fc43cda03ea4cb6712d25bd955ac7bccb68a5f301906092b0601040182371402040c1e0a00530075006200430041300b0603551d0f040403020186300f0603551d130101ff040530030101ff301f0603551d2304183016801445665243e17e5811bfd64e9e2355083b3a226aa8305c0603551d1f045530533051a04fa04d864b687474703a2f2f63726c2e6d6963726f736f66742e636f6d2f706b692f63726c2f70726f64756374732f4d6963436f725468695061724d6172526f6f5f323031302d31302d30352e63726c306006082b0601050507010104543052305006082b060105050730028644687474703a2f2f7777772e6d6963726f736f66742e636f6d2f706b692f63657274732f4d6963436f725468695061724d6172526f6f5f323031302d31302d30352e637274300d06092a864886f70d01010b05000382020100d48488f514941802ca2a3cfb2a921c0cd7a0d1f1e85266a8eea2b5757a9000aa2da4765aea79b7b9376a517b1064f6e164f20267bef7a81b78bdbace8858640cd657c819a35f05d6dbc6d069ce484b32b7eb5dd230f5c0f5b8ba7807a32bfe9bdb345684ec82caae4125709c6be9fe900fd7961fe5e7941fb22a0c8d4bff2829107bf7d77ca5d176b905c879ed0f90929cc2fedf6f7e6c0f7bd4c145dd345196390fe55e56d8180596f407a642b3a077fd0819f27156cc9f8623a487cba6fd587ed4696715917e81f27f13e50d8b8a3c8784ebe3cebd43e5ad2d84938e6a2b5a7c44fa52aa81c82d1cbbe052df0011f89a3dc160b0e133b5a388d165190a1ae7ac7ca4c182874e38b12f0dc514876ffd8d2ebc39b6e7e6c3e0e4cd2784ef9442ef298b9046413b811b67d8f9435965cb0dbcfd00924ff4753ba7a924fc50414079e02d4f0a6a27766e52ed96697baf0ff78705d045c2ad5314811ffb3004aa373661da4a691b34d868edd602cf6c940cd3cf6c2279adb1f0bc03a24660a9c407c22182f1fdf2e8793260bfd8aca522144bcac1d84beb7d3f5735b2e64f75b4b060032253ae91791dd69b411f15865470b2de0d350f7cb03472ba97603bf079eba2b21c5da216b887c5e91bf6b597256f389fe391fa8a7998c3690eb7a31c200597f8ca14ae00d7c4f3c01410756b34a01bb59960f35cb0c5574e36d23284bf9e ++- EventNum: 6 ++ PCRIndex: 7 ++ EventType: EV_EFI_VARIABLE_DRIVER_CONFIG ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "e8025df1eca6637d24259be9cdc5c7b921c24dcc" ++ - AlgorithmId: sha256 ++ Digest: "db1db3e6f2ee6684e5b5169f52df55526a3f2dc7904edfd3bb3dc3aa94bfdda5" ++ EventSize: 4691 ++ Event: ++ VariableName: d719b2cb-3d3a-4596-a3bc-dad00e67656f ++ UnicodeNameLength: 2 ++ VariableDataLength: 4655 ++ UnicodeName: db ++ VariableData: ++ - SignatureType: a5c059a1-94e4-4aa7-87b5-ab155c2bf072 ++ SignatureListSize: 828 ++ SignatureHeaderSize: 0 ++ SignatureSize: 800 ++ Keys: ++ - SignatureOwner: 198bf991-38fd-4ebc-8e31-7bdbebbe0ca0 ++ SignatureData: 3082030c308201f4a003020102020900d8bf861a9dc5a6ec300d06092a864886f70d01010b0500301a3118301606035504030c0f4a6f652052696368657920284442293020170d3138303932333031333233315a180f32313138303833303031333233315a301a3118301606035504030c0f4a6f6520526963686579202844422930820122300d06092a864886f70d01010105000382010f003082010a0282010100a04760d90981998b8aea54265d330b1d63b7672d37d27096f47d9666b38181114ca65fa968c0a4513aea62b6c5f03f76067c03f760ab519ab5dfd58d83701138f74aa7e2bfbd5c09a456661b353aa9fa8e0a4e0ece1d7fffeedd619a8c1befe8f853f360ab5e336b891b9f55cfbc831d7b49e889a7980fe55798bf81507c44728d84bba80e4a167340d73f49e3d946dcc58599ea7d3982b5e232c312827e781bcb8d948ec93524832d87a5593373a448a256febfeb76aafc094e27ecfd2e69dc9db2be80dee26d493dfd875ec565a05d591cb8d9f5a44f90144015ddc1b704a816b31346ca92210c49265ef8eb395322be860a9c4d50c0f7225b76b574680c2f0203010001a3533051301d0603551d0e04160414c51e8894342341ccfd3dd8211bf32330d24b5f8d301f0603551d23041830168014c51e8894342341ccfd3dd8211bf32330d24b5f8d300f0603551d130101ff040530030101ff300d06092a864886f70d01010b050003820101002cc1b478114337888466906e1e4553fd40b9ba9310b62fcf51a5113e7afc21cc1208da6e3d7792052d8527ac99b0b99766925f37e9353715e733fef003ce7cfd1520f26383e95349d0b8293a0c7715a88c8312208fa457d463dbee32838af951b5f9bc22bcfe7848ecd8229febe36592a5f74da20740fb110b2d96400ecf4c6c1d88fef59c3f5b2984ee0e18eb9ff0d687f7b08e1a18e3146b6272ab2b1315faa527a475e8a72807f372737749513df3e3b1046113d7d8366ae60494958ddce48ee5346ec193728d7e41fdf563af3fa9eabff9c7a2f3313c8e0653e1c9b097e39ef50f15e7257d22195dc1c30897b2d5914df32cd5e878e64a77122718ec36b1 ++ - SignatureType: a5c059a1-94e4-4aa7-87b5-ab155c2bf072 ++ SignatureListSize: 1543 ++ SignatureHeaderSize: 0 ++ SignatureSize: 1515 ++ Keys: ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: 308205d7308203bfa003020102020a61077656000000000008300d06092a864886f70d01010b0500308188310b3009060355040613025553311330110603550408130a57617368696e67746f6e3110300e060355040713075265646d6f6e64311e301c060355040a13154d6963726f736f667420436f72706f726174696f6e31323030060355040313294d6963726f736f667420526f6f7420436572746966696361746520417574686f726974792032303130301e170d3131313031393138343134325a170d3236313031393138353134325a308184310b3009060355040613025553311330110603550408130a57617368696e67746f6e3110300e060355040713075265646d6f6e64311e301c060355040a13154d6963726f736f667420436f72706f726174696f6e312e302c060355040313254d6963726f736f66742057696e646f77732050726f64756374696f6e20504341203230313130820122300d06092a864886f70d01010105000382010f003082010a0282010100dd0cbba2e42e09e3e7c5f79669bc0021bd693333efad04cb5480ee0683bbc52084d9f7d28bf338b0aba4ad2d7c627905ffe34a3f04352070e3c4e76be09cc03675e98a31dd8d70e5dc37b5744696285b8760232cbfdc47a567f751279e72eb07a6c9b91e3b53357ce5d3ec27b9871cfeb9c923096fa84691c16e963c41d3cba33f5d026a4dec691f25285c36fffd43150a94e019b4cfdfc212e2c25b27ee2778308b5b2a096b22895360162cc0681d53baec49f39d618c85680973445d7da2542bdd79f715cf355d6c1c2b5ccebc9c238b6f6eb526d93613c34fd627aeb9323b41922ce1c7cd77e8aa544ef75c0b048765b44318a8b2e06d1977ec5a24fa48030203010001a38201433082013f301006092b06010401823715010403020100301d0603551d0e04160414a92902398e16c49778cd90f99e4f9ae17c55af53301906092b0601040182371402040c1e0a00530075006200430041300b0603551d0f040403020186300f0603551d130101ff040530030101ff301f0603551d23041830168014d5f656cb8fe8a25c6268d13d94905bd7ce9a18c430560603551d1f044f304d304ba049a0478645687474703a2f2f63726c2e6d6963726f736f66742e636f6d2f706b692f63726c2f70726f64756374732f4d6963526f6f4365724175745f323031302d30362d32332e63726c305a06082b06010505070101044e304c304a06082b06010505073002863e687474703a2f2f7777772e6d6963726f736f66742e636f6d2f706b692f63657274732f4d6963526f6f4365724175745f323031302d30362d32332e637274300d06092a864886f70d01010b0500038202010014fc7c7151a579c26eb2ef393ebc3c520f6e2b3f101373fea868d048a6344d8a960526ee3146906179d6ff382e456bf4c0e528b8da1d8f8adb09d71ac74c0a36666a8cec1bd70490a81817a49bb9e240323676c4c15ac6bfe404c0ea16d3acc368ef62acdd546c503058a6eb7cfe94a74e8ef4ec7c867357c2522173345af3a38a56c804da0709edf88be3cef47e8eaef0f60b8a08fb3fc91d727f53b8ebbe63e0e33d3165b081e5f2accd16a49f3da8b19bc242d090845f541dff89eaba1d47906fb0734e419f409f5fe5a12ab21191738a2128f0cede73395f3eab5c60ecdf0310a8d309e9f4f69685b67f51886647198da2b0123d812a680577bb914c627bb6c107c7ba7a8734030e4b627a99e9cafcce4a37c92da4577c1cfe3ddcb80f5afad6c4b30285023aeab3d96ee4692137de81d1f675190567d393575e291b39c8ee2de1cde445735bd0d2ce7aab1619824658d05e9d81b367af6c35f2bce53f24e235a20a7506f6185699d4782cd1051bebd088019daa10f105dfba7e2c63b7069b2321c4f9786ce2581706362b911203cca4d9f22dbaf9949d40ed1845f1ce8a5c6b3eab03d370182a0a6ae05f47d1d5630a32f2afd7361f2a705ae5425908714b57ba7e8381f0213cf41cc1c5b990930e88459386e9b12099be98cbc595a45d62d6a0630820bd7510777d3df345b99f979fcb57806f33a904cf77a4621c597e ++ - SignatureType: a5c059a1-94e4-4aa7-87b5-ab155c2bf072 ++ SignatureListSize: 1600 ++ SignatureHeaderSize: 0 ++ SignatureSize: 1572 ++ Keys: ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: 30820610308203f8a003020102020a6108d3c4000000000004300d06092a864886f70d01010b0500308191310b3009060355040613025553311330110603550408130a57617368696e67746f6e3110300e060355040713075265646d6f6e64311e301c060355040a13154d6963726f736f667420436f72706f726174696f6e313b3039060355040313324d6963726f736f667420436f72706f726174696f6e205468697264205061727479204d61726b6574706c61636520526f6f74301e170d3131303632373231323234355a170d3236303632373231333234355a308181310b3009060355040613025553311330110603550408130a57617368696e67746f6e3110300e060355040713075265646d6f6e64311e301c060355040a13154d6963726f736f667420436f72706f726174696f6e312b3029060355040313224d6963726f736f667420436f72706f726174696f6e2055454649204341203230313130820122300d06092a864886f70d01010105000382010f003082010a0282010100a5086c4cc745096a4b0ca4c0877f06750c43015464e0167f07ed927d0bb273bf0c0ac64a4561a0c5162d96d3f52ba0fb4d499b4180903cb954fde6bcd19dc4a4188a7f418a5c59836832bb8c47c9ee71bc214f9a8a7cff443f8d8f32b22648ae75b5eec94c1e4a197ee4829a1d78774d0cb0bdf60fd316d3bcfa2ba551385df5fbbadb7802dbffec0a1b96d583b81913e9b6c07b407be11f2827c9faef565e1ce67e947ec0f044b27939e5dab2628b4dbf3870e2682414c933a40837d558695ed37cedc1045308e74eb02a876308616f631559eab22b79d70c61678a5bfd5ead877fba86674f71581222042222ce8bef547100ce503558769508ee6ab1a201d50203010001a382017630820172301206092b060104018237150104050203010001302306092b060104018237150204160414f8c16bb77f77534af325371d4ea1267b0f207080301d0603551d0e0416041413adbf4309bd82709c8cd54f316ed522988a1bd4301906092b0601040182371402040c1e0a00530075006200430041300b0603551d0f040403020186300f0603551d130101ff040530030101ff301f0603551d2304183016801445665243e17e5811bfd64e9e2355083b3a226aa8305c0603551d1f045530533051a04fa04d864b687474703a2f2f63726c2e6d6963726f736f66742e636f6d2f706b692f63726c2f70726f64756374732f4d6963436f725468695061724d6172526f6f5f323031302d31302d30352e63726c306006082b0601050507010104543052305006082b060105050730028644687474703a2f2f7777772e6d6963726f736f66742e636f6d2f706b692f63657274732f4d6963436f725468695061724d6172526f6f5f323031302d31302d30352e637274300d06092a864886f70d01010b05000382020100350842ff30cccef7760cad1068583529463276277cef124127421b4aaa6d813848591355f3e95834a6160b82aa5dad82da808341068fb41df203b9f31a5d1bf15090f9b3558442281c20bdb2ae5114c5c0ac9795211c90db0ffc779e95739188cabdbd52b905500ddf579ea061ed0de56d25d9400f1740c8cea34ac24daf9a121d08548fbdc7bcb92b3d492b1f32fc6a21694f9bc87e4234fc3606178b8f2040c0b39a257527cdc903a3f65dd1e736547ab950b5d312d107bfbb74dfdc1e8f80d5ed18f42f14166b2fde668cb023e5c784d8edeac13382ad564b182df1689507cdcff072f0aebbdd8685982c214c332bf00f4af06887b592553275a16a826a3ca32511a4edadd704aecbd84059a084d1954c6291221a741d8c3d470e44a6e4b09b3435b1fab653a82c81eca40571c89db8bae81b4466e447540e8e567fb39f1698b286d0683e9023b52f5e8f50858dc68d825f41a1f42e0de099d26c75e4b669b52186fa07d1f6e24dd1daad2c77531e253237c76c52729586b0f135616a19f5b23b815056a6322dfea289f94286271855a182ca5a9bf830985414a64796252fc826e441941a5c023fe596e3855b3c3e3fbb47167255e22522b1d97be703062aa3f71e9046c3000dd61989e30e352762037115a6efd027a0a0593760f83894b8e07870f8ba4c868794f6e0ae0245ee65c2b6a37e69167507929bf5a6bc598358 ++ - SignatureType: c1c41626-504c-4092-aca9-41f936934328 ++ SignatureListSize: 76 ++ SignatureHeaderSize: 0 ++ SignatureSize: 48 ++ Keys: ++ - SignatureOwner: 26dc4851-195f-4ae1-9a19-fbf883bbb35e ++ SignatureData: 2551513ad36c0ab88c70acc158f8428545909f25ec737f9aec01e8c0d19ee52a ++ - SignatureType: c1c41626-504c-4092-aca9-41f936934328 ++ SignatureListSize: 76 ++ SignatureHeaderSize: 0 ++ SignatureSize: 48 ++ Keys: ++ - SignatureOwner: 26dc4851-195f-4ae1-9a19-fbf883bbb35e ++ SignatureData: 11a40d7e935a507450a6d61f51ee97987a49534a1c2d2db3e505e3d15b3faa21 ++ - SignatureType: c1c41626-504c-4092-aca9-41f936934328 ++ SignatureListSize: 76 ++ SignatureHeaderSize: 0 ++ SignatureSize: 48 ++ Keys: ++ - SignatureOwner: 26dc4851-195f-4ae1-9a19-fbf883bbb35e ++ SignatureData: 4fa56bb60171c9f50d8887bed590a5c19c2e7cccbeeb3eb80795ef11a19c5aec ++ - SignatureType: c1c41626-504c-4092-aca9-41f936934328 ++ SignatureListSize: 76 ++ SignatureHeaderSize: 0 ++ SignatureSize: 48 ++ Keys: ++ - SignatureOwner: 26dc4851-195f-4ae1-9a19-fbf883bbb35e ++ SignatureData: 83608b6648271f097c95612eb161a49359197fb4e4355cd3a1fad0c02065dd4d ++ - SignatureType: c1c41626-504c-4092-aca9-41f936934328 ++ SignatureListSize: 76 ++ SignatureHeaderSize: 0 ++ SignatureSize: 48 ++ Keys: ++ - SignatureOwner: 26dc4851-195f-4ae1-9a19-fbf883bbb35e ++ SignatureData: 0e9b0272ddd11c5f095a7ddcd0110d214639b9388af7417b26ea93029a84c33d ++ - SignatureType: c1c41626-504c-4092-aca9-41f936934328 ++ SignatureListSize: 76 ++ SignatureHeaderSize: 0 ++ SignatureSize: 48 ++ Keys: ++ - SignatureOwner: 26dc4851-195f-4ae1-9a19-fbf883bbb35e ++ SignatureData: 27ca924d7c397268299a8f17be5db52177731944bbdcc4c69b581ee4b5a131c6 ++ - SignatureType: c1c41626-504c-4092-aca9-41f936934328 ++ SignatureListSize: 76 ++ SignatureHeaderSize: 0 ++ SignatureSize: 48 ++ Keys: ++ - SignatureOwner: 26dc4851-195f-4ae1-9a19-fbf883bbb35e ++ SignatureData: df7d74f21ae3f28369bf290833be7f0851dad0ee8cca987e8171de69ee4c642a ++ - SignatureType: c1c41626-504c-4092-aca9-41f936934328 ++ SignatureListSize: 76 ++ SignatureHeaderSize: 0 ++ SignatureSize: 48 ++ Keys: ++ - SignatureOwner: 26dc4851-195f-4ae1-9a19-fbf883bbb35e ++ SignatureData: 4879e82ab193737a212a4c531efdaad560a8a064e41de6d465c0b8c6254c8300 ++ - SignatureType: c1c41626-504c-4092-aca9-41f936934328 ++ SignatureListSize: 76 ++ SignatureHeaderSize: 0 ++ SignatureSize: 48 ++ Keys: ++ - SignatureOwner: 26dc4851-195f-4ae1-9a19-fbf883bbb35e ++ SignatureData: 493e1b0abe3356c73608b45a0b1c71387fb6854a1fbe8312b8d23f28639893de ++- EventNum: 7 ++ PCRIndex: 7 ++ EventType: EV_EFI_VARIABLE_DRIVER_CONFIG ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "9e04b683b1ade74270dc6083dd716acc63a33310" ++ - AlgorithmId: sha256 ++ Digest: "a044b4ce4a4dca9af312c897dc56ee1727c385eb88f7cfb9092b8265029d5b1e" ++ EventSize: 3762 ++ Event: ++ VariableName: d719b2cb-3d3a-4596-a3bc-dad00e67656f ++ UnicodeNameLength: 3 ++ VariableDataLength: 3724 ++ UnicodeName: dbx ++ VariableData: ++ - SignatureType: c1c41626-504c-4092-aca9-41f936934328 ++ SignatureListSize: 3724 ++ SignatureHeaderSize: 0 ++ SignatureSize: 48 ++ Keys: ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: 80b4d96931bf0d02fd91a61e19d14f1da452e66db2408ca8604d411f92659f0a ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: f52f83a3fa9cfbd6920f722824dbe4034534d25b8507246b3b957dac6e1bce7a ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: c5d9d8a186e2c82d09afaa2a6f7f2e73870d3e64f72c4e08ef67796a840f0fbd ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: 363384d14d1f2e0b7815626484c459ad57a318ef4396266048d058c5a19bbf76 ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: 1aec84b84b6c65a51220a9be7181965230210d62d6d33c48999c6b295a2b0a06 ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: e6ca68e94146629af03f69c2f86e6bef62f930b37c6fbcc878b78df98c0334e5 ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: c3a99a460da464a057c3586d83cef5f4ae08b7103979ed8932742df0ed530c66 ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: 58fb941aef95a25943b3fb5f2510a0df3fe44c58c95e0ab80487297568ab9771 ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: 5391c3a2fb112102a6aa1edc25ae77e19f5d6f09cd09eeb2509922bfcd5992ea ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: d626157e1d6a718bc124ab8da27cbb65072ca03a7b6b257dbdcbbd60f65ef3d1 ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: d063ec28f67eba53f1642dbf7dff33c6a32add869f6013fe162e2c32f1cbe56d ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: 29c6eb52b43c3aa18b2cd8ed6ea8607cef3cfae1bafe1165755cf2e614844a44 ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: 90fbe70e69d633408d3e170c6832dbb2d209e0272527dfb63d49d29572a6f44c ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: 075eea060589548ba060b2feed10da3c20c7fe9b17cd026b94e8a683b8115238 ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: 07e6c6a858646fb1efc67903fe28b116011f2367fe92e6be2b36999eff39d09e ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: 09df5f4e511208ec78b96d12d08125fdb603868de39f6f72927852599b659c26 ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: 0bbb4392daac7ab89b30a4ac657531b97bfaab04f90b0dafe5f9b6eb90a06374 ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: 0c189339762df336ab3dd006a463df715a39cfb0f492465c600e6c6bd7bd898c ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: 0d0dbeca6f29eca06f331a7d72e4884b12097fb348983a2a14a0d73f4f10140f ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: 0dc9f3fb99962148c3ca833632758d3ed4fc8d0b0007b95b31e6528f2acd5bfc ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: 106faceacfecfd4e303b74f480a08098e2d0802b936f8ec774ce21f31686689c ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: 174e3a0b5b43c6a607bbd3404f05341e3dcf396267ce94f8b50e2e23a9da920c ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: 18333429ff0562ed9f97033e1148dceee52dbe2e496d5410b5cfd6c864d2d10f ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: 2b99cf26422e92fe365fbf4bc30d27086c9ee14b7a6fff44fb2f6b9001699939 ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: 2bbf2ca7b8f1d91f27ee52b6fb2a5dd049b85a2b9b529c5d6662068104b055f8 ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: 2c73d93325ba6dcbe589d4a4c63c5b935559ef92fbf050ed50c4e2085206f17d ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: 2e70916786a6f773511fa7181fab0f1d70b557c6322ea923b2a8d3b92b51af7d ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: 306628fa5477305728ba4a467de7d0387a54f569d3769fce5e75ec89d28d1593 ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: 3608edbaf5ad0f41a414a1777abf2faf5e670334675ec3995e6935829e0caad2 ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: 3841d221368d1583d75c0a02e62160394d6c4e0a6760b6f607b90362bc855b02 ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: 3fce9b9fdf3ef09d5452b0f95ee481c2b7f06d743a737971558e70136ace3e73 ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: 4397daca839e7f63077cb50c92df43bc2d2fb2a8f59f26fc7a0e4bd4d9751692 ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: 47cc086127e2069a86e03a6bef2cd410f8c55a6d6bdb362168c31b2ce32a5adf ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: 518831fe7382b514d03e15c621228b8ab65479bd0cbfa3c5c1d0f48d9c306135 ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: 5ae949ea8855eb93e439dbc65bda2e42852c2fdf6789fa146736e3c3410f2b5c ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: 6b1d138078e4418aa68deb7bb35e066092cf479eeb8ce4cd12e7d072ccb42f66 ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: 6c8854478dd559e29351b826c06cb8bfef2b94ad3538358772d193f82ed1ca11 ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: 6f1428ff71c9db0ed5af1f2e7bbfcbab647cc265ddf5b293cdb626f50a3a785e ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: 71f2906fd222497e54a34662ab2497fcc81020770ff51368e9e3d9bfcbfd6375 ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: 726b3eb654046a30f3f83d9b96ce03f670e9a806d1708a0371e62dc49d2c23c1 ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: 72e0bd1867cf5d9d56ab158adf3bddbc82bf32a8d8aa1d8c5e2f6df29428d6d8 ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: 7827af99362cfaf0717dade4b1bfe0438ad171c15addc248b75bf8caa44bb2c5 ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: 81a8b965bb84d3876b9429a95481cc955318cfaa1412d808c8a33bfd33fff0e4 ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: 82db3bceb4f60843ce9d97c3d187cd9b5941cd3de8100e586f2bda5637575f67 ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: 895a9785f617ca1d7ed44fc1a1470b71f3f1223862d9ff9dcc3ae2df92163daf ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: 8ad64859f195b5f58dafaa940b6a6167acd67a886e8f469364177221c55945b9 ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: 8bf434b49e00ccf71502a2cd900865cb01ec3b3da03c35be505fdf7bd563f521 ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: 8d8ea289cfe70a1c07ab7365cb28ee51edd33cf2506de888fbadd60ebf80481c ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: 9998d363c491be16bd74ba10b94d9291001611736fdca643a36664bc0f315a42 ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: 9e4a69173161682e55fde8fef560eb88ec1ffedcaf04001f66c0caf707b2b734 ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: a6b5151f3655d3a2af0d472759796be4a4200e5495a7d869754c4848857408a7 ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: a7f32f508d4eb0fead9a087ef94ed1ba0aec5de6f7ef6ff0a62b93bedf5d458d ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: ad6826e1946d26d3eaf3685c88d97d85de3b4dcb3d0ee2ae81c70560d13c5720 ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: aeebae3151271273ed95aa2e671139ed31a98567303a332298f83709a9d55aa1 ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: afe2030afb7d2cda13f9fa333a02e34f6751afec11b010dbcd441fdf4c4002b3 ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: b54f1ee636631fad68058d3b0937031ac1b90ccb17062a391cca68afdbe40d55 ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: b8f078d983a24ac433216393883514cd932c33af18e7dd70884c8235f4275736 ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: b97a0889059c035ff1d54b6db53b11b9766668d9f955247c028b2837d7a04cd9 ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: bc87a668e81966489cb508ee805183c19e6acd24cf17799ca062d2e384da0ea7 ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: c409bdac4775add8db92aa22b5b718fb8c94a1462c1fe9a416b95d8a3388c2fc ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: c617c1a8b1ee2a811c28b5a81b4c83d7c98b5b0c27281d610207ebe692c2967f ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: c90f336617b8e7f983975413c997f10b73eb267fd8a10cb9e3bdbfc667abdb8b ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: cb6b858b40d3a098765815b592c1514a49604fafd60819da88d7a76e9778fef7 ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: ce3bfabe59d67ce8ac8dfd4a16f7c43ef9c224513fbc655957d735fa29f540ce ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: d8cbeb9735f5672b367e4f96cdc74969615d17074ae96c724d42ce0216f8f3fa ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: e92c22eb3b5642d65c1ec2caf247d2594738eebb7fb3841a44956f59e2b0d1fa ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: fddd6e3d29ea84c7743dad4a1bdbc700b5fec1b391f932409086acc71dd6dbd8 ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: fe63a84f782cc9d3fcf2ccf9fc11fbd03760878758d26285ed12669bdc6e6d01 ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: fecfb232d12e994b6d485d2c7167728aa5525984ad5ca61e7516221f079a1436 ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: ca171d614a8d7e121c93948cd0fe55d39981f9d11aa96e03450a415227c2c65b ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: 55b99b0de53dbcfe485aa9c737cf3fb616ef3d91fab599aa7cab19eda763b5ba ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: 77dd190fa30d88ff5e3b011a0ae61e6209780c130b535ecb87e6f0888a0b6b2f ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: c83cb13922ad99f560744675dd37cc94dcad5a1fcba6472fee341171d939e884 ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: 3b0287533e0cc3d0ec1aa823cbf0a941aad8721579d1c499802dd1c3a636b8a9 ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: 939aeef4f5fa51e23340c3f2e49048ce8872526afdf752c3a7f3a3f2bc9f6049 ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: 64575bd912789a2e14ad56f6341f52af6bf80cf94400785975e9f04e2d64d745 ++ - SignatureOwner: 77fa9abd-0359-4d32-bd60-28f4e78f784b ++ SignatureData: 45c7c8ae750acfbb48fc37527d6412dd644daed8913ccd8a24c94d856967df8e ++- EventNum: 8 ++ PCRIndex: 7 ++ EventType: EV_SEPARATOR ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "9069ca78e7450a285173431b3e52c5c25299e473" ++ - AlgorithmId: sha256 ++ Digest: "df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119" ++ EventSize: 4 ++ Event: "00000000" ++- EventNum: 9 ++ PCRIndex: 2 ++ EventType: EV_EFI_BOOT_SERVICES_DRIVER ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "5e58cd33cbf6f6058139e716508bbf5d03f2c94f" ++ - AlgorithmId: sha256 ++ Digest: "2de50158a70fa60bcb0eff4f8ad5d5a8d6e4a808bfbe5446b74464163191a8bf" ++ EventSize: 84 ++ Event: ++ ImageLocationInMemory: 0xb6bf9018 ++ ImageLengthInMemory: 133728 ++ ImageLinkTimeAddress: 0x0 ++ LengthOfDevicePath: 52 ++ DevicePath: '02010c00d041030a00000000010106000001010106000000040818000000000050f2000000000000ff010200000000007fff0400' ++- EventNum: 10 ++ PCRIndex: 0 ++ EventType: EV_SEPARATOR ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "9069ca78e7450a285173431b3e52c5c25299e473" ++ - AlgorithmId: sha256 ++ Digest: "df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119" ++ EventSize: 4 ++ Event: "00000000" ++- EventNum: 11 ++ PCRIndex: 1 ++ EventType: EV_SEPARATOR ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "9069ca78e7450a285173431b3e52c5c25299e473" ++ - AlgorithmId: sha256 ++ Digest: "df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119" ++ EventSize: 4 ++ Event: "00000000" ++- EventNum: 12 ++ PCRIndex: 2 ++ EventType: EV_SEPARATOR ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "9069ca78e7450a285173431b3e52c5c25299e473" ++ - AlgorithmId: sha256 ++ Digest: "df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119" ++ EventSize: 4 ++ Event: "00000000" ++- EventNum: 13 ++ PCRIndex: 3 ++ EventType: EV_SEPARATOR ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "9069ca78e7450a285173431b3e52c5c25299e473" ++ - AlgorithmId: sha256 ++ Digest: "df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119" ++ EventSize: 4 ++ Event: "00000000" ++- EventNum: 14 ++ PCRIndex: 4 ++ EventType: EV_SEPARATOR ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "9069ca78e7450a285173431b3e52c5c25299e473" ++ - AlgorithmId: sha256 ++ Digest: "df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119" ++ EventSize: 4 ++ Event: "00000000" ++- EventNum: 15 ++ PCRIndex: 5 ++ EventType: EV_SEPARATOR ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "9069ca78e7450a285173431b3e52c5c25299e473" ++ - AlgorithmId: sha256 ++ Digest: "df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119" ++ EventSize: 4 ++ Event: "00000000" ++- EventNum: 16 ++ PCRIndex: 6 ++ EventType: EV_SEPARATOR ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "9069ca78e7450a285173431b3e52c5c25299e473" ++ - AlgorithmId: sha256 ++ Digest: "df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119" ++ EventSize: 4 ++ Event: "00000000" ++- EventNum: 17 ++ PCRIndex: 5 ++ EventType: EV_EFI_GPT_EVENT ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "a30700c4eccddd14eb6c80b8c16474c4519e2a70" ++ - AlgorithmId: sha256 ++ Digest: "dcc6b7eaf2b013c6a37c720fe1d5098b5daf56ac9922f222125df7a1126b9596" ++ EventSize: 484 ++ Event: ++ Header: ++ Signature: "EFI PART" ++ Revision: 0x10000 ++ HeaderSize: 92 ++ HeaderCRC32: 0x986df596 ++ MyLBA: 0x1 ++ AlternateLBA: 0x1dcf32af ++ FirstUsableLBA: 0x22 ++ LastUsableLBA: 0x1dcf328e ++ DiskGUID: f9f4bb69-5418-46bb-9501-2d615a3edc79 ++ PartitionEntryLBA: 0x2 ++ NumberOfPartitionEntry: 128 ++ SizeOfPartitionEntry: 128 ++ PartitionEntryArrayCRC32: 0xe4012e1b ++ NumberOfPartitions: 3 ++ Partitions: ++ - PartitionTypeGUID: c12a7328-f81f-11d2-ba4b-00a0c93ec93b ++ UniquePartitionGUID: 1a504613-19b5-4b44-a83d-d926d40daa1c ++ StartingLBA: 0x800 ++ EndingLBA: 0x807ff ++ Attributes: 0x0 ++ PartitionName: "EFI System" ++ - PartitionTypeGUID: a19d880f-05fc-4d3b-a006-743f0f84911e ++ UniquePartitionGUID: c3fe0624-3db7-44f4-941e-49e6823d5a30 ++ StartingLBA: 0x80800 ++ EndingLBA: 0x1d24594e ++ Attributes: 0x0 ++ PartitionName: "Linux RAID" ++ - PartitionTypeGUID: 0fc63daf-8483-4772-8e79-3d69d8477de4 ++ UniquePartitionGUID: 07ca55d3-efba-43a7-aea7-334c379e6b70 ++ StartingLBA: 0x1d246000 ++ EndingLBA: 0x1dcf328e ++ Attributes: 0x0 ++ PartitionName: "Linux filesystem" ++- EventNum: 18 ++ PCRIndex: 1 ++ EventType: EV_EFI_VARIABLE_BOOT ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "359b9b1edab9f2841d8fd4312d8528079a3777b4" ++ - AlgorithmId: sha256 ++ Digest: "66c174f6bcd22cea3a37bb47d9669da541f0488b9be9abca33323ac31838d68e" ++ EventSize: 56 ++ Event: ++ VariableName: 8be4df61-93ca-11d2-aa0d-00e098032b8c ++ UnicodeNameLength: 9 ++ VariableDataLength: 6 ++ UnicodeName: BootOrder ++ VariableData: ++ - Boot0000 ++ - Boot0003 ++ - Boot0002 ++- EventNum: 19 ++ PCRIndex: 1 ++ EventType: EV_EFI_VARIABLE_BOOT ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "0113948871b7c34c97695e6351b1acf39f8e8291" ++ - AlgorithmId: sha256 ++ Digest: "6fff79a21c2c8f94652fb0fc53c37da0aa4ea839ebd945566b804f8c6c4f0162" ++ EventSize: 208 ++ Event: ++ VariableName: 8be4df61-93ca-11d2-aa0d-00e098032b8c ++ UnicodeNameLength: 8 ++ VariableDataLength: 160 ++ UnicodeName: Boot0000 ++ VariableData: ++ Enabled: 'Yes' ++ FilePathListLength: 116 ++ Description: "Linux Boot Manager" ++ DevicePath: '04012a0001000000000800000000000000000800000000001346501ab519444ba83dd926d40daa1c0202040446005c004500460049005c00530059005300540045004d0044005c00530059005300540045004d0044002d0042004f004f0054005800360034002e0045004600490000007fff0400' ++- EventNum: 20 ++ PCRIndex: 1 ++ EventType: EV_EFI_VARIABLE_BOOT ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "39d79e549dc8ce20c55b44733dd7c73d21bd159a" ++ - AlgorithmId: sha256 ++ Digest: "d865a2d13db7529aaae8105153650c4557a33f471650e4099b5178d21f6516bf" ++ EventSize: 168 ++ Event: ++ VariableName: 8be4df61-93ca-11d2-aa0d-00e098032b8c ++ UnicodeNameLength: 8 ++ VariableDataLength: 120 ++ UnicodeName: Boot0003 ++ VariableData: ++ Enabled: 'Yes' ++ FilePathListLength: 94 ++ Description: "UEFI OS" ++ DevicePath: '04012a0001000000000800000000000000000800000000001346501ab519444ba83dd926d40daa1c0202040430005c004500460049005c0042004f004f0054005c0042004f004f0054005800360034002e0045004600490000007fff04000000424f' ++- EventNum: 21 ++ PCRIndex: 1 ++ EventType: EV_EFI_VARIABLE_BOOT ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "72411782e0c50340e583ff814e236de1364bd2af" ++ - AlgorithmId: sha256 ++ Digest: "a5428f6cb55f36175733db8f1ead37be44cca8cfe027268d0cb893d862078ca0" ++ EventSize: 232 ++ Event: ++ VariableName: 8be4df61-93ca-11d2-aa0d-00e098032b8c ++ UnicodeNameLength: 8 ++ VariableDataLength: 184 ++ UnicodeName: Boot0002 ++ VariableData: ++ Enabled: 'Yes' ++ FilePathListLength: 140 ++ Description: "Linux Boot Manager" ++ DevicePath: '01041400e775e299a075374ba2e6c5385e6c00cb7fff040004012a00010000000008000000000000003011000000000047856cc0b612db43af4c413316e029360202040446005c004500460049005c00530059005300540045004d0044005c00530059005300540045004d0044002d0042004f004f0054005800360034002e0045004600490000007fff0400' ++- EventNum: 22 ++ PCRIndex: 4 ++ EventType: EV_EFI_BOOT_SERVICES_APPLICATION ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "c429e591c3d5542d366037d5dee18bc178e58535" ++ - AlgorithmId: sha256 ++ Digest: "d51e9d20c0e180d8fdded3e7d5e05b4ab8e87b2f30e6995632a14e399332103b" ++ EventSize: 176 ++ Event: ++ ImageLocationInMemory: 0xb616b018 ++ ImageLengthInMemory: 96725 ++ ImageLinkTimeAddress: 0x0 ++ LengthOfDevicePath: 144 ++ DevicePath: '02010c00d041030a0000000001010600001703120a000100ffff000004012a0001000000000800000000000000000800000000001346501ab519444ba83dd926d40daa1c0202040446005c004500460049005c00530059005300540045004d0044005c00530059005300540045004d0044002d0042004f004f0054005800360034002e0045004600490000007fff0400' ++- EventNum: 23 ++ PCRIndex: 4 ++ EventType: EV_EFI_BOOT_SERVICES_APPLICATION ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "8fce1cd38d7b7dd55d6e841dab1629aee55cd212" ++ - AlgorithmId: sha256 ++ Digest: "6c1b73563471cd9082ea3d149fa4668cd8f1a0c315531d4bf513bc5ede8939a5" ++ EventSize: 148 ++ Event: ++ ImageLocationInMemory: 0xb5763018 ++ ImageLengthInMemory: 9180448 ++ ImageLinkTimeAddress: 0x1000000 ++ LengthOfDevicePath: 116 ++ DevicePath: '02010c00d041030a0000000001010600001703120a000100ffff000004012a0001000000000800000000000000000800000000001346501ab519444ba83dd926d40daa1c020204042a005c0076006d006c0069006e0075007a002d006c0069006e00750078002d006c007400730000007fff0400' ++- EventNum: 24 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "7fd3abec2afe8e68028be79cfc143a56c9918e69" ++ - AlgorithmId: sha256 ++ Digest: "362d5603871294a44287df0c3c63c120972e5b3897704315b99cf8406ac413b6" ++ EventSize: 365 ++ Event: ++ String: |- ++ "i\0n\0i\0t\0r\0d\0=\0\\\0i\0n\0t\0e\0l\0-\0u\0c\0o\0d\0e\0.\0i\0m\0g\0 \0i\0n\0i\0t\0r\0d\0=\0\\\0i\0n\0i\0t\0r\0a\0m\0f\0s\0-\0l\0i\0n\0u\0x\0-\0l\0t\0s\0.\0i\0m\0g\0 \0c\0r\0y\0p\0t\0d\0e\0v\0i\0c\0e\0=\0U\0U\0I\0D\0=\05\04\06\05\03\06\09\0a\0-\09\09\06\0d\0-\04\02\0c\0a\0-\09\0a\0d\04\0-\09\01\0d\00\00\08\02\0e\00\0b\03\04\0:\0c\0r\0y\0p\0t\0r\0o\0o\0t\0 \0r\0o\0o\0t\0=\0/\0d\0e\0v\0/\0m\0a\0p\0p\0e\0r\0/\0c\0r\0y\0p\0t\0r\0o\0o\0t\0 \0r\0w\0 \0i\0n\0t\0e\0l\0_\0i\0o\0m\0m\0u\0=\0o\0n\0 \0i\0o\0m\0m\0u\0=\0p\0t\0 \0l\01\0t\0f\0=\0o\0f\0f\0\0" ++pcrs: ++ sha1: ++ 0 : 0xa0487b0d95387d4a30560edf5f041307bf4a1dcc ++ 1 : 0x56b71c334a5b67d3b7b3343e3241dff5a1ad87bf ++ 2 : 0x01098a68e44e4fbd0af3b9a836b1b79e78c4f6f5 ++ 3 : 0xb2a83b0ebf2f8374299a5b2bdfc31ea955ad7236 ++ 4 : 0x2845117447a59571c424c1d0824c25112b902eb7 ++ 5 : 0x0dfa5ca60508ac5214515b20ed3e66289514fcb6 ++ 6 : 0xb2a83b0ebf2f8374299a5b2bdfc31ea955ad7236 ++ 7 : 0x029c700c2fa2bc83cbf3ce4ee501ad4d984ec5ae ++ 8 : 0xaa99fc93faa0777f42da6e1ae77a0653b5005619 ++ sha256: ++ 0 : 0x758b773d94feabf52ef5a4c00a7ad2c80d8d6e6d9d58756150be9bc973da9087 ++ 1 : 0xbfda688a5d320123fddb3fc70b746bc17647e2e7f2f96e130d429542bf4622d5 ++ 2 : 0x65dee4a48cde677aa89fa83c5c35e883fda658f743853e3ebad504ca6702f7c5 ++ 3 : 0x3d458cfe55cc03ea1f443f1562beec8df51c75e14a9fcf9a7234a13f198e7969 ++ 4 : 0x7672cbacaf6568fd1767a29cce541602ad91360dbd753a16b0d64021e619d65d ++ 5 : 0x202522f005ef625588bb7c9e21335ba96a63c5086306138885b3bb2c381730ca ++ 6 : 0x3d458cfe55cc03ea1f443f1562beec8df51c75e14a9fcf9a7234a13f198e7969 ++ 7 : 0x3b4a4db44b7a872524055364e62e897ae678e0d47ab0809f65c3a4ed77f66ab9 ++ 8 : 0x47591b43af431963eaeb5238a5c42eda1eb0014c27f7de7ae483066a2d2a2e61 +diff --git a/test/integration/fixtures/event-bootorder.bin.yaml b/test/integration/fixtures/event-bootorder.bin.yaml +new file mode 100644 +index 00000000..726f4f87 +--- /dev/null ++++ b/test/integration/fixtures/event-bootorder.bin.yaml +@@ -0,0 +1,1467 @@ ++--- ++version: 1 ++events: ++- EventNum: 0 ++ PCRIndex: 0 ++ EventType: EV_NO_ACTION ++ Digest: "0000000000000000000000000000000000000000" ++ EventSize: 37 ++ SpecID: ++ - Signature: Spec ID Event03 ++ platformClass: 0 ++ specVersionMinor: 0 ++ specVersionMajor: 2 ++ specErrata: 0 ++ uintnSize: 2 ++ numberOfAlgorithms: 2 ++ Algorithms: ++ - Algorithm[0]: ++ algorithmId: sha1 ++ digestSize: 20 ++ - Algorithm[1]: ++ algorithmId: sha256 ++ digestSize: 32 ++ vendorInfoSize: 0 ++- EventNum: 1 ++ PCRIndex: 0 ++ EventType: EV_S_CRTM_VERSION ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "1489f923c4dca729178b3e3233458550d8dddf29" ++ - AlgorithmId: sha256 ++ Digest: "96a296d224f285c67bee93c30f8a309157f0daa35dc5b87e410b78630a09cfc7" ++ EventSize: 2 ++ Event: "0000" ++- EventNum: 2 ++ PCRIndex: 0 ++ EventType: EV_EFI_PLATFORM_FIRMWARE_BLOB ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "6488855f69f459ef2e2038344ec566ca4bcad690" ++ - AlgorithmId: sha256 ++ Digest: "163240b109aa840ad3c3409a19b5c3488994b831d3e5ab0bca99aef11d95281f" ++ EventSize: 16 ++ Event: ++ BlobBase: 0x820000 ++ BlobLength: 0xe0000 ++- EventNum: 3 ++ PCRIndex: 0 ++ EventType: EV_EFI_PLATFORM_FIRMWARE_BLOB ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "fad74ec73e2093b46d934e57bb15eb07dab2daa4" ++ - AlgorithmId: sha256 ++ Digest: "0893258878179ebb61ea991f3e058a3b9352512086e683eb0458d31e45e474f7" ++ EventSize: 16 ++ Event: ++ BlobBase: 0x900000 ++ BlobLength: 0xb00000 ++- EventNum: 4 ++ PCRIndex: 7 ++ EventType: EV_EFI_VARIABLE_DRIVER_CONFIG ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "57cd4dc19442475aa82743484f3b1caa88e142b8" ++ - AlgorithmId: sha256 ++ Digest: "115aa827dbccfb44d216ad9ecfda56bdea620b860a94bed5b7a27bba1c4d02d8" ++ EventSize: 53 ++ Event: ++ VariableName: 8be4df61-93ca-11d2-aa0d-00e098032b8c ++ UnicodeNameLength: 10 ++ VariableDataLength: 1 ++ UnicodeName: SecureBoot ++ VariableData: "00" ++- EventNum: 5 ++ PCRIndex: 7 ++ EventType: EV_EFI_VARIABLE_DRIVER_CONFIG ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "9b1387306ebb7ff8e795e7be77563666bbf4516e" ++ - AlgorithmId: sha256 ++ Digest: "dea7b80ab53a3daaa24d5cc46c64e1fa9ffd03739f90aadbd8c0867c4a5b4890" ++ EventSize: 36 ++ Event: ++ VariableName: 8be4df61-93ca-11d2-aa0d-00e098032b8c ++ UnicodeNameLength: 2 ++ VariableDataLength: 0 ++ UnicodeName: PK ++- EventNum: 6 ++ PCRIndex: 7 ++ EventType: EV_EFI_VARIABLE_DRIVER_CONFIG ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "9afa86c507419b8570c62167cb9486d9fc809758" ++ - AlgorithmId: sha256 ++ Digest: "e670e121fcebd473b8bc41bb801301fc1d9afa33904f06f7149b74f12c47a68f" ++ EventSize: 38 ++ Event: ++ VariableName: 8be4df61-93ca-11d2-aa0d-00e098032b8c ++ UnicodeNameLength: 3 ++ VariableDataLength: 0 ++ UnicodeName: KEK ++- EventNum: 7 ++ PCRIndex: 7 ++ EventType: EV_EFI_VARIABLE_DRIVER_CONFIG ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "5bf8faa078d40ffbd03317c93398b01229a0e1e0" ++ - AlgorithmId: sha256 ++ Digest: "baf89a3ccace52750c5f0128351e0422a41597a1adfd50822aa363b9d124ea7c" ++ EventSize: 36 ++ Event: ++ VariableName: d719b2cb-3d3a-4596-a3bc-dad00e67656f ++ UnicodeNameLength: 2 ++ VariableDataLength: 0 ++ UnicodeName: db ++- EventNum: 8 ++ PCRIndex: 7 ++ EventType: EV_EFI_VARIABLE_DRIVER_CONFIG ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "734424c9fe8fc71716c42096f4b74c88733b175e" ++ - AlgorithmId: sha256 ++ Digest: "9f75b6823bff6af1024a4e2036719cdd548d3cbc2bf1de8e7ef4d0ed01f94bf9" ++ EventSize: 38 ++ Event: ++ VariableName: d719b2cb-3d3a-4596-a3bc-dad00e67656f ++ UnicodeNameLength: 3 ++ VariableDataLength: 0 ++ UnicodeName: dbx ++- EventNum: 9 ++ PCRIndex: 7 ++ EventType: EV_SEPARATOR ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "9069ca78e7450a285173431b3e52c5c25299e473" ++ - AlgorithmId: sha256 ++ Digest: "df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119" ++ EventSize: 4 ++ Event: "00000000" ++- EventNum: 10 ++ PCRIndex: 2 ++ EventType: EV_EFI_BOOT_SERVICES_DRIVER ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "94f73ca3598b5b7fff3b295b5788cbbfcd27a10c" ++ - AlgorithmId: sha256 ++ Digest: "2b37dc2f75e2db4099e0dd546e6bbb05d1be905f8cd449baafc86353bda5dd54" ++ EventSize: 78 ++ Event: ++ ImageLocationInMemory: 0xbeeed018 ++ ImageLengthInMemory: 205768 ++ ImageLinkTimeAddress: 0x0 ++ LengthOfDevicePath: 46 ++ DevicePath: '02010c00d041030a000000000101060000030408180000000000005c010000000000ff7f0400000000007fff0400' ++- EventNum: 11 ++ PCRIndex: 2 ++ EventType: EV_EFI_BOOT_SERVICES_DRIVER ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "94f73ca3598b5b7fff3b295b5788cbbfcd27a10c" ++ - AlgorithmId: sha256 ++ Digest: "2b37dc2f75e2db4099e0dd546e6bbb05d1be905f8cd449baafc86353bda5dd54" ++ EventSize: 78 ++ Event: ++ ImageLocationInMemory: 0xbeeed018 ++ ImageLengthInMemory: 205768 ++ ImageLinkTimeAddress: 0x0 ++ LengthOfDevicePath: 46 ++ DevicePath: '02010c00d041030a000000000101060000040408180000000000005c010000000000ff7f0400000000007fff0400' ++- EventNum: 12 ++ PCRIndex: 1 ++ EventType: EV_EFI_VARIABLE_BOOT ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "ea3f530d2b261b5a945812c15858c09de04abe9c" ++ - AlgorithmId: sha256 ++ Digest: "263d99957c7b574c63a265b32da7fff8b8ad831828946bfbff650d7074dd9198" ++ EventSize: 56 ++ Event: ++ VariableName: 8be4df61-93ca-11d2-aa0d-00e098032b8c ++ UnicodeNameLength: 9 ++ VariableDataLength: 6 ++ UnicodeName: BootOrder ++ VariableData: "010000000200" ++- EventNum: 13 ++ PCRIndex: 1 ++ EventType: EV_EFI_VARIABLE_BOOT ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "2a9a2be325bb21a601ecc332059d1326bda65629" ++ - AlgorithmId: sha256 ++ Digest: "d381b8aa422440ccf1edfd12e58e8ad0074e4b9735fad17d27783f24ec33ff26" ++ EventSize: 126 ++ Event: ++ VariableName: 8be4df61-93ca-11d2-aa0d-00e098032b8c ++ UnicodeNameLength: 8 ++ VariableDataLength: 78 ++ UnicodeName: Boot0001 ++ VariableData: "010000001600550045004600490020004d006900730063002000440065007600690063006500000002010c00d041030a000000000101060000067fff04004eac0881119f594d850ee21a522c59b2" ++- EventNum: 14 ++ PCRIndex: 1 ++ EventType: EV_EFI_VARIABLE_BOOT ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "22a4f6ee9af6dba01d3528deb64b74b582fc182b" ++ - AlgorithmId: sha256 ++ Digest: "3197be1e300fa1600d1884c3a4bd4a90a15405bfb546cf2e6cf6095f8c362a93" ++ EventSize: 110 ++ Event: ++ VariableName: 8be4df61-93ca-11d2-aa0d-00e098032b8c ++ UnicodeNameLength: 8 ++ VariableDataLength: 62 ++ UnicodeName: Boot0000 ++ VariableData: "090100002c0055006900410070007000000004071400c9bdb87cebf8344faaea3ee4af6516a10406140021aa2c4614760345836e8ab6f46623317fff0400" ++- EventNum: 15 ++ PCRIndex: 1 ++ EventType: EV_EFI_VARIABLE_BOOT ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "df5d6605cb8f4366d745a8464cfb26c1efdc305c" ++ - AlgorithmId: sha256 ++ Digest: "4d387b02d63b2f4cd7f667feb0a387fe47a10a3e26bf3533ddd001c605f3dec5" ++ EventSize: 136 ++ Event: ++ VariableName: 8be4df61-93ca-11d2-aa0d-00e098032b8c ++ UnicodeNameLength: 8 ++ VariableDataLength: 88 ++ UnicodeName: Boot0002 ++ VariableData: "010000002c00450046004900200049006e007400650072006e0061006c0020005300680065006c006c00000004071400c9bdb87cebf8344faaea3ee4af6516a10406140083a5047c3e9e1c4fad65e05268d0b4d17fff0400" ++- EventNum: 16 ++ PCRIndex: 4 ++ EventType: EV_EFI_ACTION ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "cd0fdb4531a6ec41be2753ba042637d6e5f7f256" ++ - AlgorithmId: sha256 ++ Digest: "3d6772b4f84ed47595d72a2c4c5ffd15f5bb72c7507fe26f2aaee2c69d5633ba" ++ EventSize: 40 ++ Event: |- ++ Calling EFI Application from Boot Option ++- EventNum: 17 ++ PCRIndex: 0 ++ EventType: EV_SEPARATOR ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "9069ca78e7450a285173431b3e52c5c25299e473" ++ - AlgorithmId: sha256 ++ Digest: "df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119" ++ EventSize: 4 ++ Event: "00000000" ++- EventNum: 18 ++ PCRIndex: 1 ++ EventType: EV_SEPARATOR ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "9069ca78e7450a285173431b3e52c5c25299e473" ++ - AlgorithmId: sha256 ++ Digest: "df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119" ++ EventSize: 4 ++ Event: "00000000" ++- EventNum: 19 ++ PCRIndex: 2 ++ EventType: EV_SEPARATOR ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "9069ca78e7450a285173431b3e52c5c25299e473" ++ - AlgorithmId: sha256 ++ Digest: "df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119" ++ EventSize: 4 ++ Event: "00000000" ++- EventNum: 20 ++ PCRIndex: 3 ++ EventType: EV_SEPARATOR ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "9069ca78e7450a285173431b3e52c5c25299e473" ++ - AlgorithmId: sha256 ++ Digest: "df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119" ++ EventSize: 4 ++ Event: "00000000" ++- EventNum: 21 ++ PCRIndex: 4 ++ EventType: EV_SEPARATOR ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "9069ca78e7450a285173431b3e52c5c25299e473" ++ - AlgorithmId: sha256 ++ Digest: "df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119" ++ EventSize: 4 ++ Event: "00000000" ++- EventNum: 22 ++ PCRIndex: 5 ++ EventType: EV_SEPARATOR ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "9069ca78e7450a285173431b3e52c5c25299e473" ++ - AlgorithmId: sha256 ++ Digest: "df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119" ++ EventSize: 4 ++ Event: "00000000" ++- EventNum: 23 ++ PCRIndex: 6 ++ EventType: EV_SEPARATOR ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "9069ca78e7450a285173431b3e52c5c25299e473" ++ - AlgorithmId: sha256 ++ Digest: "df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119" ++ EventSize: 4 ++ Event: "00000000" ++- EventNum: 24 ++ PCRIndex: 5 ++ EventType: EV_EFI_GPT_EVENT ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "d35cb7d68eaa9de91261f18f3077b7ba9dd32974" ++ - AlgorithmId: sha256 ++ Digest: "2b406513198abc7ffebdec8a744c1a8b828fe07489e000dbde27bf237aca3de2" ++ EventSize: 484 ++ Event: "4546492050415254000001005c000000d8b2b15d000000000100000000000000ff5f6604000000002200000000000000de5f660400000000a21b0807c97c63468ecf4692ccb7e3ec02000000000000008000000080000000160e4f720300000000000000af3dc60f838472478e793d69d8477de47010a9784677964382b8ffc7ba90d8890078030000000000de5f66040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004861682149646f6e744e656564454649daf9d10afb18ac429f39fbba46240cbd0008000000000000ff27000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028732ac11ff8d211ba4b00a0c93ec93b98e759c36a59b642b6f6eca290429d990028000000000000ff770300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" ++- EventNum: 25 ++ PCRIndex: 4 ++ EventType: EV_EFI_BOOT_SERVICES_APPLICATION ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "d0e6f939f1304a83975f34ff678da573ae2b3ee5" ++ - AlgorithmId: sha256 ++ Digest: "007f4c95125713b112093e21663e2d23e3c1ae9ce4b5de0d58a297332336a2d8" ++ EventSize: 144 ++ Event: ++ ImageLocationInMemory: 0xbec2b018 ++ ImageLengthInMemory: 1334816 ++ ImageLinkTimeAddress: 0x0 ++ LengthOfDevicePath: 112 ++ DevicePath: '02010c00d041030a0000000001010600000604012a000f0000000028000000000000005003000000000098e759c36a59b642b6f6eca290429d990202040430005c004500460049005c0042004f004f0054005c0042004f004f0054005800360034002e0045004600490000007fff0400' ++- EventNum: 26 ++ PCRIndex: 4 ++ EventType: EV_EFI_BOOT_SERVICES_APPLICATION ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "26040ba214343fb89f2f82599675474f092d506d" ++ - AlgorithmId: sha256 ++ Digest: "70fd78ce1d6de8d0cc7d5ca74e2e69e03cb92762d8a19d63a61b50070d41593f" ++ EventSize: 41 ++ Event: ++ ImageLocationInMemory: 0x0 ++ ImageLengthInMemory: 0 ++ ImageLinkTimeAddress: 0x0 ++ LengthOfDevicePath: 0 ++ DevicePath: '0090150000a01500af' ++- EventNum: 27 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "5bb3e7b9b843fa3bf11e7a85877c095031f6242f" ++ - AlgorithmId: sha256 ++ Digest: "b2166ffbf190a9bb3809a5a1dcb44bb5f3de6b44c2c27f1e4220a83f92d0c06a" ++ EventSize: 69 ++ Event: ++ String: |- ++ "grub_cmd: [ -z (hd0,gpt15)/boot/grub -o ! -e (hd0,gpt15)/boot/grub ]\0" ++- EventNum: 28 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "74bebd5904e1e03e1b33c6b282f02c1495a6399a" ++ - AlgorithmId: sha256 ++ Digest: "204e96107885ed140d3e8dbef893e1c64e4a3d9924db6c2ab247a36daadef64a" ++ EventSize: 59 ++ Event: ++ String: |- ++ "grub_cmd: [ -e (hd0,gpt15)/boot/grub/x86_64-efi/grub.cfg ]\0" ++- EventNum: 29 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "d213ef93b23586b61de14638c1777ec837604074" ++ - AlgorithmId: sha256 ++ Digest: "172b207a85a5f584b99ce06ae8fd97eec2df94b1c8ad305cf144d9bff797bccf" ++ EventSize: 48 ++ Event: ++ String: |- ++ "grub_cmd: [ -e (hd0,gpt15)/boot/grub/grub.cfg ]\0" ++- EventNum: 30 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "89390cd4a7a4db44da0828e0b25850e74ae1b5a2" ++ - AlgorithmId: sha256 ++ Digest: "d2d0bcff3471ed8513c735eae972e18b64697980124f3634ba71ccd304f73b22" ++ EventSize: 48 ++ Event: ++ String: |- ++ "grub_cmd: source (hd0,gpt15)/boot/grub/grub.cfg\0" ++- EventNum: 31 ++ PCRIndex: 9 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "e7dfe5cc66a86749c2035e148e5d05e7208d7bd7" ++ - AlgorithmId: sha256 ++ Digest: "3193758bf575102eeea79b1f7a7bef60772effcb7e9ca8b5fd42e33c9e8953bf" ++ EventSize: 31 ++ Event: ++ String: |- ++ "(hd0,gpt15)/boot/grub/grub.cfg\0" ++- EventNum: 32 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "dc67bcc9abc2411af92a6b61683d09b888ab9b6c" ++ - AlgorithmId: sha256 ++ Digest: "154a0f30f044fc2e043ad9330b5cf5f3970422281ad8fe902dd1d0b42aa07b54" ++ EventSize: 76 ++ Event: ++ String: |- ++ "grub_cmd: search.fs_uuid d64f335d-4d71-46c8-9379-3375973830f3 root hd0,gpt1\0" ++- EventNum: 33 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "c90fdbd8bc3928f93d41ef4176a3415df2d584eb" ++ - AlgorithmId: sha256 ++ Digest: "679845b798116003dcee938a7e87a07c7b7dd42b5349e54632bbfa82a740541b" ++ EventSize: 42 ++ Event: ++ String: |- ++ "grub_cmd: set prefix=(hd0,gpt1)/boot/grub\0" ++- EventNum: 34 ++ PCRIndex: 9 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "7f7e85909fb37d150f57822c0ad3b636e7853aff" ++ - AlgorithmId: sha256 ++ Digest: "5137257cdcec140bce7e0c83c1000df3f7ecf18de11bde46b8d32f49ba657791" ++ EventSize: 44 ++ Event: ++ String: |- ++ "(hd0,gpt1)/boot/grub/x86_64-efi/command.lst\0" ++- EventNum: 35 ++ PCRIndex: 9 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "f091655c7ac7314eb0df21931415de47628d621f" ++ - AlgorithmId: sha256 ++ Digest: "32fc7f5de8c0a5dc0b1e7eb609ca31a77eb3475539e1d97a4543dca1b9b26c57" ++ EventSize: 39 ++ Event: ++ String: |- ++ "(hd0,gpt1)/boot/grub/x86_64-efi/fs.lst\0" ++- EventNum: 36 ++ PCRIndex: 9 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "ff00d28114398cf1a052329494d63aceeb8ff29a" ++ - AlgorithmId: sha256 ++ Digest: "1b766f38a94927fe9b7bc1e809f0363e778e14c601e800faea271a2e75d3fc43" ++ EventSize: 43 ++ Event: ++ String: |- ++ "(hd0,gpt1)/boot/grub/x86_64-efi/crypto.lst\0" ++- EventNum: 37 ++ PCRIndex: 9 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "66b726c6d64bc109d3948a9528f502ea94938ef4" ++ - AlgorithmId: sha256 ++ Digest: "46f888c52f36baf9b62d60bc8d06426a314aad5a0ff86a4362a91c2512a1df9c" ++ EventSize: 45 ++ Event: ++ String: |- ++ "(hd0,gpt1)/boot/grub/x86_64-efi/terminal.lst\0" ++- EventNum: 38 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "1284bee568af2e320e6a03dce30144182be7d51e" ++ - AlgorithmId: sha256 ++ Digest: "874d063ee6d5776d8474fcbaed76cdd44f32572d8454338fef7138347e866d7d" ++ EventSize: 51 ++ Event: ++ String: |- ++ "grub_cmd: configfile (hd0,gpt1)/boot/grub/grub.cfg\0" ++- EventNum: 39 ++ PCRIndex: 9 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "6629b50b4251a5dad59be69a1dfa3b9cd77371f5" ++ - AlgorithmId: sha256 ++ Digest: "457040ecfb2efcb062b4b833ed45d8f9c5773f09697eb71d7d64705677fddcae" ++ EventSize: 30 ++ Event: ++ String: |- ++ "(hd0,gpt1)/boot/grub/grub.cfg\0" ++- EventNum: 40 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "3e5cd7ea0fdc2e2b2f956d41f9090ee3732fb833" ++ - AlgorithmId: sha256 ++ Digest: "7e2b3493baa3f9e4c6a836282d1e66b5855692169dee44d46fe20d11dbc17381" ++ EventSize: 46 ++ Event: ++ String: |- ++ "grub_cmd: [ -s (hd0,gpt1)/boot/grub/grubenv ]\0" ++- EventNum: 41 ++ PCRIndex: 9 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "d824837898575ca2fcae32fed643e00b84d62611" ++ - AlgorithmId: sha256 ++ Digest: "42439fda5143449c668430706de270c764912b08766180e594bcd75d961da46c" ++ EventSize: 29 ++ Event: ++ String: |- ++ "(hd0,gpt1)/boot/grub/grubenv\0" ++- EventNum: 42 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "3c4e9b1198ecc160aff6022c0f96b5b22fab1469" ++ - AlgorithmId: sha256 ++ Digest: "0e3a17e0c48e42d79f4d1576e7f787c911239510586505c326143b9b268bdd65" ++ EventSize: 32 ++ Event: ++ String: |- ++ "grub_cmd: set have_grubenv=true\0" ++- EventNum: 43 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "453dee6ce82bd80ea89bd8085724ae9784ff0f1b" ++ - AlgorithmId: sha256 ++ Digest: "f8b99f77983990e8804864cade91f361b5b6600cc2832febaef878ac8b44d27e" ++ EventSize: 19 ++ Event: ++ String: |- ++ "grub_cmd: load_env\0" ++- EventNum: 44 ++ PCRIndex: 9 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "d824837898575ca2fcae32fed643e00b84d62611" ++ - AlgorithmId: sha256 ++ Digest: "42439fda5143449c668430706de270c764912b08766180e594bcd75d961da46c" ++ EventSize: 29 ++ Event: ++ String: |- ++ "(hd0,gpt1)/boot/grub/grubenv\0" ++- EventNum: 45 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "69ac3a89588aa0a95d8ff937642868a0ccfe2c09" ++ - AlgorithmId: sha256 ++ Digest: "492fe6f726b0b3b92fce889eaba1aab7be7c5a373c7438557b3ea49ba98d4940" ++ EventSize: 20 ++ Event: ++ String: |- ++ "grub_cmd: [ 1 = 2 ]\0" ++- EventNum: 46 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "aa0c1b41d0046552dea2a47b1f8e592716137f4a" ++ - AlgorithmId: sha256 ++ Digest: "5935716bf513717f6b6931f3f8e40962606850cfc43d25ff2ca4754dcc13dceb" ++ EventSize: 20 ++ Event: ++ String: |- ++ "grub_cmd: [ 1 = 1 ]\0" ++- EventNum: 47 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "d8f3601c7085b0e7d08c2b5925720404d9b799d1" ++ - AlgorithmId: sha256 ++ Digest: "6b59ff87625a202766cd5d6172f00dd63378823bf413a551a628f874bbb642cf" ++ EventSize: 26 ++ Event: ++ String: |- ++ "grub_cmd: set next_entry=\0" ++- EventNum: 48 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "aa78b63e975d20ee4af7e4bfa0c8314ca2e72862" ++ - AlgorithmId: sha256 ++ Digest: "4a6e5876f2d88fa867f1099e143631ad94a37484e682790d9e1848b92a07abee" ++ EventSize: 26 ++ Event: ++ String: |- ++ "grub_cmd: set prev_entry=\0" ++- EventNum: 49 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "69634430fcd587c877479d7390cd3eacfc2f27cc" ++ - AlgorithmId: sha256 ++ Digest: "fdcca48e2c9aab6cbe435b5cda9b395d67aa165516b62e7e5ce3a50ac039ac32" ++ EventSize: 30 ++ Event: ++ String: |- ++ "grub_cmd: save_env prev_entry\0" ++- EventNum: 50 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "710cbf237c9abd071ca91c4104324800bec7b0fb" ++ - AlgorithmId: sha256 ++ Digest: "ce8124bc1b0fbc0cb5cd47338ca0c7d5f5446d79936e443a201d96b192a7bd65" ++ EventSize: 15 ++ Event: ++ String: |- ++ "grub_cmd: [ ]\0" ++- EventNum: 51 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "710cbf237c9abd071ca91c4104324800bec7b0fb" ++ - AlgorithmId: sha256 ++ Digest: "ce8124bc1b0fbc0cb5cd47338ca0c7d5f5446d79936e443a201d96b192a7bd65" ++ EventSize: 15 ++ Event: ++ String: |- ++ "grub_cmd: [ ]\0" ++- EventNum: 52 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "75409120452bbbee30abe289af973ecdd7e0ef6b" ++ - AlgorithmId: sha256 ++ Digest: "3a118940bf2675007df3368cb6d45cf2756f328d3e75daf69a971dd21bd1bc58" ++ EventSize: 24 ++ Event: ++ String: |- ++ "grub_cmd: set default=0\0" ++- EventNum: 53 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "f5b067e59c163f67b19b836fbee9e8a487a19cdd" ++ - AlgorithmId: sha256 ++ Digest: "4568361fb7581b31a42d645ab534302fb9f742adaa37b7fde152215d69e259fb" ++ EventSize: 22 ++ Event: ++ String: |- ++ "grub_cmd: [ xy = xy ]\0" ++- EventNum: 54 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "bd5209e50c09650ffcf5c2d12a8be8277e438023" ++ - AlgorithmId: sha256 ++ Digest: "09f17d4dfb4b97f16246632c21b1ac2125c95c148899eee5069fbb1b34365513" ++ EventSize: 35 ++ Event: ++ String: |- ++ "grub_cmd: menuentry_id_option=--id\0" ++- EventNum: 55 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "6248599bae0d78ccbda185ed2fce0182ed41e297" ++ - AlgorithmId: sha256 ++ Digest: "4af0bb370c9e3b7982027d02e04c935e32d52b528007476bfc50d36d1b86815e" ++ EventSize: 37 ++ Event: ++ String: |- ++ "grub_cmd: export menuentry_id_option\0" ++- EventNum: 56 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "710cbf237c9abd071ca91c4104324800bec7b0fb" ++ - AlgorithmId: sha256 ++ Digest: "ce8124bc1b0fbc0cb5cd47338ca0c7d5f5446d79936e443a201d96b192a7bd65" ++ EventSize: 15 ++ Event: ++ String: |- ++ "grub_cmd: [ ]\0" ++- EventNum: 57 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "7dc272da02b00e0ee2958961bb99a2e3196ec24a" ++ - AlgorithmId: sha256 ++ Digest: "df24f1cae6b428fdd09bc14b06df255f93060ff05d56c3127724168596f73d5f" ++ EventSize: 33 ++ Event: ++ String: |- ++ "grub_cmd: terminal_input console\0" ++- EventNum: 58 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "155e201c47f534b1201190d61e9d178a525540e6" ++ - AlgorithmId: sha256 ++ Digest: "fed7c930939012174a23271f9fa177a39891cd1baf6ccd22bccce96acd0514d1" ++ EventSize: 34 ++ Event: ++ String: |- ++ "grub_cmd: terminal_output console\0" ++- EventNum: 59 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "aa0c1b41d0046552dea2a47b1f8e592716137f4a" ++ - AlgorithmId: sha256 ++ Digest: "5935716bf513717f6b6931f3f8e40962606850cfc43d25ff2ca4754dcc13dceb" ++ EventSize: 20 ++ Event: ++ String: |- ++ "grub_cmd: [ 1 = 1 ]\0" ++- EventNum: 60 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "4f44a4a7a7523e637715ea96d38b3614bb6c22d8" ++ - AlgorithmId: sha256 ++ Digest: "d3a793f471b6bfe8d783f5e629314cad4763d48986a8cd4df25475334b40f49b" ++ EventSize: 24 ++ Event: ++ String: |- ++ "grub_cmd: set timeout=0\0" ++- EventNum: 61 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "0d570854895a5a9ce25dc6c25026278c2d1a6367" ++ - AlgorithmId: sha256 ++ Digest: "207cda95fd859189d016c7c2cc03b9c05672984589e4809e1dcee665d629cf7d" ++ EventSize: 44 ++ Event: ++ String: |- ++ "grub_cmd: set menu_color_normal=white/black\0" ++- EventNum: 62 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "d4a516aec1bccafec65420d98fcb243aa465d837" ++ - AlgorithmId: sha256 ++ Digest: "6f18799fe0ecb5c4bb4c0695a3094dc9841c940c3b463e14c25e444246348a2a" ++ EventSize: 52 ++ Event: ++ String: |- ++ "grub_cmd: set menu_color_highlight=black/light-gray\0" ++- EventNum: 63 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "ecdcad74115ad02c9d8440f27b4e0689d76774e7" ++ - AlgorithmId: sha256 ++ Digest: "6cf48a4c26fa07a4c8ae470218b37d52b0ff3095c23c35a3bb8872b87c883ebe" ++ EventSize: 60 ++ Event: ++ String: |- ++ "grub_cmd: set partuuid=78a91070-7746-4396-82b8-ffc7ba90d889\0" ++- EventNum: 64 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "ffc5ff69933dd9a11ca68638ce3658ef0d2269ca" ++ - AlgorithmId: sha256 ++ Digest: "947920653060a5560f1c4a13befe97d2c3d13c1f36effb24c29f57d1e53edbb5" ++ EventSize: 21 ++ Event: ++ String: |- ++ "grub_cmd: [ 1 != 1 ]\0" ++- EventNum: 65 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "b22f5db5791853fce95f8623ab479d81483b71dc" ++ - AlgorithmId: sha256 ++ Digest: "5618ae564712085435199ecf654a3ab87e1c1fd87a1823c780d7f0f677dd7b5d" ++ EventSize: 34 ++ Event: ++ String: |- ++ "grub_cmd: set linux_gfx_mode=text\0" ++- EventNum: 66 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "9deef0fa444e59d7a08e615f25628826e7feddf9" ++ - AlgorithmId: sha256 ++ Digest: "22e041251eb54eeb3270245759aa3e8bd3b77a647db988b681b1eafc6960aa45" ++ EventSize: 32 ++ Event: ++ String: |- ++ "grub_cmd: export linux_gfx_mode\0" ++- EventNum: 67 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "ca904a776c820180356d1f6d200588daa7fa64b7" ++ - AlgorithmId: sha256 ++ Digest: "461ab8369f3a3d8b10c911724a3f4e0f242ec9155565ba6116a2290c8f321b84" ++ EventSize: 1023 ++ Event: ++ String: |- ++ "grub_cmd: menuentry Ubuntu --class ubuntu --class gnu-linux --class gnu --class os --id gnulinux-simple-d64f335d-4d71-46c8-9379-3375973830f3 {" ++ "\trecordfail" ++ "\tload_video" ++ "\tgfxmode $linux_gfx_mode" ++ "\tinsmod gzio" ++ "\tif [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi" ++ "\tinsmod part_gpt" ++ "\tinsmod ext2" ++ "\tset root=\'hd0,gpt1\'" ++ "\tif [ x$feature_platform_search_hint = xy ]; then" ++ "\t search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1 d64f335d-4d71-46c8-9379-3375973830f3" ++ "\telse" ++ "\t search --no-floppy --fs-uuid --set=root d64f335d-4d71-46c8-9379-3375973830f3" ++ "\tfi" ++ "\tif [ "${initrdfail}" = 1 ]; then" ++ "\t linux\t/boot/vmlinuz-5.4.0-45-generic root=PARTUUID=78a91070-7746-4396-82b8-ffc7ba90d889 ro biosdevname=0 net.ifnames=0 console=tty1 console=ttyS0" ++ "\t initrd\t/boot/initrd.img-5.4.0-45-generic" ++ "\telse" ++ "\t linux\t/boot/vmlinuz-5.4.0-45-generic root=PARTUUID=78a91070-7746-4396-82b8-ffc7ba90d889 ro biosdevname=0 net.ifnames=0 console=tty1 console=ttyS0 panic=-1" ++ "\tfi" ++ "\tinitrdfail" ++ "}\0" ++- EventNum: 68 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "e0a4b6ed5d77ec6442f5fe4248e10fafbbf558f6" ++ - AlgorithmId: sha256 ++ Digest: "180e24f477566b850732c77bf45ee0460552451c391d111a31b31ae5d7be9d14" ++ EventSize: 2484 ++ Event: ++ String: |- ++ "grub_cmd: submenu Advanced options for Ubuntu --id gnulinux-advanced-d64f335d-4d71-46c8-9379-3375973830f3 {" ++ "\tmenuentry \'Ubuntu, with Linux 5.4.0-45-generic\' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option \'gnulinux-5.4.0-45-generic-advanced-d64f335d-4d71-46c8-9379-3375973830f3\' {" ++ "\t\trecordfail" ++ "\t\tload_video" ++ "\t\tgfxmode $linux_gfx_mode" ++ "\t\tinsmod gzio" ++ "\t\tif [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi" ++ "\t\tinsmod part_gpt" ++ "\t\tinsmod ext2" ++ "\t\tset root=\'hd0,gpt1\'" ++ "\t\tif [ x$feature_platform_search_hint = xy ]; then" ++ "\t\t search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1 d64f335d-4d71-46c8-9379-3375973830f3" ++ "\t\telse" ++ "\t\t search --no-floppy --fs-uuid --set=root d64f335d-4d71-46c8-9379-3375973830f3" ++ "\t\tfi" ++ "\t\techo\t\'Loading Linux 5.4.0-45-generic ...\'" ++ "\t\tif [ "${initrdfail}" = 1 ]; then" ++ "\t\t linux\t/boot/vmlinuz-5.4.0-45-generic root=PARTUUID=78a91070-7746-4396-82b8-ffc7ba90d889 ro biosdevname=0 net.ifnames=0 console=tty1 console=ttyS0" ++ "\t\t echo\t\'Loading initial ramdisk ...\'" ++ "\t\t initrd\t/boot/initrd.img-5.4.0-45-generic" ++ "\t\telse" ++ "\t\t linux\t/boot/vmlinuz-5.4.0-45-generic root=PARTUUID=78a91070-7746-4396-82b8-ffc7ba90d889 ro biosdevname=0 net.ifnames=0 console=tty1 console=ttyS0 panic=-1" ++ "\t\tfi" ++ "\t\tinitrdfail" ++ "\t}" ++ "\tmenuentry \'Ubuntu, with Linux 5.4.0-45-generic (recovery mode)\' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option \'gnulinux-5.4.0-45-generic-recovery-d64f335d-4d71-46c8-9379-3375973830f3\' {" ++ "\t\trecordfail" ++ "\t\tload_video" ++ "\t\tinsmod gzio" ++ "\t\tif [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi" ++ "\t\tinsmod part_gpt" ++ "\t\tinsmod ext2" ++ "\t\tset root=\'hd0,gpt1\'" ++ "\t\tif [ x$feature_platform_search_hint = xy ]; then" ++ "\t\t search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1 d64f335d-4d71-46c8-9379-3375973830f3" ++ "\t\telse" ++ "\t\t search --no-floppy --fs-uuid --set=root d64f335d-4d71-46c8-9379-3375973830f3" ++ "\t\tfi" ++ "\t\techo\t\'Loading Linux 5.4.0-45-generic ...\'" ++ "\t\tif [ "${initrdfail}" = 1 ]; then" ++ "\t\t linux\t/boot/vmlinuz-5.4.0-45-generic root=PARTUUID=78a91070-7746-4396-82b8-ffc7ba90d889 ro recovery nomodeset dis_ucode_ldr biosdevname=0 net.ifnames=0" ++ "\t\t echo\t\'Loading initial ramdisk ...\'" ++ "\t\t initrd\t/boot/initrd.img-5.4.0-45-generic" ++ "\t\telse" ++ "\t\t linux\t/boot/vmlinuz-5.4.0-45-generic root=PARTUUID=78a91070-7746-4396-82b8-ffc7ba90d889 ro recovery nomodeset dis_ucode_ldr biosdevname=0 net.ifnames=0 panic=-1" ++ "\t\tfi" ++ "\t\tinitrdfail" ++ "\t}" ++ "}\0" ++- EventNum: 69 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "273f5c80c12e935c1d37c2cfe3e161bc42d79d8e" ++ - AlgorithmId: sha256 ++ Digest: "1ea37430950c837021ebcc02f98c12018c31e593e366429436e1353584c7ec72" ++ EventSize: 49 ++ Event: ++ String: |- ++ "grub_cmd: [ -f (hd0,gpt1)/boot/grub/custom.cfg ]\0" ++- EventNum: 70 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "a3326df3194201575e51c3b9a1c8d5d17aeff2d0" ++ - AlgorithmId: sha256 ++ Digest: "d5478d9057580531bf6ff37383b01bb78e1279c20a23721aa3a67ad0d1ca35db" ++ EventSize: 76 ++ Event: ++ String: |- ++ "grub_cmd: [ -z (hd0,gpt1)/boot/grub -a -f (hd0,gpt1)/boot/grub/custom.cfg ]\0" ++- EventNum: 71 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "17c76a65ebda6aa310da041aabbcd6483bf00df4" ++ - AlgorithmId: sha256 ++ Digest: "bf5d10a466c0f77818990a9d0fdcc8fa2c4561ba92912d5fbc9d4ac1e31a00fb" ++ EventSize: 27 ++ Event: ++ String: |- ++ "grub_cmd: setparams Ubuntu\0" ++- EventNum: 72 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "98d066f8ffd046bacb38b106188cbe7fe9ada729" ++ - AlgorithmId: sha256 ++ Digest: "a57e067e286efc4eea89659d40f13a38cc1792e4277bed820ded674c94bf2ead" ++ EventSize: 21 ++ Event: ++ String: |- ++ "grub_cmd: recordfail\0" ++- EventNum: 73 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "bac17085fef5043662a50cef18bf366844c074ff" ++ - AlgorithmId: sha256 ++ Digest: "64bda8f65b1585d7868248a292c449660cc8f75075c10d87ae59a4db401ce119" ++ EventSize: 27 ++ Event: ++ String: |- ++ "grub_cmd: set recordfail=1\0" ++- EventNum: 74 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "55cfd6463ef334abb6b48080b33ec063a9c051eb" ++ - AlgorithmId: sha256 ++ Digest: "cfa4676ffe751d1547e77a8d66a033b59b3eed3400d9b3a305d2601891ab0e59" ++ EventSize: 22 ++ Event: ++ String: |- ++ "grub_cmd: [ -n true ]\0" ++- EventNum: 75 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "d31e5f156b716d7835b261891644bb5f7f65e285" ++ - AlgorithmId: sha256 ++ Digest: "4e7a22f96bae467df0f26975e0bf7614d6b92993301c65bae6a85c6530e460bf" ++ EventSize: 18 ++ Event: ++ String: |- ++ "grub_cmd: [ -z ]\0" ++- EventNum: 76 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "925ee69b7c8ac4937cbe47d5c85351d869b4e8d7" ++ - AlgorithmId: sha256 ++ Digest: "ce2cc20777ba8d3bc75b662163c3abe370344d4bae17d75fb5bd408d1fb6badf" ++ EventSize: 30 ++ Event: ++ String: |- ++ "grub_cmd: save_env recordfail\0" ++- EventNum: 77 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "8fe59e66d6ec198420477f24f791e929f153e144" ++ - AlgorithmId: sha256 ++ Digest: "7626abd8be7442c2e575364a3e95cb3a3b533c58afbba402d2bdabdff85d29c7" ++ EventSize: 21 ++ Event: ++ String: |- ++ "grub_cmd: load_video\0" ++- EventNum: 78 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "f5b067e59c163f67b19b836fbee9e8a487a19cdd" ++ - AlgorithmId: sha256 ++ Digest: "4568361fb7581b31a42d645ab534302fb9f742adaa37b7fde152215d69e259fb" ++ EventSize: 22 ++ Event: ++ String: |- ++ "grub_cmd: [ xy = xy ]\0" ++- EventNum: 79 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "59ced343b060b7df54fa7ba251ef877940601ee4" ++ - AlgorithmId: sha256 ++ Digest: "d71353f5368eb2c1280590928128979bd96ea8db1e8c81493f7878383b76ab3b" ++ EventSize: 27 ++ Event: ++ String: |- ++ "grub_cmd: insmod all_video\0" ++- EventNum: 80 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "9e12ea97e4dadf46b29402cc55eacd227ee3f364" ++ - AlgorithmId: sha256 ++ Digest: "6efe5245f640eb0b7e601bc996652d06902a4bbd1b34b902903fc217a826f30e" ++ EventSize: 23 ++ Event: ++ String: |- ++ "grub_cmd: gfxmode text\0" ++- EventNum: 81 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "75538862ec020d327e306ea27c200bddae3406eb" ++ - AlgorithmId: sha256 ++ Digest: "c89c80d69cfeedad50036743cb6964f8ed5ef494dff379a57c46345a327ebb64" ++ EventSize: 30 ++ Event: ++ String: |- ++ "grub_cmd: set gfxpayload=text\0" ++- EventNum: 82 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "2058b2755fa0eb1e9c76399a4fa797b0675da67e" ++ - AlgorithmId: sha256 ++ Digest: "ce014fbd540f5a1796d7b9def2294a75114f28ccd23c556c9e7ba1b4a38a0557" ++ EventSize: 26 ++ Event: ++ String: |- ++ "grub_cmd: [ text = keep ]\0" ++- EventNum: 83 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "6568ee5d89e912eb995ad4c82d000ab8d0b4548e" ++ - AlgorithmId: sha256 ++ Digest: "09e725869682d71dba50ef98b2f78022466e9c0173f5f4bcc4f0f863067e65f8" ++ EventSize: 26 ++ Event: ++ String: |- ++ "grub_cmd: set vt_handoff=\0" ++- EventNum: 84 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "ba509ca38210f0683c477c9dc40e4c4f653e1dfb" ++ - AlgorithmId: sha256 ++ Digest: "6c4674d4c652ee67b98a6206d7541ccbf2d5dc0a18dae31ad66e82c794c49784" ++ EventSize: 22 ++ Event: ++ String: |- ++ "grub_cmd: insmod gzio\0" ++- EventNum: 85 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "2de845dce8a51c8fddbaa04686760093325b7569" ++ - AlgorithmId: sha256 ++ Digest: "18865468f2e4bd9f0cc4ffdda1335f405d06df8d6ff183b373f50e08e81f924d" ++ EventSize: 26 ++ Event: ++ String: |- ++ "grub_cmd: [ xefi = xxen ]\0" ++- EventNum: 86 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "a4e1c6f50579b47c964111d1ea2170e6f923c941" ++ - AlgorithmId: sha256 ++ Digest: "62cd76d31ca3d10d742e46c6ff171046ce19dd90f361a827fec6571e59c24794" ++ EventSize: 26 ++ Event: ++ String: |- ++ "grub_cmd: insmod part_gpt\0" ++- EventNum: 87 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "af3f07abac9e5c56b82f09ab98328905aabbf6ef" ++ - AlgorithmId: sha256 ++ Digest: "b838a4d2860c81058105fbb1907a1fb7f60b65591b099b3b000d9b31d8d2fb20" ++ EventSize: 22 ++ Event: ++ String: |- ++ "grub_cmd: insmod ext2\0" ++- EventNum: 88 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "cbf1bcb38df72c190b4db0d27ee96eca3c7a9e44" ++ - AlgorithmId: sha256 ++ Digest: "20df4eb78bbf966925af51ad614806aa3ad6f146a9a0c85ac2582a3eaa9a30ca" ++ EventSize: 28 ++ Event: ++ String: |- ++ "grub_cmd: set root=hd0,gpt1\0" ++- EventNum: 89 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "f5b067e59c163f67b19b836fbee9e8a487a19cdd" ++ - AlgorithmId: sha256 ++ Digest: "4568361fb7581b31a42d645ab534302fb9f742adaa37b7fde152215d69e259fb" ++ EventSize: 22 ++ Event: ++ String: |- ++ "grub_cmd: [ xy = xy ]\0" ++- EventNum: 90 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "9beaa2097e4493a4bb31f11a3f6d8f958b3429b2" ++ - AlgorithmId: sha256 ++ Digest: "1781ff193c82654750367a4fc175c77e971e4c53517470ddb02afa23a40290f4" ++ EventSize: 156 ++ Event: ++ String: |- ++ "grub_cmd: search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1 d64f335d-4d71-46c8-9379-3375973830f3\0" ++- EventNum: 91 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "aa0c1b41d0046552dea2a47b1f8e592716137f4a" ++ - AlgorithmId: sha256 ++ Digest: "5935716bf513717f6b6931f3f8e40962606850cfc43d25ff2ca4754dcc13dceb" ++ EventSize: 20 ++ Event: ++ String: |- ++ "grub_cmd: [ 1 = 1 ]\0" ++- EventNum: 92 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "b6f8fec26a7eb65f3927aa43af6e8ec1846ee688" ++ - AlgorithmId: sha256 ++ Digest: "d78fa3dd0776f200df573cff8c4fd68f5091ed7ad3a6437db8b0db3325c6b0ed" ++ EventSize: 156 ++ Event: ++ String: |- ++ "grub_cmd: linux /boot/vmlinuz-5.4.0-45-generic root=PARTUUID=78a91070-7746-4396-82b8-ffc7ba90d889 ro biosdevname=0 net.ifnames=0 console=tty1 console=ttyS0\0" ++- EventNum: 93 ++ PCRIndex: 9 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "8a0b7b8226ad59b5ac4381ca4afd38709d8448eb" ++ - AlgorithmId: sha256 ++ Digest: "6f6461546ce9fbee0b33dcad75f6f5534ecf907a397f29b5c8c0d93093b6e4e2" ++ EventSize: 31 ++ Event: ++ String: |- ++ "/boot/vmlinuz-5.4.0-45-generic\0" ++- EventNum: 94 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "3130fdda238d47b4164505d920baca259ce81219" ++ - AlgorithmId: sha256 ++ Digest: "5f8193381b94ebb69a821609308177d3fa8d1fb6fbd817266a61e4ff77d154ef" ++ EventSize: 156 ++ Event: ++ String: |- ++ "kernel_cmdline: /boot/vmlinuz-5.4.0-45-generic root=PARTUUID=78a91070-7746-4396-82b8-ffc7ba90d889 ro biosdevname=0 net.ifnames=0 console=tty1 console=ttyS0\0" ++- EventNum: 95 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "c92cb595ef1e034296cdba12b58df0c15e4fbb3b" ++ - AlgorithmId: sha256 ++ Digest: "4bdfca86598a2eca99da0d5d8d7eb437a4009db929616f243a41936c4460d446" ++ EventSize: 51 ++ Event: ++ String: |- ++ "grub_cmd: initrd /boot/initrd.img-5.4.0-45-generic\0" ++- EventNum: 96 ++ PCRIndex: 9 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "186473f3819194651227f49e5f389db7b7cae751" ++ - AlgorithmId: sha256 ++ Digest: "46109c40d06946c299a8efc66c93fe882df02ce8f7ae0546571d6eaa02457552" ++ EventSize: 34 ++ Event: ++ String: |- ++ "/boot/initrd.img-5.4.0-45-generic\0" ++- EventNum: 97 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "8c6944c5ed9f1516843fd5f5bc32941b1306e7db" ++ - AlgorithmId: sha256 ++ Digest: "76bc6c6d70ce34a24bda263584ed03d0fd5d94f90ca206dd5e500b0fe98b3df2" ++ EventSize: 21 ++ Event: ++ String: |- ++ "grub_cmd: initrdfail\0" ++- EventNum: 98 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "55cfd6463ef334abb6b48080b33ec063a9c051eb" ++ - AlgorithmId: sha256 ++ Digest: "cfa4676ffe751d1547e77a8d66a033b59b3eed3400d9b3a305d2601891ab0e59" ++ EventSize: 22 ++ Event: ++ String: |- ++ "grub_cmd: [ -n true ]\0" ++- EventNum: 99 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "86365ebcde91a88bd1c97b4864e7058e66d97e7a" ++ - AlgorithmId: sha256 ++ Digest: "3602091ace7833250a353f8e3d7b79f1efcabb25ac761f5764f6a4403eec4974" ++ EventSize: 54 ++ Event: ++ String: |- ++ "grub_cmd: [ -n 78a91070-7746-4396-82b8-ffc7ba90d889 ]\0" ++- EventNum: 100 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "a3a5563acacd3a3545f38b1efec4328b19e1db6d" ++ - AlgorithmId: sha256 ++ Digest: "50be723e27218e2db23928b27f224484c593978e2073b88ff455eb0caa481260" ++ EventSize: 19 ++ Event: ++ String: |- ++ "grub_cmd: [ -z 1 ]\0" ++- EventNum: 101 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "9f1950c2967bc0668269446aa91b2f1e2b088862" ++ - AlgorithmId: sha256 ++ Digest: "a05839fd9bfebe3bde7739df6a1983a0008d37e25a47ffa6a164b4a22050c80f" ++ EventSize: 30 ++ Event: ++ String: |- ++ "grub_cmd: save_env initrdfail\0" ++- EventNum: 102 ++ PCRIndex: 5 ++ EventType: EV_EFI_ACTION ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "443a6b7b82b7af564f2e393cd9d5a388b7fa4a98" ++ - AlgorithmId: sha256 ++ Digest: "d8043d6b7b85ad358eb3b6ae6a873ab7ef23a26352c5dc4faa5aeedacf5eb41b" ++ EventSize: 29 ++ Event: |- ++ Exit Boot Services Invocation ++- EventNum: 103 ++ PCRIndex: 5 ++ EventType: EV_EFI_ACTION ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "475545ddc978d7bfd036facc7e2e987f48189f0d" ++ - AlgorithmId: sha256 ++ Digest: "b54f7542cbd872a81a9d9dea839b2b8d747c7ebd5ea6615c40f42f44a6dbeba0" ++ EventSize: 40 ++ Event: |- ++ Exit Boot Services Returned with Success ++pcrs: ++ sha1: ++ 0 : 0x74c8f4bec7f58dea3941ce46e688440cce91cf5c ++ 1 : 0x293a334523288b61943f3101008ad5ca1f56e127 ++ 2 : 0x64bdfedc3a257a7dbc5bf9e94692ec6033f1dc76 ++ 3 : 0xb2a83b0ebf2f8374299a5b2bdfc31ea955ad7236 ++ 4 : 0x13f0dcc5114f14c3df03cf437d7181f256e07a01 ++ 5 : 0x461d7b57e3c62d7a2cda4e4acdec3908c866432e ++ 6 : 0xb2a83b0ebf2f8374299a5b2bdfc31ea955ad7236 ++ 7 : 0x518bd167271fbb64589c61e43d8c0165861431d8 ++ 8 : 0x43aaff1eb3b4ec57d1a5c1427f6ae4748fe40cd8 ++ 9 : 0xf1ec9df00222a772a04fa20afbd7e707ac3ad677 ++ sha256: ++ 0 : 0x804c3cb76b471627372c8e5ebd068d1f8f8af088af43dc9de620af652f11116f ++ 1 : 0x61137129a04703282cd3a002a6cd3694e09c68115cbe1e11f4efa892685648d9 ++ 2 : 0x6bb89e2dc338e478b9b58d7c987c67fd2b09435be88195decc1e6ecf6e719d8e ++ 3 : 0x3d458cfe55cc03ea1f443f1562beec8df51c75e14a9fcf9a7234a13f198e7969 ++ 4 : 0xa01755784426c92d1d22a4305319644855ba0204dcc46ed920d74473defffe42 ++ 5 : 0x8017b57031d6bb5a8e830949ca3c04bcaafe196d6de802697c9fb0acb38f2dac ++ 6 : 0x3d458cfe55cc03ea1f443f1562beec8df51c75e14a9fcf9a7234a13f198e7969 ++ 7 : 0x65caf8dd1e0ea7a6347b635d2b379c93b9a1351edc2afc3ecda700e534eb3068 ++ 8 : 0xf5ce9866af7ad692ed3afe642b65992d6f5d93389ddb119b49eef3a9fe54a1c1 ++ 9 : 0xd734aa05ed0dfe770bcf88e0ff26113bb3aab42e2e8b8f287aa84aee86acefa1 +diff --git a/test/integration/fixtures/event-gce-ubuntu-2104-log.bin.yaml b/test/integration/fixtures/event-gce-ubuntu-2104-log.bin.yaml +new file mode 100644 +index 00000000..c1a1ac2d +--- /dev/null ++++ b/test/integration/fixtures/event-gce-ubuntu-2104-log.bin.yaml +@@ -0,0 +1,2004 @@ ++--- ++version: 2 ++events: ++- EventNum: 0 ++ PCRIndex: 0 ++ EventType: EV_NO_ACTION ++ Digest: "0000000000000000000000000000000000000000" ++ EventSize: 41 ++ SpecID: ++ - Signature: Spec ID Event03 ++ platformClass: 0 ++ specVersionMinor: 0 ++ specVersionMajor: 2 ++ specErrata: 0 ++ uintnSize: 2 ++ numberOfAlgorithms: 3 ++ Algorithms: ++ - Algorithm[0]: ++ algorithmId: sha1 ++ digestSize: 20 ++ - Algorithm[1]: ++ algorithmId: sha256 ++ digestSize: 32 ++ - Algorithm[2]: ++ algorithmId: sha384 ++ digestSize: 48 ++ vendorInfoSize: 0 ++- EventNum: 1 ++ PCRIndex: 0 ++ EventType: EV_S_CRTM_VERSION ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "3f708bdbaff2006655b540360e16474c100c1310" ++ - AlgorithmId: sha256 ++ Digest: "d0fcf11a32a8fbf5a4e1a58cd74dd2357d07e7503b5b6afd5a7989a98e17be7f" ++ - AlgorithmId: sha384 ++ Digest: "6d01b1822e08428dcf9234f6a78ac5cb49f49bc1c4393f3717319d8161218bb614df8af7a68c14cea682616589bf0963" ++ EventSize: 48 ++ Event: "47004300450020005600690072007400750061006c0020004600690072006d0077006100720065002000760031000000" ++- EventNum: 2 ++ PCRIndex: 0 ++ EventType: EV_NONHOST_INFO ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "9e8af742718df04092551f27c117723769acfe7e" ++ - AlgorithmId: sha256 ++ Digest: "7b74dea34ce9b49755ab1babe8bac9ad528d3d5addec4e2fa298e3ae68fd276f" ++ - AlgorithmId: sha384 ++ Digest: "a74de6271fa4ad2b7b1846f1d40c28eb103f5ee055abc9883f2ca7d9bedf8ec8c848fce5aa0ad22f1750ce78f5bbf15e" ++ EventSize: 32 ++ Event: "474345204e6f6e486f7374496e666f0000000000000000000000000000000000" ++- EventNum: 3 ++ PCRIndex: 7 ++ EventType: EV_EFI_VARIABLE_DRIVER_CONFIG ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "57cd4dc19442475aa82743484f3b1caa88e142b8" ++ - AlgorithmId: sha256 ++ Digest: "115aa827dbccfb44d216ad9ecfda56bdea620b860a94bed5b7a27bba1c4d02d8" ++ - AlgorithmId: sha384 ++ Digest: "cfa4e2c606f572627bf06d5669cc2ab1128358d27b45bc63ee9ea56ec109cfafb7194006f847a6a74b5eaed6b73332ec" ++ EventSize: 53 ++ Event: ++ VariableName: 8be4df61-93ca-11d2-aa0d-00e098032b8c ++ UnicodeNameLength: 10 ++ VariableDataLength: 1 ++ UnicodeName: SecureBoot ++ VariableData: ++ Enabled: 'No' ++- EventNum: 4 ++ PCRIndex: 7 ++ EventType: EV_EFI_VARIABLE_DRIVER_CONFIG ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "5abd9412abf33e34a79b3d1a93d350e742d8ecd8" ++ - AlgorithmId: sha256 ++ Digest: "0bdbbbe39766588565c5cc98a2aeb6e44a9178c9f1935bd241f38372448418bb" ++ - AlgorithmId: sha384 ++ Digest: "a763553c9606770cd3a5e607f8e0c1ef01cdf2555af753fa3a1f6afe43eb7b2a0af4a6f80fd8e4dd10459668f3b011e0" ++ EventSize: 842 ++ Event: ++ VariableName: 8be4df61-93ca-11d2-aa0d-00e098032b8c ++ UnicodeNameLength: 2 ++ VariableDataLength: 806 ++ UnicodeName: PK ++ VariableData: ++ - SignatureType: a5c059a1-94e4-4aa7-87b5-ab155c2bf072 ++ SignatureListSize: 806 ++ SignatureHeaderSize: 0 ++ SignatureSize: 778 ++ Keys: ++ - SignatureOwner: d281fad2-8d88-47a4-9792-5baa47bb1b89 ++ SignatureData: 308202f6308201dea003020102020900d54a14e867835dea300d06092a864886f70d01010b05003010310e300c06035504030c056e6577706b301e170d3138303832313231353131355a170d3138303932303231353131355a3010310e300c06035504030c056e6577706b30820122300d06092a864886f70d01010105000382010f003082010a0282010100ccb9d5087cf86d6b63ea1702c962f40b93c9fe90e39d7c2c45ce85015252487cfb4326bf0da589b0f2dd13c736e87f6995aa8c6fd0a2236f34c24fb19e6bc6fa151bb894c19c8e70879142ce69210f937dda759fbf31172050c1ef8023fbbe3b56e30ad747ea9d30afd45da9036389a2fc39e196a187c33d0326b2d3a26cecc897d7ceda18eab2953cb3040707ce028acfda3a5110883f25b04b3eccddf9dadb51d591169a1da107bd88e2f112b4f1b30092b7e367e6ad8c6adc273f1ddcd44e6cc116bdefde562ada1359600979d3a97c578dfd519061379d7f7de4b76e95f0529b439edc483c1dcdbc399f12a3e8470d46b836dc92b395a8ce4ae34623584b0203010001a3533051301d0603551d0e041604149850840342f32fdb97822728977431465e60cbc5301f0603551d230418301680149850840342f32fdb97822728977431465e60cbc5300f0603551d130101ff040530030101ff300d06092a864886f70d01010b050003820101008aa11e52113f17aae7bdb024ab8bad32b049fd7b34cb3b8076603d8edcca6b69c25b94e8b8139c8c2cd7bcac7d8259c3b511c42ea26c16a5ec981df003312336f8cb3083673a3a1f2b622117602cbaf52ef9286eca6670582886678f69846c002758259c501405e970b8606e54854aaf086d8f451ba65b34fc264d1c3c81e1bb242e79e013d1c8ac7cd97f3847114381196b335057e3739ea67f87ddc3e24afc737b4b070987c78309365aea698740840c2c94802f3dae3dcb70c40335c2b93e7108b2a3c6add8243f7d60ab186fa0ee7a1b9acf759fe84cabcd5187685833b2d901bc04021038252a984b1d45fb67339b259c3fac1ba44344cccdd3c80b6ee1 ++- EventNum: 5 ++ PCRIndex: 7 ++ EventType: EV_EFI_VARIABLE_DRIVER_CONFIG ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "f0501c79b607cc42e9142ee85a74d9c27669c0e2" ++ - AlgorithmId: sha256 ++ Digest: "622647d8138f5b8a64087d2d2e6682c162097b6c1315a6b7225a6657c256b582" ++ - AlgorithmId: sha384 ++ Digest: "c000a71b17a6054093ed791ece8b1556973ddef6da91bf0aeb5792b3c842423742b52943a58bdf2328a434937e327888" ++ EventSize: 1598 ++ Event: ++ VariableName: 8be4df61-93ca-11d2-aa0d-00e098032b8c ++ UnicodeNameLength: 3 ++ VariableDataLength: 1560 ++ UnicodeName: KEK ++ VariableData: ++ - SignatureType: a5c059a1-94e4-4aa7-87b5-ab155c2bf072 ++ SignatureListSize: 1560 ++ SignatureHeaderSize: 0 ++ SignatureSize: 1532 ++ Keys: ++ - SignatureOwner: d281fad2-8d88-47a4-9792-5baa47bb1b89 ++ SignatureData: 308205e8308203d0a003020102020a610ad188000000000003300d06092a864886f70d01010b0500308191310b3009060355040613025553311330110603550408130a57617368696e67746f6e3110300e060355040713075265646d6f6e64311e301c060355040a13154d6963726f736f667420436f72706f726174696f6e313b3039060355040313324d6963726f736f667420436f72706f726174696f6e205468697264205061727479204d61726b6574706c61636520526f6f74301e170d3131303632343230343132395a170d3236303632343230353132395a308180310b3009060355040613025553311330110603550408130a57617368696e67746f6e3110300e060355040713075265646d6f6e64311e301c060355040a13154d6963726f736f667420436f72706f726174696f6e312a3028060355040313214d6963726f736f667420436f72706f726174696f6e204b454b204341203230313130820122300d06092a864886f70d01010105000382010f003082010a0282010100c4e8b58abfad5726b026c3eae7fb577a44025d070dda4ae5742ae6b00fec6debec7fb9e35a63327c11174f0ee30ba73815938ec6f5e084b19a9b2ce7f5b791d609e1e2c004a8ac301cdf48f306509a64a7517fc8854f8f2086cefe2fe19fff82c0ede9cdcef4536a623a0b43b9e225fdfe05f9d4c414ab11e223898d70b7a41d4decaee59cfa16c2d7c1cbd4e8c42fe599ee248b03ec8df28beac34afb4311120b7eb547926cdce60489ebf53304eb10012a71e5f983133cff25092f687646ffba4fbedcad712a58aafb0ed2793de49b653bcc292a9ffc7259a2ebae92eff6351380c602ece45fcc9d76cdef6392c1af79408479877fe352a8e89d7b07698f150203010001a382014f3082014b301006092b06010401823715010403020100301d0603551d0e0416041462fc43cda03ea4cb6712d25bd955ac7bccb68a5f301906092b0601040182371402040c1e0a00530075006200430041300b0603551d0f040403020186300f0603551d130101ff040530030101ff301f0603551d2304183016801445665243e17e5811bfd64e9e2355083b3a226aa8305c0603551d1f045530533051a04fa04d864b687474703a2f2f63726c2e6d6963726f736f66742e636f6d2f706b692f63726c2f70726f64756374732f4d6963436f725468695061724d6172526f6f5f323031302d31302d30352e63726c306006082b0601050507010104543052305006082b060105050730028644687474703a2f2f7777772e6d6963726f736f66742e636f6d2f706b692f63657274732f4d6963436f725468695061724d6172526f6f5f323031302d31302d30352e637274300d06092a864886f70d01010b05000382020100d48488f514941802ca2a3cfb2a921c0cd7a0d1f1e85266a8eea2b5757a9000aa2da4765aea79b7b9376a517b1064f6e164f20267bef7a81b78bdbace8858640cd657c819a35f05d6dbc6d069ce484b32b7eb5dd230f5c0f5b8ba7807a32bfe9bdb345684ec82caae4125709c6be9fe900fd7961fe5e7941fb22a0c8d4bff2829107bf7d77ca5d176b905c879ed0f90929cc2fedf6f7e6c0f7bd4c145dd345196390fe55e56d8180596f407a642b3a077fd0819f27156cc9f8623a487cba6fd587ed4696715917e81f27f13e50d8b8a3c8784ebe3cebd43e5ad2d84938e6a2b5a7c44fa52aa81c82d1cbbe052df0011f89a3dc160b0e133b5a388d165190a1ae7ac7ca4c182874e38b12f0dc514876ffd8d2ebc39b6e7e6c3e0e4cd2784ef9442ef298b9046413b811b67d8f9435965cb0dbcfd00924ff4753ba7a924fc50414079e02d4f0a6a27766e52ed96697baf0ff78705d045c2ad5314811ffb3004aa373661da4a691b34d868edd602cf6c940cd3cf6c2279adb1f0bc03a24660a9c407c22182f1fdf2e8793260bfd8aca522144bcac1d84beb7d3f5735b2e64f75b4b060032253ae91791dd69b411f15865470b2de0d350f7cb03472ba97603bf079eba2b21c5da216b887c5e91bf6b597256f389fe391fa8a7998c3690eb7a31c200597f8ca14ae00d7c4f3c01410756b34a01bb59960f35cb0c5574e36d23284bf9e ++- EventNum: 6 ++ PCRIndex: 7 ++ EventType: EV_EFI_VARIABLE_DRIVER_CONFIG ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "0915a210049c2781fba26180600fb32217c7c972" ++ - AlgorithmId: sha256 ++ Digest: "62ba0f38c3848a9462f98774c586e9d954e72921b3a5254124b63632ccaf8f5a" ++ - AlgorithmId: sha384 ++ Digest: "3509cd62ba8fbef6fae05bee7c3c1ae528f328120879d37f778c3611f9bbf1eaf362423ad89bc8a69283ad2821c5fc37" ++ EventSize: 3179 ++ Event: ++ VariableName: d719b2cb-3d3a-4596-a3bc-dad00e67656f ++ UnicodeNameLength: 2 ++ VariableDataLength: 3143 ++ UnicodeName: db ++ VariableData: ++ - SignatureType: a5c059a1-94e4-4aa7-87b5-ab155c2bf072 ++ SignatureListSize: 1600 ++ SignatureHeaderSize: 0 ++ SignatureSize: 1572 ++ Keys: ++ - SignatureOwner: d281fad2-8d88-47a4-9792-5baa47bb1b89 ++ SignatureData: 30820610308203f8a003020102020a6108d3c4000000000004300d06092a864886f70d01010b0500308191310b3009060355040613025553311330110603550408130a57617368696e67746f6e3110300e060355040713075265646d6f6e64311e301c060355040a13154d6963726f736f667420436f72706f726174696f6e313b3039060355040313324d6963726f736f667420436f72706f726174696f6e205468697264205061727479204d61726b6574706c61636520526f6f74301e170d3131303632373231323234355a170d3236303632373231333234355a308181310b3009060355040613025553311330110603550408130a57617368696e67746f6e3110300e060355040713075265646d6f6e64311e301c060355040a13154d6963726f736f667420436f72706f726174696f6e312b3029060355040313224d6963726f736f667420436f72706f726174696f6e2055454649204341203230313130820122300d06092a864886f70d01010105000382010f003082010a0282010100a5086c4cc745096a4b0ca4c0877f06750c43015464e0167f07ed927d0bb273bf0c0ac64a4561a0c5162d96d3f52ba0fb4d499b4180903cb954fde6bcd19dc4a4188a7f418a5c59836832bb8c47c9ee71bc214f9a8a7cff443f8d8f32b22648ae75b5eec94c1e4a197ee4829a1d78774d0cb0bdf60fd316d3bcfa2ba551385df5fbbadb7802dbffec0a1b96d583b81913e9b6c07b407be11f2827c9faef565e1ce67e947ec0f044b27939e5dab2628b4dbf3870e2682414c933a40837d558695ed37cedc1045308e74eb02a876308616f631559eab22b79d70c61678a5bfd5ead877fba86674f71581222042222ce8bef547100ce503558769508ee6ab1a201d50203010001a382017630820172301206092b060104018237150104050203010001302306092b060104018237150204160414f8c16bb77f77534af325371d4ea1267b0f207080301d0603551d0e0416041413adbf4309bd82709c8cd54f316ed522988a1bd4301906092b0601040182371402040c1e0a00530075006200430041300b0603551d0f040403020186300f0603551d130101ff040530030101ff301f0603551d2304183016801445665243e17e5811bfd64e9e2355083b3a226aa8305c0603551d1f045530533051a04fa04d864b687474703a2f2f63726c2e6d6963726f736f66742e636f6d2f706b692f63726c2f70726f64756374732f4d6963436f725468695061724d6172526f6f5f323031302d31302d30352e63726c306006082b0601050507010104543052305006082b060105050730028644687474703a2f2f7777772e6d6963726f736f66742e636f6d2f706b692f63657274732f4d6963436f725468695061724d6172526f6f5f323031302d31302d30352e637274300d06092a864886f70d01010b05000382020100350842ff30cccef7760cad1068583529463276277cef124127421b4aaa6d813848591355f3e95834a6160b82aa5dad82da808341068fb41df203b9f31a5d1bf15090f9b3558442281c20bdb2ae5114c5c0ac9795211c90db0ffc779e95739188cabdbd52b905500ddf579ea061ed0de56d25d9400f1740c8cea34ac24daf9a121d08548fbdc7bcb92b3d492b1f32fc6a21694f9bc87e4234fc3606178b8f2040c0b39a257527cdc903a3f65dd1e736547ab950b5d312d107bfbb74dfdc1e8f80d5ed18f42f14166b2fde668cb023e5c784d8edeac13382ad564b182df1689507cdcff072f0aebbdd8685982c214c332bf00f4af06887b592553275a16a826a3ca32511a4edadd704aecbd84059a084d1954c6291221a741d8c3d470e44a6e4b09b3435b1fab653a82c81eca40571c89db8bae81b4466e447540e8e567fb39f1698b286d0683e9023b52f5e8f50858dc68d825f41a1f42e0de099d26c75e4b669b52186fa07d1f6e24dd1daad2c77531e253237c76c52729586b0f135616a19f5b23b815056a6322dfea289f94286271855a182ca5a9bf830985414a64796252fc826e441941a5c023fe596e3855b3c3e3fbb47167255e22522b1d97be703062aa3f71e9046c3000dd61989e30e352762037115a6efd027a0a0593760f83894b8e07870f8ba4c868794f6e0ae0245ee65c2b6a37e69167507929bf5a6bc598358 ++ - SignatureType: a5c059a1-94e4-4aa7-87b5-ab155c2bf072 ++ SignatureListSize: 1543 ++ SignatureHeaderSize: 0 ++ SignatureSize: 1515 ++ Keys: ++ - SignatureOwner: d281fad2-8d88-47a4-9792-5baa47bb1b89 ++ SignatureData: 308205d7308203bfa003020102020a61077656000000000008300d06092a864886f70d01010b0500308188310b3009060355040613025553311330110603550408130a57617368696e67746f6e3110300e060355040713075265646d6f6e64311e301c060355040a13154d6963726f736f667420436f72706f726174696f6e31323030060355040313294d6963726f736f667420526f6f7420436572746966696361746520417574686f726974792032303130301e170d3131313031393138343134325a170d3236313031393138353134325a308184310b3009060355040613025553311330110603550408130a57617368696e67746f6e3110300e060355040713075265646d6f6e64311e301c060355040a13154d6963726f736f667420436f72706f726174696f6e312e302c060355040313254d6963726f736f66742057696e646f77732050726f64756374696f6e20504341203230313130820122300d06092a864886f70d01010105000382010f003082010a0282010100dd0cbba2e42e09e3e7c5f79669bc0021bd693333efad04cb5480ee0683bbc52084d9f7d28bf338b0aba4ad2d7c627905ffe34a3f04352070e3c4e76be09cc03675e98a31dd8d70e5dc37b5744696285b8760232cbfdc47a567f751279e72eb07a6c9b91e3b53357ce5d3ec27b9871cfeb9c923096fa84691c16e963c41d3cba33f5d026a4dec691f25285c36fffd43150a94e019b4cfdfc212e2c25b27ee2778308b5b2a096b22895360162cc0681d53baec49f39d618c85680973445d7da2542bdd79f715cf355d6c1c2b5ccebc9c238b6f6eb526d93613c34fd627aeb9323b41922ce1c7cd77e8aa544ef75c0b048765b44318a8b2e06d1977ec5a24fa48030203010001a38201433082013f301006092b06010401823715010403020100301d0603551d0e04160414a92902398e16c49778cd90f99e4f9ae17c55af53301906092b0601040182371402040c1e0a00530075006200430041300b0603551d0f040403020186300f0603551d130101ff040530030101ff301f0603551d23041830168014d5f656cb8fe8a25c6268d13d94905bd7ce9a18c430560603551d1f044f304d304ba049a0478645687474703a2f2f63726c2e6d6963726f736f66742e636f6d2f706b692f63726c2f70726f64756374732f4d6963526f6f4365724175745f323031302d30362d32332e63726c305a06082b06010505070101044e304c304a06082b06010505073002863e687474703a2f2f7777772e6d6963726f736f66742e636f6d2f706b692f63657274732f4d6963526f6f4365724175745f323031302d30362d32332e637274300d06092a864886f70d01010b0500038202010014fc7c7151a579c26eb2ef393ebc3c520f6e2b3f101373fea868d048a6344d8a960526ee3146906179d6ff382e456bf4c0e528b8da1d8f8adb09d71ac74c0a36666a8cec1bd70490a81817a49bb9e240323676c4c15ac6bfe404c0ea16d3acc368ef62acdd546c503058a6eb7cfe94a74e8ef4ec7c867357c2522173345af3a38a56c804da0709edf88be3cef47e8eaef0f60b8a08fb3fc91d727f53b8ebbe63e0e33d3165b081e5f2accd16a49f3da8b19bc242d090845f541dff89eaba1d47906fb0734e419f409f5fe5a12ab21191738a2128f0cede73395f3eab5c60ecdf0310a8d309e9f4f69685b67f51886647198da2b0123d812a680577bb914c627bb6c107c7ba7a8734030e4b627a99e9cafcce4a37c92da4577c1cfe3ddcb80f5afad6c4b30285023aeab3d96ee4692137de81d1f675190567d393575e291b39c8ee2de1cde445735bd0d2ce7aab1619824658d05e9d81b367af6c35f2bce53f24e235a20a7506f6185699d4782cd1051bebd088019daa10f105dfba7e2c63b7069b2321c4f9786ce2581706362b911203cca4d9f22dbaf9949d40ed1845f1ce8a5c6b3eab03d370182a0a6ae05f47d1d5630a32f2afd7361f2a705ae5425908714b57ba7e8381f0213cf41cc1c5b990930e88459386e9b12099be98cbc595a45d62d6a0630820bd7510777d3df345b99f979fcb57806f33a904cf77a4621c597e ++- EventNum: 7 ++ PCRIndex: 7 ++ EventType: EV_EFI_VARIABLE_DRIVER_CONFIG ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "734424c9fe8fc71716c42096f4b74c88733b175e" ++ - AlgorithmId: sha256 ++ Digest: "9f75b6823bff6af1024a4e2036719cdd548d3cbc2bf1de8e7ef4d0ed01f94bf9" ++ - AlgorithmId: sha384 ++ Digest: "18cc6e01f0c6ea99aa23f8a280423e94ad81d96d0aeb5180504fc0f7a40cb3619dd39bd6a95ec1680a86ed6ab0f9828d" ++ EventSize: 38 ++ Event: ++ VariableName: d719b2cb-3d3a-4596-a3bc-dad00e67656f ++ UnicodeNameLength: 3 ++ VariableDataLength: 0 ++ UnicodeName: dbx ++ VariableData: ++- EventNum: 8 ++ PCRIndex: 7 ++ EventType: EV_SEPARATOR ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "9069ca78e7450a285173431b3e52c5c25299e473" ++ - AlgorithmId: sha256 ++ Digest: "df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119" ++ - AlgorithmId: sha384 ++ Digest: "394341b7182cd227c5c6b07ef8000cdfd86136c4292b8e576573ad7ed9ae41019f5818b4b971c9effc60e1ad9f1289f0" ++ EventSize: 4 ++ Event: "00000000" ++- EventNum: 9 ++ PCRIndex: 1 ++ EventType: EV_EFI_VARIABLE_BOOT ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "b6a0ebef70ae24d9fe913dd0c6d2b4e0d80dc049" ++ - AlgorithmId: sha256 ++ Digest: "415093c7a014e1aba1f54f87ae7747228f31cbf4ed40a68476d48a4651551be3" ++ - AlgorithmId: sha384 ++ Digest: "17ac1475128af46c9ea8f807632543c44415306dd06cca9efc8ecf3913146c3095f47ba61d93bcf0618de8759fc13989" ++ EventSize: 58 ++ Event: ++ VariableName: 8be4df61-93ca-11d2-aa0d-00e098032b8c ++ UnicodeNameLength: 9 ++ VariableDataLength: 8 ++ UnicodeName: BootOrder ++ VariableData: ++ - Boot0003 ++ - Boot0000 ++ - Boot0001 ++ - Boot0002 ++- EventNum: 10 ++ PCRIndex: 1 ++ EventType: EV_EFI_VARIABLE_BOOT ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "dde878cdae43d75a4799189ae872ba915cea8905" ++ - AlgorithmId: sha256 ++ Digest: "81b4afa14fa6dd52a1d528671d197fbdd24ebd7d9c8cf9af83c1341710953b2d" ++ - AlgorithmId: sha384 ++ Digest: "53de75d2a6230b37a0f7dd1cdb8c0b08b4c138c3a53eaa1a547cde643c1fda1e0a0224e444c74e2d62e6c06131c2ee55" ++ EventSize: 166 ++ Event: ++ VariableName: 8be4df61-93ca-11d2-aa0d-00e098032b8c ++ UnicodeNameLength: 8 ++ VariableDataLength: 118 ++ UnicodeName: Boot0003 ++ VariableData: ++ Enabled: 'Yes' ++ FilePathListLength: 98 ++ Description: "ubuntu" ++ DevicePath: '04012a000f0000000028000000000000005003000000000040f7a66eef256942838d1a6f21ebf27f0202040434005c004500460049005c007500620075006e00740075005c007300680069006d007800360034002e0065006600690000007fff0400' ++- EventNum: 11 ++ PCRIndex: 1 ++ EventType: EV_EFI_VARIABLE_BOOT ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "22a4f6ee9af6dba01d3528deb64b74b582fc182b" ++ - AlgorithmId: sha256 ++ Digest: "3197be1e300fa1600d1884c3a4bd4a90a15405bfb546cf2e6cf6095f8c362a93" ++ - AlgorithmId: sha384 ++ Digest: "23ada07f5261f12f34a0bd8e46760962d6b4d576a416f1fea1c64bc656b1d28eacf7047ae6e967c58fd2a98bfa74c298" ++ EventSize: 110 ++ Event: ++ VariableName: 8be4df61-93ca-11d2-aa0d-00e098032b8c ++ UnicodeNameLength: 8 ++ VariableDataLength: 62 ++ UnicodeName: Boot0000 ++ VariableData: ++ Enabled: 'Yes' ++ FilePathListLength: 44 ++ Description: "UiApp" ++ DevicePath: '04071400c9bdb87cebf8344faaea3ee4af6516a10406140021aa2c4614760345836e8ab6f46623317fff0400' ++- EventNum: 12 ++ PCRIndex: 1 ++ EventType: EV_EFI_VARIABLE_BOOT ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "1deddbe8c4412b10f998870099d4067be3da37f4" ++ - AlgorithmId: sha256 ++ Digest: "a8b06578022cffbeffdd688cf545207c1a039630ab6665d72aa98d257cf2db36" ++ - AlgorithmId: sha384 ++ Digest: "9ca06fa06fbd36593f57c008963ad83985714d9674964e447247285bc60b43286e1ce06da50a1dab88f507bb132f4b9e" ++ EventSize: 156 ++ Event: ++ VariableName: 8be4df61-93ca-11d2-aa0d-00e098032b8c ++ UnicodeNameLength: 8 ++ VariableDataLength: 108 ++ UnicodeName: Boot0001 ++ VariableData: ++ Enabled: 'Yes' ++ FilePathListLength: 30 ++ Description: "UEFI Google PersistentDisk " ++ DevicePath: '02010c00d041030a0000000001010600000303020800010000007fff04004eac0881119f594d850ee21a522c59b2' ++- EventNum: 13 ++ PCRIndex: 1 ++ EventType: EV_EFI_VARIABLE_BOOT ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "3197898dc01b3d5e97a774aeca14ec921b1af49f" ++ - AlgorithmId: sha256 ++ Digest: "a13a898b836634a61c2c011e61e7ced4ea1c5aefbdae5a9ada39acaf8497acba" ++ - AlgorithmId: sha384 ++ Digest: "8018a1de7cd3d787648f7a2c781745ca78b47dd9f6a33351ae0e27e06373111a445b67f3d944f3ac5da6344bcbf86907" ++ EventSize: 131 ++ Event: ++ VariableName: 8be4df61-93ca-11d2-aa0d-00e098032b8c ++ UnicodeNameLength: 8 ++ VariableDataLength: 83 ++ UnicodeName: Boot0002 ++ VariableData: ++ Enabled: 'Yes' ++ FilePathListLength: 33 ++ Description: "VirtScsi(0,3,0) Disk" ++ DevicePath: '05011d0002000000566972745363736928302c332c3029204469736b007fff04001100' ++- EventNum: 14 ++ PCRIndex: 4 ++ EventType: EV_EFI_ACTION ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "cd0fdb4531a6ec41be2753ba042637d6e5f7f256" ++ - AlgorithmId: sha256 ++ Digest: "3d6772b4f84ed47595d72a2c4c5ffd15f5bb72c7507fe26f2aaee2c69d5633ba" ++ - AlgorithmId: sha384 ++ Digest: "77a0dab2312b4e1e57a84d865a21e5b2ee8d677a21012ada819d0a98988078d3d740f6346bfe0abaa938ca20439a8d71" ++ EventSize: 40 ++ Event: |- ++ Calling EFI Application from Boot Option ++- EventNum: 15 ++ PCRIndex: 0 ++ EventType: EV_SEPARATOR ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "9069ca78e7450a285173431b3e52c5c25299e473" ++ - AlgorithmId: sha256 ++ Digest: "df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119" ++ - AlgorithmId: sha384 ++ Digest: "394341b7182cd227c5c6b07ef8000cdfd86136c4292b8e576573ad7ed9ae41019f5818b4b971c9effc60e1ad9f1289f0" ++ EventSize: 4 ++ Event: "00000000" ++- EventNum: 16 ++ PCRIndex: 1 ++ EventType: EV_SEPARATOR ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "9069ca78e7450a285173431b3e52c5c25299e473" ++ - AlgorithmId: sha256 ++ Digest: "df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119" ++ - AlgorithmId: sha384 ++ Digest: "394341b7182cd227c5c6b07ef8000cdfd86136c4292b8e576573ad7ed9ae41019f5818b4b971c9effc60e1ad9f1289f0" ++ EventSize: 4 ++ Event: "00000000" ++- EventNum: 17 ++ PCRIndex: 2 ++ EventType: EV_SEPARATOR ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "9069ca78e7450a285173431b3e52c5c25299e473" ++ - AlgorithmId: sha256 ++ Digest: "df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119" ++ - AlgorithmId: sha384 ++ Digest: "394341b7182cd227c5c6b07ef8000cdfd86136c4292b8e576573ad7ed9ae41019f5818b4b971c9effc60e1ad9f1289f0" ++ EventSize: 4 ++ Event: "00000000" ++- EventNum: 18 ++ PCRIndex: 3 ++ EventType: EV_SEPARATOR ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "9069ca78e7450a285173431b3e52c5c25299e473" ++ - AlgorithmId: sha256 ++ Digest: "df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119" ++ - AlgorithmId: sha384 ++ Digest: "394341b7182cd227c5c6b07ef8000cdfd86136c4292b8e576573ad7ed9ae41019f5818b4b971c9effc60e1ad9f1289f0" ++ EventSize: 4 ++ Event: "00000000" ++- EventNum: 19 ++ PCRIndex: 4 ++ EventType: EV_SEPARATOR ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "9069ca78e7450a285173431b3e52c5c25299e473" ++ - AlgorithmId: sha256 ++ Digest: "df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119" ++ - AlgorithmId: sha384 ++ Digest: "394341b7182cd227c5c6b07ef8000cdfd86136c4292b8e576573ad7ed9ae41019f5818b4b971c9effc60e1ad9f1289f0" ++ EventSize: 4 ++ Event: "00000000" ++- EventNum: 20 ++ PCRIndex: 5 ++ EventType: EV_SEPARATOR ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "9069ca78e7450a285173431b3e52c5c25299e473" ++ - AlgorithmId: sha256 ++ Digest: "df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119" ++ - AlgorithmId: sha384 ++ Digest: "394341b7182cd227c5c6b07ef8000cdfd86136c4292b8e576573ad7ed9ae41019f5818b4b971c9effc60e1ad9f1289f0" ++ EventSize: 4 ++ Event: "00000000" ++- EventNum: 21 ++ PCRIndex: 6 ++ EventType: EV_SEPARATOR ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "9069ca78e7450a285173431b3e52c5c25299e473" ++ - AlgorithmId: sha256 ++ Digest: "df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119" ++ - AlgorithmId: sha384 ++ Digest: "394341b7182cd227c5c6b07ef8000cdfd86136c4292b8e576573ad7ed9ae41019f5818b4b971c9effc60e1ad9f1289f0" ++ EventSize: 4 ++ Event: "00000000" ++- EventNum: 22 ++ PCRIndex: 5 ++ EventType: EV_EFI_GPT_EVENT ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "50eecfcec250c8b1d356a9217e0dd79c0f2a6e1a" ++ - AlgorithmId: sha256 ++ Digest: "2d1e69a4adbf5f58c957fdb6aedc86ea037a0f5016003c7513ada83525852362" ++ - AlgorithmId: sha384 ++ Digest: "72d16133b50db63de38da942d1ae8de3e68339b22ef23a6c15d0209627d18f26c94c9dd2aa2a5f210231742ca9f1ae2d" ++ EventSize: 484 ++ Event: ++ Header: ++ Signature: "EFI PART" ++ Revision: 0x10000 ++ HeaderSize: 92 ++ HeaderCRC32: 0x7e4c86d1 ++ MyLBA: 0x1 ++ AlternateLBA: 0x13fffff ++ FirstUsableLBA: 0x22 ++ LastUsableLBA: 0x13fffde ++ DiskGUID: cb2b7180-7317-44b2-b13d-ea395dabb1a7 ++ PartitionEntryLBA: 0x2 ++ NumberOfPartitionEntry: 128 ++ SizeOfPartitionEntry: 128 ++ PartitionEntryArrayCRC32: 0x4f717292 ++ NumberOfPartitions: 3 ++ Partitions: ++ - PartitionTypeGUID: 0fc63daf-8483-4772-8e79-3d69d8477de4 ++ UniquePartitionGUID: bf817bdf-6a3a-4221-8edb-2c1ca7c5537f ++ StartingLBA: 0x37800 ++ EndingLBA: 0x13fffde ++ Attributes: 0x0 ++ PartitionName: "" ++ - PartitionTypeGUID: 21686148-6449-6e6f-744e-656564454649 ++ UniquePartitionGUID: 9faed655-11db-4854-bb3c-87170ce39bd6 ++ StartingLBA: 0x800 ++ EndingLBA: 0x27ff ++ Attributes: 0x0 ++ PartitionName: "" ++ - PartitionTypeGUID: c12a7328-f81f-11d2-ba4b-00a0c93ec93b ++ UniquePartitionGUID: 6ea6f740-25ef-4269-838d-1a6f21ebf27f ++ StartingLBA: 0x2800 ++ EndingLBA: 0x377ff ++ Attributes: 0x0 ++ PartitionName: "" ++- EventNum: 23 ++ PCRIndex: 4 ++ EventType: EV_EFI_BOOT_SERVICES_APPLICATION ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "92e6ec17937f600b9ec7f23adf4ea5553b4e2364" ++ - AlgorithmId: sha256 ++ Digest: "d99c93fcb042dbe52707bbde371c75fcf081dd5b0c88a195d44cc57536f6f521" ++ - AlgorithmId: sha384 ++ Digest: "d8811e9c08119168b156255c6d695614d1593422bc5044186d29c1aaaa86fff0a633f324ac1ac1122e547479ce50a75a" ++ EventSize: 156 ++ Event: ++ ImageLocationInMemory: 0xbdde4018 ++ ImageLengthInMemory: 955072 ++ ImageLinkTimeAddress: 0x0 ++ LengthOfDevicePath: 124 ++ DevicePath: '02010c00d041030a00000000010106000003030208000100000004012a000f0000000028000000000000005003000000000040f7a66eef256942838d1a6f21ebf27f0202040434005c004500460049005c007500620075006e00740075005c007300680069006d007800360034002e0065006600690000007fff0400' ++- EventNum: 24 ++ PCRIndex: 14 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "68bcec6001e5c3f2fbdd9aa9aa91da92fc893f29" ++ - AlgorithmId: sha256 ++ Digest: "2f196b05a0564764cca674175ecd97898e74ed3891c7c63ce6f17dc82603164a" ++ - AlgorithmId: sha384 ++ Digest: "053357ea65185f010b8caa1fc265cfd5e80c7cc781254fa3f1e5ea9d345a87003cf761472a2f0423f15297f55cfe248f" ++ EventSize: 8 ++ Event: ++ String: |- ++ "MokList\0" ++- EventNum: 25 ++ PCRIndex: 14 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "e284bf593c56945bcb057c6b6470a2fe577ac1be" ++ - AlgorithmId: sha256 ++ Digest: "6c29c7fb3c9e800e1d16bed2fa9ca691feacbc308959cdefaef04a5a4ae213c4" ++ - AlgorithmId: sha384 ++ Digest: "5978bf6aa483f562bf18f46e1e865e35f3b6f4284733c7444a060602c0e9910397f4d6dfcaf7082894ce849077f128c1" ++ EventSize: 9 ++ Event: ++ String: |- ++ "MokListX\0" ++- EventNum: 26 ++ PCRIndex: 7 ++ EventType: EV_EFI_VARIABLE_AUTHORITY ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "15875d39b8872f8aff3a92fc9f9e40ac75268e04" ++ - AlgorithmId: sha256 ++ Digest: "922e939a5565798a5ef12fe09d8b49bf951a8e7f89a0cca7a51636693d41a34d" ++ - AlgorithmId: sha384 ++ Digest: "f143e2948d63fcd3442e841bb36a7e180871f0a8946541961fe9d12e70d0727874600956264dba531e2edd8729c5eb38" ++ EventSize: 68 ++ Event: ++ VariableName: 605dab50-e046-4300-abb6-3dd810dd8b23 ++ UnicodeNameLength: 9 ++ VariableDataLength: 18 ++ UnicodeName: SbatLevel ++ VariableData: ++ - SignatureOwner: 74616273-312c-322c-3032-313033303231 ++ SignatureData: 380a ++- EventNum: 27 ++ PCRIndex: 4 ++ EventType: EV_EFI_BOOT_SERVICES_APPLICATION ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "4f9604e61091095594c206c8a404afe187a92586" ++ - AlgorithmId: sha256 ++ Digest: "b0a836fec2faf4a9bea0e1a5f1945bc86ddc03ac98ce0ae172ed9b1e536d7595" ++ - AlgorithmId: sha384 ++ Digest: "bbcdda8a6d872385b10802434eb8de1ac7b92dbaddf18bc1d7ea24fcc71b45291db5cc7b930a29c93405d6aecdb70683" ++ EventSize: 88 ++ Event: ++ ImageLocationInMemory: 0xbd23a018 ++ ImageLengthInMemory: 1718144 ++ ImageLinkTimeAddress: 0x0 ++ LengthOfDevicePath: 56 ++ DevicePath: '040434005c004500460049005c007500620075006e00740075005c0067007200750062007800360034002e0065006600690000007fff0400' ++- EventNum: 28 ++ PCRIndex: 9 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "af62033e4dacde359d80f7b1720e3dbcdb5f35f7" ++ - AlgorithmId: sha256 ++ Digest: "f604450f3c810e0dd17b5136aced8c612ce8ec6d8cefa7fcf705cce8e69908df" ++ - AlgorithmId: sha384 ++ Digest: "1ef3cc75a524bfb7ea72a5d7c139b75a3e8da87c724a2b54aff9122a9c4706ff0fc812af1bc2ea930fd238104d798325" ++ EventSize: 32 ++ Event: ++ String: |- ++ "(hd0,gpt15)/EFI/ubuntu/grub.cfg\0" ++- EventNum: 29 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "4e2b524b079af00b681bf224f75c3570ef603e6a" ++ - AlgorithmId: sha256 ++ Digest: "211e321017e1e3b8976b64602f33c267ebe925d7d27f0eacc7102596b545a0a4" ++ - AlgorithmId: sha384 ++ Digest: "ec7c3b4aae280d870cf4b970b521e3351f57b2cd69b5e6696cc3a6014b258692d330c6fec08298ab66adb3d386624803" ++ EventSize: 67 ++ Event: ++ String: |- ++ "grub_cmd: search.fs_uuid c73d8355-1ac9-41b4-8edf-c1c1a9d5bd6a root\0" ++- EventNum: 30 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "c90fdbd8bc3928f93d41ef4176a3415df2d584eb" ++ - AlgorithmId: sha256 ++ Digest: "679845b798116003dcee938a7e87a07c7b7dd42b5349e54632bbfa82a740541b" ++ - AlgorithmId: sha384 ++ Digest: "c72923093dd8b083105397c639763c931800fe96d4e379d980d043c7f8aba3c8f60dada07d9b2a8cebd9762638211365" ++ EventSize: 42 ++ Event: ++ String: |- ++ "grub_cmd: set prefix=(hd0,gpt1)/boot/grub\0" ++- EventNum: 31 ++ PCRIndex: 9 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "7f7e85909fb37d150f57822c0ad3b636e7853aff" ++ - AlgorithmId: sha256 ++ Digest: "5137257cdcec140bce7e0c83c1000df3f7ecf18de11bde46b8d32f49ba657791" ++ - AlgorithmId: sha384 ++ Digest: "0ab1f13106b96ec5605b11e504cb8d3a597747f51fe0332a74408c7f9065cb6b654ef2a8c90afa6b8755bcfc5a1f1182" ++ EventSize: 44 ++ Event: ++ String: |- ++ "(hd0,gpt1)/boot/grub/x86_64-efi/command.lst\0" ++- EventNum: 32 ++ PCRIndex: 9 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "f091655c7ac7314eb0df21931415de47628d621f" ++ - AlgorithmId: sha256 ++ Digest: "32fc7f5de8c0a5dc0b1e7eb609ca31a77eb3475539e1d97a4543dca1b9b26c57" ++ - AlgorithmId: sha384 ++ Digest: "73e17c3ea36dea576f107728630b937f74006954f2be9143eb124b76706173d7d9a68c32e7c90f74b0ff5ced89603914" ++ EventSize: 39 ++ Event: ++ String: |- ++ "(hd0,gpt1)/boot/grub/x86_64-efi/fs.lst\0" ++- EventNum: 33 ++ PCRIndex: 9 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "ff00d28114398cf1a052329494d63aceeb8ff29a" ++ - AlgorithmId: sha256 ++ Digest: "1b766f38a94927fe9b7bc1e809f0363e778e14c601e800faea271a2e75d3fc43" ++ - AlgorithmId: sha384 ++ Digest: "c7d01ae51404411a65b0d26a601a01d63b914e7477825d5ecd87840a36434c6bd956725441b82a66b6581c36bd38fad4" ++ EventSize: 43 ++ Event: ++ String: |- ++ "(hd0,gpt1)/boot/grub/x86_64-efi/crypto.lst\0" ++- EventNum: 34 ++ PCRIndex: 9 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "66b726c6d64bc109d3948a9528f502ea94938ef4" ++ - AlgorithmId: sha256 ++ Digest: "46f888c52f36baf9b62d60bc8d06426a314aad5a0ff86a4362a91c2512a1df9c" ++ - AlgorithmId: sha384 ++ Digest: "800824fd124df10eeafd6bba36c596c33afbb527e3006b58c19fadced47b03c8ae92f89ef3caef2346b3bd545cfdd8de" ++ EventSize: 45 ++ Event: ++ String: |- ++ "(hd0,gpt1)/boot/grub/x86_64-efi/terminal.lst\0" ++- EventNum: 35 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "1284bee568af2e320e6a03dce30144182be7d51e" ++ - AlgorithmId: sha256 ++ Digest: "874d063ee6d5776d8474fcbaed76cdd44f32572d8454338fef7138347e866d7d" ++ - AlgorithmId: sha384 ++ Digest: "ab8c53accc47ffef55c4b607725b4bdac7eb63e4ed7ec2d56550eb0b974ae546b5dfb6b119b9c6569f4737ad9ad79dbb" ++ EventSize: 51 ++ Event: ++ String: |- ++ "grub_cmd: configfile (hd0,gpt1)/boot/grub/grub.cfg\0" ++- EventNum: 36 ++ PCRIndex: 9 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "35a61aeb146c7d0f13fab9d135f969926e515610" ++ - AlgorithmId: sha256 ++ Digest: "60b17900690b284a561dfd1b23c4ea861dc78517a04be80f0419ce3e2da41692" ++ - AlgorithmId: sha384 ++ Digest: "b6530120db1db3760f49810e897b016f067d3452a74e6b83d3c059034884949fe1bcd3e8b99e25c5cda3a5d36909d9a1" ++ EventSize: 30 ++ Event: ++ String: |- ++ "(hd0,gpt1)/boot/grub/grub.cfg\0" ++- EventNum: 37 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "3e5cd7ea0fdc2e2b2f956d41f9090ee3732fb833" ++ - AlgorithmId: sha256 ++ Digest: "7e2b3493baa3f9e4c6a836282d1e66b5855692169dee44d46fe20d11dbc17381" ++ - AlgorithmId: sha384 ++ Digest: "56bbcd8647a6e5bfe7c8716f3610cefff4aca1b4c31def4ad9f47f7a6cee68bb831fe474026630bed7d053e12aa9751e" ++ EventSize: 46 ++ Event: ++ String: |- ++ "grub_cmd: [ -s (hd0,gpt1)/boot/grub/grubenv ]\0" ++- EventNum: 38 ++ PCRIndex: 9 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "cff2c89594431f0c3c508fd97f8bb4d2eca36937" ++ - AlgorithmId: sha256 ++ Digest: "2d963f969fbd116484ad1f6aa6b6b3eae710aa4c5e759f7d7ce58eb0565e9db6" ++ - AlgorithmId: sha384 ++ Digest: "6c6e9ced736b9b1f2d98f0e00af20032817aa9f0eb92cc19ca6d8de7d76a2d612fcdd02e21cd9bd86a1c031be6378884" ++ EventSize: 29 ++ Event: ++ String: |- ++ "(hd0,gpt1)/boot/grub/grubenv\0" ++- EventNum: 39 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "3c4e9b1198ecc160aff6022c0f96b5b22fab1469" ++ - AlgorithmId: sha256 ++ Digest: "0e3a17e0c48e42d79f4d1576e7f787c911239510586505c326143b9b268bdd65" ++ - AlgorithmId: sha384 ++ Digest: "541c82f4046719d9bda2729278af735f44e40d779dc860b69b6fc9e4ddc3d1233830fb101dc487f9524ccf5aa152f5f5" ++ EventSize: 32 ++ Event: ++ String: |- ++ "grub_cmd: set have_grubenv=true\0" ++- EventNum: 40 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "453dee6ce82bd80ea89bd8085724ae9784ff0f1b" ++ - AlgorithmId: sha256 ++ Digest: "f8b99f77983990e8804864cade91f361b5b6600cc2832febaef878ac8b44d27e" ++ - AlgorithmId: sha384 ++ Digest: "b0f5c156e035813aeb78d5ec47d4a6c2d0651c884384987907340fd18b45384cdab8cb460b5475427c848868b132887b" ++ EventSize: 19 ++ Event: ++ String: |- ++ "grub_cmd: load_env\0" ++- EventNum: 41 ++ PCRIndex: 9 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "cff2c89594431f0c3c508fd97f8bb4d2eca36937" ++ - AlgorithmId: sha256 ++ Digest: "2d963f969fbd116484ad1f6aa6b6b3eae710aa4c5e759f7d7ce58eb0565e9db6" ++ - AlgorithmId: sha384 ++ Digest: "6c6e9ced736b9b1f2d98f0e00af20032817aa9f0eb92cc19ca6d8de7d76a2d612fcdd02e21cd9bd86a1c031be6378884" ++ EventSize: 29 ++ Event: ++ String: |- ++ "(hd0,gpt1)/boot/grub/grubenv\0" ++- EventNum: 42 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "b4e99b40d2dddcdf68e8aa439e18dd5ebacbffc9" ++ - AlgorithmId: sha256 ++ Digest: "d2b92983e66aff99982fe5af55e0f9277dc0f8879934e17b00147e1f4156179e" ++ - AlgorithmId: sha384 ++ Digest: "1b2d9a89f98d0d60ee47648b016de86c2c7840b26bd31248be74c3146a07e0c83e889887fe212a121943ddbdab5d3246" ++ EventSize: 19 ++ Event: ++ String: |- ++ "grub_cmd: [ = 2 ]\0" ++- EventNum: 43 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "05ba452bf00b7f880528b35d02e9077f89c08538" ++ - AlgorithmId: sha256 ++ Digest: "82a4a14e43a4f76118ae63285d0af05af139f260fae57b2c20737a1c1df3382b" ++ - AlgorithmId: sha384 ++ Digest: "ae1061c45b3c25c89cea3f7ddee4640f8e776086f7d62fb4b9c1d56148a1be04bf11de6a395344567b538c6df06d079e" ++ EventSize: 19 ++ Event: ++ String: |- ++ "grub_cmd: [ = 1 ]\0" ++- EventNum: 44 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "710cbf237c9abd071ca91c4104324800bec7b0fb" ++ - AlgorithmId: sha256 ++ Digest: "ce8124bc1b0fbc0cb5cd47338ca0c7d5f5446d79936e443a201d96b192a7bd65" ++ - AlgorithmId: sha384 ++ Digest: "222e2570e52f72bb99f3ef97cb751dd4de0f3a545583ea4d66015680673f74bb27031bd0ca5cb3b58a25ec78ce8f4851" ++ EventSize: 15 ++ Event: ++ String: |- ++ "grub_cmd: [ ]\0" ++- EventNum: 45 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "75409120452bbbee30abe289af973ecdd7e0ef6b" ++ - AlgorithmId: sha256 ++ Digest: "3a118940bf2675007df3368cb6d45cf2756f328d3e75daf69a971dd21bd1bc58" ++ - AlgorithmId: sha384 ++ Digest: "6bf6242f8eb0ca7217c6e3a5d4c6a62e5858440264e84696cd67306ef2db8cf625952d5fd9061daadefd181039479740" ++ EventSize: 24 ++ Event: ++ String: |- ++ "grub_cmd: set default=0\0" ++- EventNum: 46 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "f5b067e59c163f67b19b836fbee9e8a487a19cdd" ++ - AlgorithmId: sha256 ++ Digest: "4568361fb7581b31a42d645ab534302fb9f742adaa37b7fde152215d69e259fb" ++ - AlgorithmId: sha384 ++ Digest: "10b1f8d036aefd32ce770311ea00426e147b3daee378dd0679aeda81963b2c5389178787962ce9ea08e5571701cce94a" ++ EventSize: 22 ++ Event: ++ String: |- ++ "grub_cmd: [ xy = xy ]\0" ++- EventNum: 47 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "bd5209e50c09650ffcf5c2d12a8be8277e438023" ++ - AlgorithmId: sha256 ++ Digest: "09f17d4dfb4b97f16246632c21b1ac2125c95c148899eee5069fbb1b34365513" ++ - AlgorithmId: sha384 ++ Digest: "8661953f518c898cb9407c831fa60654fdaf9804d25d99cbc31fd15255b532bad044c390b7a63b2961eed1e9beac6603" ++ EventSize: 35 ++ Event: ++ String: |- ++ "grub_cmd: menuentry_id_option=--id\0" ++- EventNum: 48 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "6248599bae0d78ccbda185ed2fce0182ed41e297" ++ - AlgorithmId: sha256 ++ Digest: "4af0bb370c9e3b7982027d02e04c935e32d52b528007476bfc50d36d1b86815e" ++ - AlgorithmId: sha384 ++ Digest: "952dce390ea9e283ee7b3defb664fc8d7f942a9598bd8b6d20a9843b28786ec7c27f6bafa28c0c16013cfb88dbb7b568" ++ EventSize: 37 ++ Event: ++ String: |- ++ "grub_cmd: export menuentry_id_option\0" ++- EventNum: 49 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "710cbf237c9abd071ca91c4104324800bec7b0fb" ++ - AlgorithmId: sha256 ++ Digest: "ce8124bc1b0fbc0cb5cd47338ca0c7d5f5446d79936e443a201d96b192a7bd65" ++ - AlgorithmId: sha384 ++ Digest: "222e2570e52f72bb99f3ef97cb751dd4de0f3a545583ea4d66015680673f74bb27031bd0ca5cb3b58a25ec78ce8f4851" ++ EventSize: 15 ++ Event: ++ String: |- ++ "grub_cmd: [ ]\0" ++- EventNum: 50 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "7dc272da02b00e0ee2958961bb99a2e3196ec24a" ++ - AlgorithmId: sha256 ++ Digest: "df24f1cae6b428fdd09bc14b06df255f93060ff05d56c3127724168596f73d5f" ++ - AlgorithmId: sha384 ++ Digest: "5cd34cee9ce24ca6e401a80ecb4654031bfbcfe5c5b21c19f2d990676f8453e89a69ecf4a153c2b025ff7ba4b03a2e2a" ++ EventSize: 33 ++ Event: ++ String: |- ++ "grub_cmd: terminal_input console\0" ++- EventNum: 51 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "155e201c47f534b1201190d61e9d178a525540e6" ++ - AlgorithmId: sha256 ++ Digest: "fed7c930939012174a23271f9fa177a39891cd1baf6ccd22bccce96acd0514d1" ++ - AlgorithmId: sha384 ++ Digest: "a47d5422ef1405120a2246a55bc4e6f60de6f4aa0410dc205d5e80ba9dce7ab480ac93a026d1751202b2e68ba3a0694c" ++ EventSize: 34 ++ Event: ++ String: |- ++ "grub_cmd: terminal_output console\0" ++- EventNum: 52 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "05ba452bf00b7f880528b35d02e9077f89c08538" ++ - AlgorithmId: sha256 ++ Digest: "82a4a14e43a4f76118ae63285d0af05af139f260fae57b2c20737a1c1df3382b" ++ - AlgorithmId: sha384 ++ Digest: "ae1061c45b3c25c89cea3f7ddee4640f8e776086f7d62fb4b9c1d56148a1be04bf11de6a395344567b538c6df06d079e" ++ EventSize: 19 ++ Event: ++ String: |- ++ "grub_cmd: [ = 1 ]\0" ++- EventNum: 53 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "f5b067e59c163f67b19b836fbee9e8a487a19cdd" ++ - AlgorithmId: sha256 ++ Digest: "4568361fb7581b31a42d645ab534302fb9f742adaa37b7fde152215d69e259fb" ++ - AlgorithmId: sha384 ++ Digest: "10b1f8d036aefd32ce770311ea00426e147b3daee378dd0679aeda81963b2c5389178787962ce9ea08e5571701cce94a" ++ EventSize: 22 ++ Event: ++ String: |- ++ "grub_cmd: [ xy = xy ]\0" ++- EventNum: 54 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "58795e8592d9ff3b6b39add68ddba958eff547a2" ++ - AlgorithmId: sha256 ++ Digest: "61caa54fc24ba8b3e79be63f375a08f374244e4ede8e0d6080060aa3fa5f7fbb" ++ - AlgorithmId: sha384 ++ Digest: "9f76cda76fd82e4b45a00f258357a71046172ea7dee437017ad0d94b489f7d8b021f121044e7886542f5dc8a1cf15617" ++ EventSize: 35 ++ Event: ++ String: |- ++ "grub_cmd: set timeout_style=hidden\0" ++- EventNum: 55 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "9d31b8e60e42fe9361ef5990996db527824f9022" ++ - AlgorithmId: sha256 ++ Digest: "cdf593a612aaaaeb957243bb1e8e27d96f4c726ec523cd38290382bdf1faf54d" ++ - AlgorithmId: sha384 ++ Digest: "9c452ba5b9a6104c8ed813cc0692b7e69c76c0ff1ce99fc0f38940f540b465b86b1e8f556885eb5acce9f10e6cef1b0d" ++ EventSize: 26 ++ Event: ++ String: |- ++ "grub_cmd: set timeout=0.1\0" ++- EventNum: 56 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "55cfd6463ef334abb6b48080b33ec063a9c051eb" ++ - AlgorithmId: sha256 ++ Digest: "cfa4676ffe751d1547e77a8d66a033b59b3eed3400d9b3a305d2601891ab0e59" ++ - AlgorithmId: sha384 ++ Digest: "934aafc99cb0a7cb1ef83c5a1eb01c31d60927f08b2ff72d2c05e0b4660ed1dd1e139738b3c5630502e629e8f593d7af" ++ EventSize: 22 ++ Event: ++ String: |- ++ "grub_cmd: [ -n true ]\0" ++- EventNum: 57 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "7a86009dc1f23867d8951bb95471618bde2d1918" ++ - AlgorithmId: sha256 ++ Digest: "2436afe3cb181454ab807d6ca526ed3132dc1759787f9ed3f2f148e86948e978" ++ - AlgorithmId: sha384 ++ Digest: "4cf726ecd422b56df71dca2f377cb2a4ee6d9ca1f5b44096f8fc6607b73b56d0effc393100c506a93327511a72cbf707" ++ EventSize: 18 ++ Event: ++ String: |- ++ "grub_cmd: [ -n ]\0" ++- EventNum: 58 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "5e1cea54b6044a1b5341cccdf101a5f9fbfc101b" ++ - AlgorithmId: sha256 ++ Digest: "681e45c7ba76e7c4bec5a79dead78461eb175b67656e03f4809aa012d275c823" ++ - AlgorithmId: sha384 ++ Digest: "21140b393213229d532701ca514452dbb33a28d37d1a62f424aadf68d3b87817cebd7f6cd183ebc2191ff427a5cc11ef" ++ EventSize: 51 ++ Event: ++ String: |- ++ "grub_cmd: set initrdless_boot_fallback_triggered=0\0" ++- EventNum: 59 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "eb11507f1980d7ea78190040b49c79cf3a6c6b93" ++ - AlgorithmId: sha256 ++ Digest: "01ffa4a5eae6be98974c1b75e839f442eed9d9f5c1d65c03d355e04fc81d2873" ++ - AlgorithmId: sha384 ++ Digest: "8e0666266caf626cedc801ac78249b0e70cca2936ae65826a8b0baaca9c6aa9bc84e1156b02b7749ac1e7ad797c6fe6a" ++ EventSize: 54 ++ Event: ++ String: |- ++ "grub_cmd: save_env initrdless_boot_fallback_triggered\0" ++- EventNum: 60 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "0d570854895a5a9ce25dc6c25026278c2d1a6367" ++ - AlgorithmId: sha256 ++ Digest: "207cda95fd859189d016c7c2cc03b9c05672984589e4809e1dcee665d629cf7d" ++ - AlgorithmId: sha384 ++ Digest: "697c60cddf7d386b91a21c6bd5005181777d52d625ae27fd61036ef4424c57d4b2b97552b484177d628761a396148dac" ++ EventSize: 44 ++ Event: ++ String: |- ++ "grub_cmd: set menu_color_normal=white/black\0" ++- EventNum: 61 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "d4a516aec1bccafec65420d98fcb243aa465d837" ++ - AlgorithmId: sha256 ++ Digest: "6f18799fe0ecb5c4bb4c0695a3094dc9841c940c3b463e14c25e444246348a2a" ++ - AlgorithmId: sha384 ++ Digest: "4eeef8dcc4a61638868d1dca696cad45913d3922b90ea7f264ba78f02e1f80095c9b668229ecff972c4cc586b14d9870" ++ EventSize: 52 ++ Event: ++ String: |- ++ "grub_cmd: set menu_color_highlight=black/light-gray\0" ++- EventNum: 62 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "f0ea058e7e94c1de682ed36c367c8e02c8a1fbd9" ++ - AlgorithmId: sha256 ++ Digest: "d892fc45719b7363b8121ef243a8abb7577db336676532876620fcc24c1d45a2" ++ - AlgorithmId: sha384 ++ Digest: "d280f592667201a4b811f185cfab0e290407db1982f30ff5036aa124ca64e5710bd457864b3f40924afd53452ee37daf" ++ EventSize: 60 ++ Event: ++ String: |- ++ "grub_cmd: set partuuid=bf817bdf-6a3a-4221-8edb-2c1ca7c5537f\0" ++- EventNum: 63 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "423287a40b914bb51497db32f9086697d1fb9e12" ++ - AlgorithmId: sha256 ++ Digest: "f0b4b3c23103828ea2fa05044a2cfce5efc9d15e99ffb9c61d7349c1303741af" ++ - AlgorithmId: sha384 ++ Digest: "7a5ac0796fa82f4efa88b6213985b213d878e64988066a9958760166cf85c5f4778a00a3cf84952c18a6cad3f38553cb" ++ EventSize: 20 ++ Event: ++ String: |- ++ "grub_cmd: [ != 1 ]\0" ++- EventNum: 64 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "292cce90d28e1736a8e914e8540d9bf0e3cb3691" ++ - AlgorithmId: sha256 ++ Digest: "5d884e52d0e191d8821b77c7a853a89a2d05844743c8e98187b474d800f1c7e6" ++ - AlgorithmId: sha384 ++ Digest: "a5e07cfc9671766b7f9bb83873c6ff4bed7dfbb927d5b0273d2aebb930dba4630c372075a092dbd7c5495fafa7453ed0" ++ EventSize: 55 ++ Event: ++ String: |- ++ "grub_cmd: [ -e (hd0,gpt1)/boot/grub/gfxblacklist.txt ]\0" ++- EventNum: 65 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "3c478e70547a82a4000a6941b85af79242734271" ++ - AlgorithmId: sha256 ++ Digest: "c08a8b76f5bc9ce36f6af0d203c7c1d54be9cee4c74c7e4d52bf7821edcca28f" ++ - AlgorithmId: sha384 ++ Digest: "1754fc7f385a671597fbf1a2ad0c93c6748d29da5eaee6f40f7b7c5a2611c990da2d88620ecd1a866d03f89ec82a556b" ++ EventSize: 58 ++ Event: ++ String: |- ++ "grub_cmd: hwmatch (hd0,gpt1)/boot/grub/gfxblacklist.txt 3\0" ++- EventNum: 66 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "6bcfa9ba9fe5adc995142ad3074b66402dc0a7a6" ++ - AlgorithmId: sha256 ++ Digest: "a36de0798eb0ac94d6edf367749c0ced605c5b92d74b83312f94132434f549e5" ++ - AlgorithmId: sha384 ++ Digest: "5270439d089d97e0a03b28b358a87c3929665c1b6c93daf7a8b71d8cd5a52952ba821a0c2d440038628cda61712de01d" ++ EventSize: 18 ++ Event: ++ String: |- ++ "grub_cmd: [ = 0 ]\0" ++- EventNum: 67 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "68977a27d93c5e2836f7c54d624dd48feec0f67d" ++ - AlgorithmId: sha256 ++ Digest: "f249e761a7e37510f8acf59142c117444c3aa1bc5a719ae7eab60d3b7109180a" ++ - AlgorithmId: sha384 ++ Digest: "e16fb8446b3d8cdc0e33185504b69e3d00d9646d5c71c42311c1dbaa996451a9f1910b70f8fa1d97e6a4ec3abe6bf48d" ++ EventSize: 34 ++ Event: ++ String: |- ++ "grub_cmd: set linux_gfx_mode=keep\0" ++- EventNum: 68 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "9deef0fa444e59d7a08e615f25628826e7feddf9" ++ - AlgorithmId: sha256 ++ Digest: "22e041251eb54eeb3270245759aa3e8bd3b77a647db988b681b1eafc6960aa45" ++ - AlgorithmId: sha384 ++ Digest: "f5e5365d6e97649411362c83e2e8808f7c19efa11d4f16d4ac66093214510beed55448882cbbdda8f0164688465905b0" ++ EventSize: 32 ++ Event: ++ String: |- ++ "grub_cmd: export linux_gfx_mode\0" ++- EventNum: 69 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "cf64c383ab75ebe55cb542af42efa01a47b86280" ++ - AlgorithmId: sha256 ++ Digest: "577db70e3460e11bdb32e3dc5374bb89736cf9397477dcc1e4d4fad162015900" ++ - AlgorithmId: sha384 ++ Digest: "ba3e98910b1f1d534da9d112008728603800e461c7410065a7ff6107e22e9ef8ffdc16950932febd36922d6d1a1df8ed" ++ EventSize: 1160 ++ Event: ++ String: |- ++ "grub_cmd: menuentry Ubuntu --class ubuntu --class gnu-linux --class gnu --class os --id gnulinux-simple-c73d8355-1ac9-41b4-8edf-c1c1a9d5bd6a {" ++ "\trecordfail" ++ "\tload_video" ++ "\tgfxmode $linux_gfx_mode" ++ "\tinsmod gzio" ++ "\tif [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi" ++ "\tinsmod part_gpt" ++ "\tinsmod ext2" ++ "\tset root=\'hd0,gpt1\'" ++ "\tif [ x$feature_platform_search_hint = xy ]; then" ++ "\t search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1 c73d8355-1ac9-41b4-8edf-c1c1a9d5bd6a" ++ "\telse" ++ "\t search --no-floppy --fs-uuid --set=root c73d8355-1ac9-41b4-8edf-c1c1a9d5bd6a" ++ "\tfi" ++ "\tif [ "${initrdfail}" = 1 ]; then" ++ "\t echo\t\'GRUB_FORCE_PARTUUID set, initrdless boot failed. Attempting with initrd.\'" ++ "\t linux\t/boot/vmlinuz-5.11.0-1008-gcp root=PARTUUID=bf817bdf-6a3a-4221-8edb-2c1ca7c5537f ro scsi_mod.use_blk_mq=Y ima_hash=sha256 console=ttyS0" ++ "\t initrd\t/boot/initrd.img-5.11.0-1008-gcp" ++ "\telse" ++ "\t echo\t\'GRUB_FORCE_PARTUUID set, attempting initrdless boot.\'" ++ "\t linux\t/boot/vmlinuz-5.11.0-1008-gcp root=PARTUUID=bf817bdf-6a3a-4221-8edb-2c1ca7c5537f ro scsi_mod.use_blk_mq=Y ima_hash=sha256 console=ttyS0 panic=-1" ++ "\tfi" ++ "\tinitrdfail" ++ "}\0" ++- EventNum: 70 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "af6d6420510c54acb9bae20c45fc4fdd9eaa4ff6" ++ - AlgorithmId: sha256 ++ Digest: "5356e324ba760d7f33f96426fec805aa856c4960b540ad2fd53700403063e642" ++ - AlgorithmId: sha384 ++ Digest: "84dbd33027441f7e35b2aa4559eca8b55d59b4cbb8619c5e691dcb1b379784b1c7955823ea20cc61406b359f9f5db4ab" ++ EventSize: 5454 ++ Event: ++ String: |- ++ "grub_cmd: submenu Advanced options for Ubuntu --id gnulinux-advanced-c73d8355-1ac9-41b4-8edf-c1c1a9d5bd6a {" ++ "\tmenuentry \'Ubuntu, with Linux 5.11.0-1008-gcp\' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option \'gnulinux-5.11.0-1008-gcp-advanced-c73d8355-1ac9-41b4-8edf-c1c1a9d5bd6a\' {" ++ "\t\trecordfail" ++ "\t\tload_video" ++ "\t\tgfxmode $linux_gfx_mode" ++ "\t\tinsmod gzio" ++ "\t\tif [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi" ++ "\t\tinsmod part_gpt" ++ "\t\tinsmod ext2" ++ "\t\tset root=\'hd0,gpt1\'" ++ "\t\tif [ x$feature_platform_search_hint = xy ]; then" ++ "\t\t search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1 c73d8355-1ac9-41b4-8edf-c1c1a9d5bd6a" ++ "\t\telse" ++ "\t\t search --no-floppy --fs-uuid --set=root c73d8355-1ac9-41b4-8edf-c1c1a9d5bd6a" ++ "\t\tfi" ++ "\t\techo\t\'Loading Linux 5.11.0-1008-gcp ...\'" ++ "\t\tif [ "${initrdfail}" = 1 ]; then" ++ "\t\t echo\t\'GRUB_FORCE_PARTUUID set, initrdless boot failed. Attempting with initrd.\'" ++ "\t\t linux\t/boot/vmlinuz-5.11.0-1008-gcp root=PARTUUID=bf817bdf-6a3a-4221-8edb-2c1ca7c5537f ro scsi_mod.use_blk_mq=Y ima_hash=sha256 console=ttyS0" ++ "\t\t echo\t\'Loading initial ramdisk ...\'" ++ "\t\t initrd\t/boot/initrd.img-5.11.0-1008-gcp" ++ "\t\telse" ++ "\t\t echo\t\'GRUB_FORCE_PARTUUID set, attempting initrdless boot.\'" ++ "\t\t linux\t/boot/vmlinuz-5.11.0-1008-gcp root=PARTUUID=bf817bdf-6a3a-4221-8edb-2c1ca7c5537f ro scsi_mod.use_blk_mq=Y ima_hash=sha256 console=ttyS0 panic=-1" ++ "\t\tfi" ++ "\t\tinitrdfail" ++ "\t}" ++ "\tmenuentry \'Ubuntu, with Linux 5.11.0-1008-gcp (recovery mode)\' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option \'gnulinux-5.11.0-1008-gcp-recovery-c73d8355-1ac9-41b4-8edf-c1c1a9d5bd6a\' {" ++ "\t\trecordfail" ++ "\t\tload_video" ++ "\t\tinsmod gzio" ++ "\t\tif [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi" ++ "\t\tinsmod part_gpt" ++ "\t\tinsmod ext2" ++ "\t\tset root=\'hd0,gpt1\'" ++ "\t\tif [ x$feature_platform_search_hint = xy ]; then" ++ "\t\t search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1 c73d8355-1ac9-41b4-8edf-c1c1a9d5bd6a" ++ "\t\telse" ++ "\t\t search --no-floppy --fs-uuid --set=root c73d8355-1ac9-41b4-8edf-c1c1a9d5bd6a" ++ "\t\tfi" ++ "\t\techo\t\'Loading Linux 5.11.0-1008-gcp ...\'" ++ "\t\tif [ "${initrdfail}" = 1 ]; then" ++ "\t\t echo\t\'GRUB_FORCE_PARTUUID set, initrdless boot failed. Attempting with initrd.\'" ++ "\t\t linux\t/boot/vmlinuz-5.11.0-1008-gcp root=PARTUUID=bf817bdf-6a3a-4221-8edb-2c1ca7c5537f ro recovery nomodeset dis_ucode_ldr scsi_mod.use_blk_mq=Y ima_hash=sha256" ++ "\t\t echo\t\'Loading initial ramdisk ...\'" ++ "\t\t initrd\t/boot/initrd.img-5.11.0-1008-gcp" ++ "\t\telse" ++ "\t\t echo\t\'GRUB_FORCE_PARTUUID set, attempting initrdless boot.\'" ++ "\t\t linux\t/boot/vmlinuz-5.11.0-1008-gcp root=PARTUUID=bf817bdf-6a3a-4221-8edb-2c1ca7c5537f ro recovery nomodeset dis_ucode_ldr scsi_mod.use_blk_mq=Y ima_hash=sha256 panic=-1" ++ "\t\tfi" ++ "\t\tinitrdfail" ++ "\t}" ++ "\tmenuentry \'Ubuntu, with Linux 5.11.0-1007-gcp\' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option \'gnulinux-5.11.0-1007-gcp-advanced-c73d8355-1ac9-41b4-8edf-c1c1a9d5bd6a\' {" ++ "\t\trecordfail" ++ "\t\tload_video" ++ "\t\tgfxmode $linux_gfx_mode" ++ "\t\tinsmod gzio" ++ "\t\tif [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi" ++ "\t\tinsmod part_gpt" ++ "\t\tinsmod ext2" ++ "\t\tset root=\'hd0,gpt1\'" ++ "\t\tif [ x$feature_platform_search_hint = xy ]; then" ++ "\t\t search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1 c73d8355-1ac9-41b4-8edf-c1c1a9d5bd6a" ++ "\t\telse" ++ "\t\t search --no-floppy --fs-uuid --set=root c73d8355-1ac9-41b4-8edf-c1c1a9d5bd6a" ++ "\t\tfi" ++ "\t\techo\t\'Loading Linux 5.11.0-1007-gcp ...\'" ++ "\t\tif [ "${initrdfail}" = 1 ]; then" ++ "\t\t echo\t\'GRUB_FORCE_PARTUUID set, initrdless boot failed. Attempting with initrd.\'" ++ "\t\t linux\t/boot/vmlinuz-5.11.0-1007-gcp root=PARTUUID=bf817bdf-6a3a-4221-8edb-2c1ca7c5537f ro scsi_mod.use_blk_mq=Y ima_hash=sha256 console=ttyS0" ++ "\t\t echo\t\'Loading initial ramdisk ...\'" ++ "\t\t initrd\t/boot/initrd.img-5.11.0-1007-gcp" ++ "\t\telse" ++ "\t\t echo\t\'GRUB_FORCE_PARTUUID set, attempting initrdless boot.\'" ++ "\t\t linux\t/boot/vmlinuz-5.11.0-1007-gcp root=PARTUUID=bf817bdf-6a3a-4221-8edb-2c1ca7c5537f ro scsi_mod.use_blk_mq=Y ima_hash=sha256 console=ttyS0 panic=-1" ++ "\t\tfi" ++ "\t\tinitrdfail" ++ "\t}" ++ "\tmenuentry \'Ubuntu, with Linux 5.11.0-1007-gcp (recovery mode)\' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option \'gnulinux-5.11.0-1007-gcp-recovery-c73d8355-1ac9-41b4-8edf-c1c1a9d5bd6a\' {" ++ "\t\trecordfail" ++ "\t\tload_video" ++ "\t\tinsmod gzio" ++ "\t\tif [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi" ++ "\t\tinsmod part_gpt" ++ "\t\tinsmod ext2" ++ "\t\tset root=\'hd0,gpt1\'" ++ "\t\tif [ x$feature_platform_search_hint = xy ]; then" ++ "\t\t search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1 c73d8355-1ac9-41b4-8edf-c1c1a9d5bd6a" ++ "\t\telse" ++ "\t\t search --no-floppy --fs-uuid --set=root c73d8355-1ac9-41b4-8edf-c1c1a9d5bd6a" ++ "\t\tfi" ++ "\t\techo\t\'Loading Linux 5.11.0-1007-gcp ...\'" ++ "\t\tif [ "${initrdfail}" = 1 ]; then" ++ "\t\t echo\t\'GRUB_FORCE_PARTUUID set, initrdless boot failed. Attempting with initrd.\'" ++ "\t\t linux\t/boot/vmlinuz-5.11.0-1007-gcp root=PARTUUID=bf817bdf-6a3a-4221-8edb-2c1ca7c5537f ro recovery nomodeset dis_ucode_ldr scsi_mod.use_blk_mq=Y ima_hash=sha256" ++ "\t\t echo\t\'Loading initial ramdisk ...\'" ++ "\t\t initrd\t/boot/initrd.img-5.11.0-1007-gcp" ++ "\t\telse" ++ "\t\t echo\t\'GRUB_FORCE_PARTUUID set, attempting initrdless boot.\'" ++ "\t\t linux\t/boot/vmlinuz-5.11.0-1007-gcp root=PARTUUID=bf817bdf-6a3a-4221-8edb-2c1ca7c5537f ro recovery nomodeset dis_ucode_ldr scsi_mod.use_blk_mq=Y ima_hash=sha256 panic=-1" ++ "\t\tfi" ++ "\t\tinitrdfail" ++ "\t}" ++ "}\0" ++- EventNum: 71 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "5d7f65b8d5132e408111dda7d05a00c80bee5bb1" ++ - AlgorithmId: sha256 ++ Digest: "5edb07405e8f25edc31321321014a3cdb3dc264835dd2b76ea94848416392cab" ++ - AlgorithmId: sha384 ++ Digest: "08749dcd94ec0ed4f8558679a5ee41179ecf47a44ea00b49415d1f1ca584bc1bc1001ffecf8660303009ccb88278598b" ++ EventSize: 717 ++ Event: ++ String: |- ++ "grub_cmd: menuentry Ubuntu 21.04 (21.04) (on /dev/sda1) --class ubuntu --class gnu-linux --class gnu --class os --id osprober-gnulinux-simple-c73d8355-1ac9-41b4-8edf-c1c1a9d5bd6a {" ++ "\tinsmod part_gpt" ++ "\tinsmod ext2" ++ "\tset root=\'hd0,gpt1\'" ++ "\tif [ x$feature_platform_search_hint = xy ]; then" ++ "\t search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1 c73d8355-1ac9-41b4-8edf-c1c1a9d5bd6a" ++ "\telse" ++ "\t search --no-floppy --fs-uuid --set=root c73d8355-1ac9-41b4-8edf-c1c1a9d5bd6a" ++ "\tfi" ++ "\tlinux /boot/vmlinuz-5.11.0-1007-gcp root=PARTUUID=bf817bdf-6a3a-4221-8edb-2c1ca7c5537f ro scsi_mod.use_blk_mq=Y ima_hash=sha256 console=ttyS0 panic=-1" ++ "\tinitrd /boot/initrd.img-5.11.0-1007-gcp" ++ "}\0" ++- EventNum: 72 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "f6f8b410d3af65f7509e9fc09356db34359500ff" ++ - AlgorithmId: sha256 ++ Digest: "83f4f5f542b92465b12675543fe698418fc5fd5846abc6f94761be41514fb980" ++ - AlgorithmId: sha384 ++ Digest: "4e2a4f1fd7f20ac2af06039252e8e2bdaa16b5129b0af865ae560e18bba9a28852efa6655423b6d6099c245384096047" ++ EventSize: 2574 ++ Event: ++ String: |- ++ "grub_cmd: submenu Advanced options for Ubuntu 21.04 (21.04) (on /dev/sda1) --id osprober-gnulinux-advanced-c73d8355-1ac9-41b4-8edf-c1c1a9d5bd6a {" ++ "\tmenuentry \'Ubuntu (on /dev/sda1)\' --class gnu-linux --class gnu --class os $menuentry_id_option \'osprober-gnulinux-/boot/vmlinuz-5.11.0-1007-gcp--c73d8355-1ac9-41b4-8edf-c1c1a9d5bd6a\' {" ++ "\t\tinsmod part_gpt" ++ "\t\tinsmod ext2" ++ "\t\tset root=\'hd0,gpt1\'" ++ "\t\tif [ x$feature_platform_search_hint = xy ]; then" ++ "\t\t search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1 c73d8355-1ac9-41b4-8edf-c1c1a9d5bd6a" ++ "\t\telse" ++ "\t\t search --no-floppy --fs-uuid --set=root c73d8355-1ac9-41b4-8edf-c1c1a9d5bd6a" ++ "\t\tfi" ++ "\t\tlinux /boot/vmlinuz-5.11.0-1007-gcp root=PARTUUID=bf817bdf-6a3a-4221-8edb-2c1ca7c5537f ro scsi_mod.use_blk_mq=Y ima_hash=sha256 console=ttyS0 panic=-1" ++ "\t\tinitrd /boot/initrd.img-5.11.0-1007-gcp" ++ "\t}" ++ "\tmenuentry \'Ubuntu, with Linux 5.11.0-1007-gcp (on /dev/sda1)\' --class gnu-linux --class gnu --class os $menuentry_id_option \'osprober-gnulinux-/boot/vmlinuz-5.11.0-1007-gcp--c73d8355-1ac9-41b4-8edf-c1c1a9d5bd6a\' {" ++ "\t\tinsmod part_gpt" ++ "\t\tinsmod ext2" ++ "\t\tset root=\'hd0,gpt1\'" ++ "\t\tif [ x$feature_platform_search_hint = xy ]; then" ++ "\t\t search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1 c73d8355-1ac9-41b4-8edf-c1c1a9d5bd6a" ++ "\t\telse" ++ "\t\t search --no-floppy --fs-uuid --set=root c73d8355-1ac9-41b4-8edf-c1c1a9d5bd6a" ++ "\t\tfi" ++ "\t\tlinux /boot/vmlinuz-5.11.0-1007-gcp root=PARTUUID=bf817bdf-6a3a-4221-8edb-2c1ca7c5537f ro scsi_mod.use_blk_mq=Y ima_hash=sha256 console=ttyS0 panic=-1" ++ "\t\tinitrd /boot/initrd.img-5.11.0-1007-gcp" ++ "\t}" ++ "\tmenuentry \'Ubuntu, with Linux 5.11.0-1007-gcp (recovery mode) (on /dev/sda1)\' --class gnu-linux --class gnu --class os $menuentry_id_option \'osprober-gnulinux-/boot/vmlinuz-5.11.0-1007-gcp-root=PARTUUID=bf817bdf-6a3a-4221-8edb-2c1ca7c5537f ro recovery nomodeset dis_ucode_ldr scsi_mod.use_blk_mq=Y ima_hash=sha256 panic=-1-c73d8355-1ac9-41b4-8edf-c1c1a9d5bd6a\' {" ++ "\t\tinsmod part_gpt" ++ "\t\tinsmod ext2" ++ "\t\tset root=\'hd0,gpt1\'" ++ "\t\tif [ x$feature_platform_search_hint = xy ]; then" ++ "\t\t search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1 c73d8355-1ac9-41b4-8edf-c1c1a9d5bd6a" ++ "\t\telse" ++ "\t\t search --no-floppy --fs-uuid --set=root c73d8355-1ac9-41b4-8edf-c1c1a9d5bd6a" ++ "\t\tfi" ++ "\t\tlinux /boot/vmlinuz-5.11.0-1007-gcp root=PARTUUID=bf817bdf-6a3a-4221-8edb-2c1ca7c5537f ro recovery nomodeset dis_ucode_ldr scsi_mod.use_blk_mq=Y ima_hash=sha256 panic=-1" ++ "\t\tinitrd /boot/initrd.img-5.11.0-1007-gcp" ++ "\t}" ++ "}\0" ++- EventNum: 73 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "c512092b0481234caa416ef7c196ab4e92b8e002" ++ - AlgorithmId: sha256 ++ Digest: "1c568398cf2e4a9df58875bbd79dffe058ec45be0b74512fa919a2fe7db4a609" ++ - AlgorithmId: sha384 ++ Digest: "25c0d8bcdfb40c73ce2820b8589c44b0b81b2501f7b7f9fd54585616b1b03adef28b6eb043e0ca69146a729ea029e626" ++ EventSize: 33 ++ Event: ++ String: |- ++ "grub_cmd: set timeout_style=menu\0" ++- EventNum: 74 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "e8b3744ad947f0758b4486546f78fd6e5a5fad54" ++ - AlgorithmId: sha256 ++ Digest: "228f734cf81b603abcdb75f8ce4631e4c1d8f377778a442bccf2ede0bb68ee01" ++ - AlgorithmId: sha384 ++ Digest: "f303694e244f1e2193c193b22f5d252aadf600802004d75a1e9920922a4927f6649e83cf34e4d4bb1916d7223ba59b3a" ++ EventSize: 22 ++ Event: ++ String: |- ++ "grub_cmd: [ 0.1 = 0 ]\0" ++- EventNum: 75 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "3db846d3d718840d4dac10b86396a422ccd4d31f" ++ - AlgorithmId: sha256 ++ Digest: "716ce335760b546fad1e7f980a68b9ab64b9e0a050f2c2da4ebddb7d3ebea559" ++ - AlgorithmId: sha384 ++ Digest: "c30a0e3a9357f2867ae466fcf0d5023c62a237d41b125316aac3bf39d5f5229792d7da9b42602e4770453834fcc28bea" ++ EventSize: 75 ++ Event: ++ String: |- ++ "grub_cmd: menuentry UEFI Firmware Settings --id uefi-firmware {" ++ "\tfwsetup" ++ "}\0" ++- EventNum: 76 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "273f5c80c12e935c1d37c2cfe3e161bc42d79d8e" ++ - AlgorithmId: sha256 ++ Digest: "1ea37430950c837021ebcc02f98c12018c31e593e366429436e1353584c7ec72" ++ - AlgorithmId: sha384 ++ Digest: "aed896a21fb16121568dd93ed2334c6a8415660b3495cd1ec9e8962e1f87639fd8cf41c94e8a48841be19a2bc103e100" ++ EventSize: 49 ++ Event: ++ String: |- ++ "grub_cmd: [ -f (hd0,gpt1)/boot/grub/custom.cfg ]\0" ++- EventNum: 77 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "a3326df3194201575e51c3b9a1c8d5d17aeff2d0" ++ - AlgorithmId: sha256 ++ Digest: "d5478d9057580531bf6ff37383b01bb78e1279c20a23721aa3a67ad0d1ca35db" ++ - AlgorithmId: sha384 ++ Digest: "fbb38645486103b1baa77a61576d342c27c0d02597649825cee44c16f658af2b0ad8aa4996e16b9b6c32b1e38f3bb41a" ++ EventSize: 76 ++ Event: ++ String: |- ++ "grub_cmd: [ -z (hd0,gpt1)/boot/grub -a -f (hd0,gpt1)/boot/grub/custom.cfg ]\0" ++- EventNum: 78 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "17c76a65ebda6aa310da041aabbcd6483bf00df4" ++ - AlgorithmId: sha256 ++ Digest: "bf5d10a466c0f77818990a9d0fdcc8fa2c4561ba92912d5fbc9d4ac1e31a00fb" ++ - AlgorithmId: sha384 ++ Digest: "a30a7be4fb9beb8b2282ff1414d0a47eb11b36471a2628d4284bd9ae8e8a74a8e15f0a1e84b413636db7692a4a60cc1a" ++ EventSize: 27 ++ Event: ++ String: |- ++ "grub_cmd: setparams Ubuntu\0" ++- EventNum: 79 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "98d066f8ffd046bacb38b106188cbe7fe9ada729" ++ - AlgorithmId: sha256 ++ Digest: "a57e067e286efc4eea89659d40f13a38cc1792e4277bed820ded674c94bf2ead" ++ - AlgorithmId: sha384 ++ Digest: "b0bb85ff789f25dd63e341736b94f4bf3acd1cff1c1df60bd3ffca5789eb737d2817a39af66de46640134bfbbb20dad7" ++ EventSize: 21 ++ Event: ++ String: |- ++ "grub_cmd: recordfail\0" ++- EventNum: 80 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "bac17085fef5043662a50cef18bf366844c074ff" ++ - AlgorithmId: sha256 ++ Digest: "64bda8f65b1585d7868248a292c449660cc8f75075c10d87ae59a4db401ce119" ++ - AlgorithmId: sha384 ++ Digest: "b353cf9833059be9abadf180d83abeb5eeeec00843b3f22476bb5db0ba2f4361a0260af3460aecb3c124eda90b6ca7a2" ++ EventSize: 27 ++ Event: ++ String: |- ++ "grub_cmd: set recordfail=1\0" ++- EventNum: 81 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "55cfd6463ef334abb6b48080b33ec063a9c051eb" ++ - AlgorithmId: sha256 ++ Digest: "cfa4676ffe751d1547e77a8d66a033b59b3eed3400d9b3a305d2601891ab0e59" ++ - AlgorithmId: sha384 ++ Digest: "934aafc99cb0a7cb1ef83c5a1eb01c31d60927f08b2ff72d2c05e0b4660ed1dd1e139738b3c5630502e629e8f593d7af" ++ EventSize: 22 ++ Event: ++ String: |- ++ "grub_cmd: [ -n true ]\0" ++- EventNum: 82 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "d31e5f156b716d7835b261891644bb5f7f65e285" ++ - AlgorithmId: sha256 ++ Digest: "4e7a22f96bae467df0f26975e0bf7614d6b92993301c65bae6a85c6530e460bf" ++ - AlgorithmId: sha384 ++ Digest: "fef379383e771fed457fecfc7148e008c90234d0526b282690c57c93802cc9623c25923689de1c2fcb62669f10e3e1e1" ++ EventSize: 18 ++ Event: ++ String: |- ++ "grub_cmd: [ -z ]\0" ++- EventNum: 83 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "925ee69b7c8ac4937cbe47d5c85351d869b4e8d7" ++ - AlgorithmId: sha256 ++ Digest: "ce2cc20777ba8d3bc75b662163c3abe370344d4bae17d75fb5bd408d1fb6badf" ++ - AlgorithmId: sha384 ++ Digest: "022e47c5e49bf3c934f488fcc07318489550a64db62aa07ca044c9dd9c2a0ff90637641b7c87bd77e3383e70039ea0fa" ++ EventSize: 30 ++ Event: ++ String: |- ++ "grub_cmd: save_env recordfail\0" ++- EventNum: 84 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "8fe59e66d6ec198420477f24f791e929f153e144" ++ - AlgorithmId: sha256 ++ Digest: "7626abd8be7442c2e575364a3e95cb3a3b533c58afbba402d2bdabdff85d29c7" ++ - AlgorithmId: sha384 ++ Digest: "cbb709d13faf7d16f191751ae275f22a003503389e2e490a60cff78beb3cd546222d591904d51987487f03cdbd41e479" ++ EventSize: 21 ++ Event: ++ String: |- ++ "grub_cmd: load_video\0" ++- EventNum: 85 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "f5b067e59c163f67b19b836fbee9e8a487a19cdd" ++ - AlgorithmId: sha256 ++ Digest: "4568361fb7581b31a42d645ab534302fb9f742adaa37b7fde152215d69e259fb" ++ - AlgorithmId: sha384 ++ Digest: "10b1f8d036aefd32ce770311ea00426e147b3daee378dd0679aeda81963b2c5389178787962ce9ea08e5571701cce94a" ++ EventSize: 22 ++ Event: ++ String: |- ++ "grub_cmd: [ xy = xy ]\0" ++- EventNum: 86 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "59ced343b060b7df54fa7ba251ef877940601ee4" ++ - AlgorithmId: sha256 ++ Digest: "d71353f5368eb2c1280590928128979bd96ea8db1e8c81493f7878383b76ab3b" ++ - AlgorithmId: sha384 ++ Digest: "147bbdcd0704d1942b2171a097e7b08384f106cac76f7d5737e5fee2bc2e38dedb821b91e09ac184b46bb4dc86b4a8af" ++ EventSize: 27 ++ Event: ++ String: |- ++ "grub_cmd: insmod all_video\0" ++- EventNum: 87 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "13ad1a8ddf647c8148f1739b6081d7838816b59f" ++ - AlgorithmId: sha256 ++ Digest: "2fa8065d9ee309384d35f8d530186b776d26e1bb5632f89a46d56e93b140282b" ++ - AlgorithmId: sha384 ++ Digest: "f27a8ddb553135ee8002572775ae390b1bc7443ebbe11b863cd79ae66b2065cd02e98cfb170b897112986a88cd071ef8" ++ EventSize: 23 ++ Event: ++ String: |- ++ "grub_cmd: gfxmode keep\0" ++- EventNum: 88 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "2e1c676ddd9b16f0d720cd5c66d85732de7b77b6" ++ - AlgorithmId: sha256 ++ Digest: "15a5018b0177cf9c49c0b97911df67e7f2c193d3613e3fc4c9eb98a2b5d06fcc" ++ - AlgorithmId: sha384 ++ Digest: "7c5ea1b10ba69215090e2490e10f9d2db5f6a5b0eb6e08d366cceb8acb4478857242221cf56323a493d1b3a958fa137c" ++ EventSize: 30 ++ Event: ++ String: |- ++ "grub_cmd: set gfxpayload=keep\0" ++- EventNum: 89 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "5241b5dfa58679895d95f79ffa0a5f42ba4b55ea" ++ - AlgorithmId: sha256 ++ Digest: "b55d84bbb0a00f175ebbc6ca167f18dd6a9cb49b141535bfcc6c4ef9c53b1866" ++ - AlgorithmId: sha384 ++ Digest: "f7c74459bb0d16f8ae24911858879c7fcab3b8af909d811d945e09f7b16977bd65a819128d0b5c88ff29cb76f381bdd6" ++ EventSize: 26 ++ Event: ++ String: |- ++ "grub_cmd: [ keep = keep ]\0" ++- EventNum: 90 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "886e1d072aa199f4f6d21499067e0a148ae8046b" ++ - AlgorithmId: sha256 ++ Digest: "141dcfd03b1736e86f617122e7f31cffe89f7cf0faa773f1bced28f7f0c1fa13" ++ - AlgorithmId: sha384 ++ Digest: "8bc8e8c561f27f5988be9e69da2a00f626c7d3c735f599abcf27f83c02530ca76847dc5e15007f490e2f417a24b2f457" ++ EventSize: 38 ++ Event: ++ String: |- ++ "grub_cmd: set vt_handoff=vt.handoff=7\0" ++- EventNum: 91 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "ba509ca38210f0683c477c9dc40e4c4f653e1dfb" ++ - AlgorithmId: sha256 ++ Digest: "6c4674d4c652ee67b98a6206d7541ccbf2d5dc0a18dae31ad66e82c794c49784" ++ - AlgorithmId: sha384 ++ Digest: "862ae797615324fd5c153dfbfcb226391262855ed2db2969f98456f0da17b6aa1c8aa2e2fe90bc1567295786a83c5371" ++ EventSize: 22 ++ Event: ++ String: |- ++ "grub_cmd: insmod gzio\0" ++- EventNum: 92 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "2de845dce8a51c8fddbaa04686760093325b7569" ++ - AlgorithmId: sha256 ++ Digest: "18865468f2e4bd9f0cc4ffdda1335f405d06df8d6ff183b373f50e08e81f924d" ++ - AlgorithmId: sha384 ++ Digest: "995dbf6286dc9d47f0eee049a465847bb1e4cb1fa91deffb00dde832d2e00b109049c0f2edd6ad66525227758138a601" ++ EventSize: 26 ++ Event: ++ String: |- ++ "grub_cmd: [ xefi = xxen ]\0" ++- EventNum: 93 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "a4e1c6f50579b47c964111d1ea2170e6f923c941" ++ - AlgorithmId: sha256 ++ Digest: "62cd76d31ca3d10d742e46c6ff171046ce19dd90f361a827fec6571e59c24794" ++ - AlgorithmId: sha384 ++ Digest: "cac0f0b93ee7eaa45e36cda3faf3d0a5f5fc92ec4d24c3af4ad9584669598f34b603c211b220e56be52bdbc3a2f74ffb" ++ EventSize: 26 ++ Event: ++ String: |- ++ "grub_cmd: insmod part_gpt\0" ++- EventNum: 94 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "af3f07abac9e5c56b82f09ab98328905aabbf6ef" ++ - AlgorithmId: sha256 ++ Digest: "b838a4d2860c81058105fbb1907a1fb7f60b65591b099b3b000d9b31d8d2fb20" ++ - AlgorithmId: sha384 ++ Digest: "e142a594d988fda5a65b1424a4a48c2cf4b036dd779d4ae299af45b7d33b0bfe07a4a969d3c0da72c2ba53f9eeeaf7a6" ++ EventSize: 22 ++ Event: ++ String: |- ++ "grub_cmd: insmod ext2\0" ++- EventNum: 95 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "cbf1bcb38df72c190b4db0d27ee96eca3c7a9e44" ++ - AlgorithmId: sha256 ++ Digest: "20df4eb78bbf966925af51ad614806aa3ad6f146a9a0c85ac2582a3eaa9a30ca" ++ - AlgorithmId: sha384 ++ Digest: "fbcdbcd1cc73f5ff594f1c8b21ecd6f5d62a0fd2f217da2fb7bcc75887c14c1232d162c53c05c914a84152d52d9ff68e" ++ EventSize: 28 ++ Event: ++ String: |- ++ "grub_cmd: set root=hd0,gpt1\0" ++- EventNum: 96 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "f5b067e59c163f67b19b836fbee9e8a487a19cdd" ++ - AlgorithmId: sha256 ++ Digest: "4568361fb7581b31a42d645ab534302fb9f742adaa37b7fde152215d69e259fb" ++ - AlgorithmId: sha384 ++ Digest: "10b1f8d036aefd32ce770311ea00426e147b3daee378dd0679aeda81963b2c5389178787962ce9ea08e5571701cce94a" ++ EventSize: 22 ++ Event: ++ String: |- ++ "grub_cmd: [ xy = xy ]\0" ++- EventNum: 97 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "d9d9de0269fb4f896105cac2f61eafa5f07a3715" ++ - AlgorithmId: sha256 ++ Digest: "4c6e3f3d149a959a42df7ae14e07665fc07faf0c18c54179fa9d460d54379266" ++ - AlgorithmId: sha384 ++ Digest: "44d9ad511c25d0f9cc6d5afd966a01ab022e2dc4999c56f110f26cdf5abcd369681618024ab313c886662e9db6915d96" ++ EventSize: 156 ++ Event: ++ String: |- ++ "grub_cmd: search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1 c73d8355-1ac9-41b4-8edf-c1c1a9d5bd6a\0" ++- EventNum: 98 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "05ba452bf00b7f880528b35d02e9077f89c08538" ++ - AlgorithmId: sha256 ++ Digest: "82a4a14e43a4f76118ae63285d0af05af139f260fae57b2c20737a1c1df3382b" ++ - AlgorithmId: sha384 ++ Digest: "ae1061c45b3c25c89cea3f7ddee4640f8e776086f7d62fb4b9c1d56148a1be04bf11de6a395344567b538c6df06d079e" ++ EventSize: 19 ++ Event: ++ String: |- ++ "grub_cmd: [ = 1 ]\0" ++- EventNum: 99 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "01542096822d860040cf654f637eba149752e9e2" ++ - AlgorithmId: sha256 ++ Digest: "d1bbd7d573d636850a1a9efbcfac9e589f1bcd34f617b16bc7872275ea036c3d" ++ - AlgorithmId: sha384 ++ Digest: "2164d946e27c14eed101898c7ed88f7699292963b92d40d8ea3085b43284a57b3f3dfb83ac0945eb28ae70dd5ffd5184" ++ EventSize: 68 ++ Event: ++ String: |- ++ "grub_cmd: echo GRUB_FORCE_PARTUUID set, attempting initrdless boot.\0" ++- EventNum: 100 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "a72252f8c4a8332df162e7cd38feee3e4f17f311" ++ - AlgorithmId: sha256 ++ Digest: "7b35f08bff2e48a1b53a65d899a1c435a432488bc28e37639966477af0ae2ab2" ++ - AlgorithmId: sha384 ++ Digest: "c35c072afd08eabbe3acf4deed5f758d64f0c63657340d2b11991d001c8c93ce675cc3e758f41505c8ab075ca4d4dff3" ++ EventSize: 161 ++ Event: ++ String: |- ++ "grub_cmd: linux /boot/vmlinuz-5.11.0-1008-gcp root=PARTUUID=bf817bdf-6a3a-4221-8edb-2c1ca7c5537f ro scsi_mod.use_blk_mq=Y ima_hash=sha256 console=ttyS0 panic=-1\0" ++- EventNum: 101 ++ PCRIndex: 9 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "f6558a5d3c7c55b82f279124a3725991f8563c7f" ++ - AlgorithmId: sha256 ++ Digest: "38c6396eb70b84aef13f06384a37b7e7bfa77a14e3bde632a76c90acb65c1d97" ++ - AlgorithmId: sha384 ++ Digest: "1a09841f50d46e01e34db7db403824d2e5792411949f2ada78681c4c9b2666ec4729c4c019e69840bad921df227ba143" ++ EventSize: 30 ++ Event: ++ String: |- ++ "/boot/vmlinuz-5.11.0-1008-gcp\0" ++- EventNum: 102 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "c18eca5aee83e674879191584fb45b970b9f0b56" ++ - AlgorithmId: sha256 ++ Digest: "8e08c2b0645412c96b630c8273f78520ebe30be31ce7e9c92bf0e405596d134c" ++ - AlgorithmId: sha384 ++ Digest: "1f192c54174eb7d21824179a6803e1cd0a0dacafe1cb8b6d885c2440141d5e3f39099c669e6c526dffc4a1d945988c4c" ++ EventSize: 161 ++ Event: ++ String: |- ++ "kernel_cmdline: /boot/vmlinuz-5.11.0-1008-gcp root=PARTUUID=bf817bdf-6a3a-4221-8edb-2c1ca7c5537f ro scsi_mod.use_blk_mq=Y ima_hash=sha256 console=ttyS0 panic=-1\0" ++- EventNum: 103 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "8c6944c5ed9f1516843fd5f5bc32941b1306e7db" ++ - AlgorithmId: sha256 ++ Digest: "76bc6c6d70ce34a24bda263584ed03d0fd5d94f90ca206dd5e500b0fe98b3df2" ++ - AlgorithmId: sha384 ++ Digest: "73d5fcf7750e63d42ab36b31da800a479873e4383ec2d8428ed572fa08429eccfbd63ebf7d342ba19a7ee828ed33d395" ++ EventSize: 21 ++ Event: ++ String: |- ++ "grub_cmd: initrdfail\0" ++- EventNum: 104 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "55cfd6463ef334abb6b48080b33ec063a9c051eb" ++ - AlgorithmId: sha256 ++ Digest: "cfa4676ffe751d1547e77a8d66a033b59b3eed3400d9b3a305d2601891ab0e59" ++ - AlgorithmId: sha384 ++ Digest: "934aafc99cb0a7cb1ef83c5a1eb01c31d60927f08b2ff72d2c05e0b4660ed1dd1e139738b3c5630502e629e8f593d7af" ++ EventSize: 22 ++ Event: ++ String: |- ++ "grub_cmd: [ -n true ]\0" ++- EventNum: 105 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "d25eda264090bec15a2bfee2a9942a2cf6404e61" ++ - AlgorithmId: sha256 ++ Digest: "e997fcfc7bf155f28498714bece340531b221ca2598d7444d8dbc1aac6717deb" ++ - AlgorithmId: sha384 ++ Digest: "fa49d94c3497a24eeb1184b00c8aa69659132993997da06d35f349a246245a846436f4b1df9f1e9cdee9a02f40070dc8" ++ EventSize: 54 ++ Event: ++ String: |- ++ "grub_cmd: [ -n bf817bdf-6a3a-4221-8edb-2c1ca7c5537f ]\0" ++- EventNum: 106 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "d31e5f156b716d7835b261891644bb5f7f65e285" ++ - AlgorithmId: sha256 ++ Digest: "4e7a22f96bae467df0f26975e0bf7614d6b92993301c65bae6a85c6530e460bf" ++ - AlgorithmId: sha384 ++ Digest: "fef379383e771fed457fecfc7148e008c90234d0526b282690c57c93802cc9623c25923689de1c2fcb62669f10e3e1e1" ++ EventSize: 18 ++ Event: ++ String: |- ++ "grub_cmd: [ -z ]\0" ++- EventNum: 107 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "701f26890cfca800349839dcb7913dc84bd57bd1" ++ - AlgorithmId: sha256 ++ Digest: "6b2c97f60740ba1ed873c8a1344792aefe3ba93ed8f20db8e89193526cff5fbb" ++ - AlgorithmId: sha384 ++ Digest: "c9320c7d11fa8ba02fbf8fe0e952e2bf0b98478bb278e78b32e8af5f2fcade0ef682e200818ff2e84f279bab4e22b207" ++ EventSize: 27 ++ Event: ++ String: |- ++ "grub_cmd: set initrdfail=1\0" ++- EventNum: 108 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "7a86009dc1f23867d8951bb95471618bde2d1918" ++ - AlgorithmId: sha256 ++ Digest: "2436afe3cb181454ab807d6ca526ed3132dc1759787f9ed3f2f148e86948e978" ++ - AlgorithmId: sha384 ++ Digest: "4cf726ecd422b56df71dca2f377cb2a4ee6d9ca1f5b44096f8fc6607b73b56d0effc393100c506a93327511a72cbf707" ++ EventSize: 18 ++ Event: ++ String: |- ++ "grub_cmd: [ -n ]\0" ++- EventNum: 109 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "9f1950c2967bc0668269446aa91b2f1e2b088862" ++ - AlgorithmId: sha256 ++ Digest: "a05839fd9bfebe3bde7739df6a1983a0008d37e25a47ffa6a164b4a22050c80f" ++ - AlgorithmId: sha384 ++ Digest: "902625d0fdf460a02c0c993eb960c9b8ad2acd3099ea2304eb3fea5816b3263dd98955f34aa8948e0234e864b7470cad" ++ EventSize: 30 ++ Event: ++ String: |- ++ "grub_cmd: save_env initrdfail\0" ++- EventNum: 110 ++ PCRIndex: 5 ++ EventType: EV_EFI_ACTION ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "443a6b7b82b7af564f2e393cd9d5a388b7fa4a98" ++ - AlgorithmId: sha256 ++ Digest: "d8043d6b7b85ad358eb3b6ae6a873ab7ef23a26352c5dc4faa5aeedacf5eb41b" ++ - AlgorithmId: sha384 ++ Digest: "214b0bef1379756011344877743fdc2a5382bac6e70362d624ccf3f654407c1b4badf7d8f9295dd3dabdef65b27677e0" ++ EventSize: 29 ++ Event: |- ++ Exit Boot Services Invocation ++- EventNum: 111 ++ PCRIndex: 5 ++ EventType: EV_EFI_ACTION ++ DigestCount: 3 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "475545ddc978d7bfd036facc7e2e987f48189f0d" ++ - AlgorithmId: sha256 ++ Digest: "b54f7542cbd872a81a9d9dea839b2b8d747c7ebd5ea6615c40f42f44a6dbeba0" ++ - AlgorithmId: sha384 ++ Digest: "0a2e01c85deae718a530ad8c6d20a84009babe6c8989269e950d8cf440c6e997695e64d455c4174a652cd080f6230b74" ++ EventSize: 40 ++ Event: |- ++ Exit Boot Services Returned with Success ++pcrs: ++ sha1: ++ 0 : 0x0f2d3a2a1adaa479aeeca8f5df76aadc41b862ea ++ 1 : 0x36c6b7436c37243c5f6744b73ced4df1287cd16a ++ 2 : 0xb2a83b0ebf2f8374299a5b2bdfc31ea955ad7236 ++ 3 : 0xb2a83b0ebf2f8374299a5b2bdfc31ea955ad7236 ++ 4 : 0x8d9868b66afcf4039eaf8ef5228556d9f313659f ++ 5 : 0xb0eaa45a496e0d933f63e97fd2362192dd48e369 ++ 6 : 0xb2a83b0ebf2f8374299a5b2bdfc31ea955ad7236 ++ 7 : 0x777795cbdeca679f7749d8d09fc12941dcc9912a ++ 8 : 0x5dfae5320ea06ddd1c62d296844a9b4b32b49972 ++ 9 : 0xf53869ab9015b5ad736e5f00e44fdfee2fdfde27 ++ 14 : 0xcd3734d2bdfcfba9e443ac02c03c812ffcceb255 ++ sha256: ++ 0 : 0x24af52a4f429b71a3184a6d64cddad17e54ea030e2aa6576bf3a5a3d8bd3328f ++ 1 : 0xf7dab5fda6b082e0ec1a12c43dd996ee409111422cda752a784620313039db19 ++ 2 : 0x3d458cfe55cc03ea1f443f1562beec8df51c75e14a9fcf9a7234a13f198e7969 ++ 3 : 0x3d458cfe55cc03ea1f443f1562beec8df51c75e14a9fcf9a7234a13f198e7969 ++ 4 : 0x295aeaeacad1d507930bab18418f905eeda633ea67b2ab94c5e5fd3a4d47ac58 ++ 5 : 0xe4f1359accfe48b19af7d38e98a3f373116b55b7f7a6f58f826f409a91d9fd28 ++ 6 : 0x3d458cfe55cc03ea1f443f1562beec8df51c75e14a9fcf9a7234a13f198e7969 ++ 7 : 0xca37324eeffabd318d30a20f15bf27ce25dc33e2c9856279ff6c2ced58b02efa ++ 8 : 0x2f2559cae74bb441d75afea5edb78d9a645db9f4bf8dea84bab0861ce6032e18 ++ 9 : 0x9f27883322aaaf043662c27542d9685790c687ea554e4e2ae30f0e099a2e4889 ++ 14 : 0x8351c65483c5419079e8c96758dd2130bee075d71fea226f68ec4eb5bfc71983 ++ sha384: ++ 0 : 0x8be2d39fecef6e883d467379c57847437cfa03a6f7f7f78dcb2a05a479db4b4749ececedd105b760bc8313abccf1dfb6 ++ 1 : 0x382f8b0c004009344620c720690011386c383af66e38437f6f44854426a8a7a1d8eb8c9ffcc5c61b9b39729446c34042 ++ 2 : 0x518923b0f955d08da077c96aaba522b9decede61c599cea6c41889cfbea4ae4d50529d96fe4d1afdafb65e7f95bf23c4 ++ 3 : 0x518923b0f955d08da077c96aaba522b9decede61c599cea6c41889cfbea4ae4d50529d96fe4d1afdafb65e7f95bf23c4 ++ 4 : 0x6bb9f97fa6a24844a6976c6196dcf766574c2062923d2ccbb9e04a365f36a986c798342cb9720d919b0f6a72a1aaab3e ++ 5 : 0x6c1b5fbc7598002e1c48171baf44ffc24c001ba16d25356fb2c06fe8bc3aa73ca78bb658fc4eb5952d5862ee7097ea86 ++ 6 : 0x518923b0f955d08da077c96aaba522b9decede61c599cea6c41889cfbea4ae4d50529d96fe4d1afdafb65e7f95bf23c4 ++ 7 : 0x79ca6795f9f8cb4f8653f64370dcdcc845e2d7be213424c1295bb4626ec436436bcca9decd0bd989b7218ea24af40313 ++ 8 : 0xedf46c2b7278fb9a7e9f0f9ef4bfdcafe156ff687ce039069b9cb9c11cae76d72ad881212ef748cf868138516d22edae ++ 9 : 0xb22f00a43ff104a75b333718cb822311654d33d42154b70c57a90a42c9674fff79e8ca016c2656aa7c92be41ebc57a64 ++ 14 : 0xb8b567350264af771620c027a7b166896385885029f5e5b2feb9a0c62b7ffdfc276b702373b26b3aa589ab675ee8654d +diff --git a/test/integration/fixtures/event-postcode.bin.yaml b/test/integration/fixtures/event-postcode.bin.yaml +new file mode 100644 +index 00000000..f6a2384a +--- /dev/null ++++ b/test/integration/fixtures/event-postcode.bin.yaml +@@ -0,0 +1,884 @@ ++--- ++version: 1 ++events: ++- EventNum: 0 ++ PCRIndex: 0 ++ EventType: EV_NO_ACTION ++ Digest: "0000000000000000000000000000000000000000" ++ EventSize: 37 ++ SpecID: ++ - Signature: Spec ID Event03 ++ platformClass: 0 ++ specVersionMinor: 0 ++ specVersionMajor: 2 ++ specErrata: 0 ++ uintnSize: 2 ++ numberOfAlgorithms: 2 ++ Algorithms: ++ - Algorithm[0]: ++ algorithmId: sha1 ++ digestSize: 20 ++ - Algorithm[1]: ++ algorithmId: sha256 ++ digestSize: 32 ++ vendorInfoSize: 0 ++- EventNum: 1 ++ PCRIndex: 0 ++ EventType: EV_S_CRTM_VERSION ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "c42fedad268200cb1d15f97841c344e79dae3320" ++ - AlgorithmId: sha256 ++ Digest: "d4720b4009438213b803568017f903093f6bea8ab47d283db32b6eabedbbf155" ++ EventSize: 16 ++ Event: "1efb6b540c1d5540a4ad4ef4bf17b83a" ++- EventNum: 2 ++ PCRIndex: 0 ++ EventType: EV_POST_CODE ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "2ae338407a3d9304e82360e9891ac12b89e838a6" ++ - AlgorithmId: sha256 ++ Digest: "533a706b2c32ac3b42342959d4ff906135ebe9de52ecb4b0e0804c153aedcbe4" ++ EventSize: 16 ++ Event: ++ BlobBase: 0xff130000 ++ BlobLength: 0xa7f000 ++- EventNum: 3 ++ PCRIndex: 7 ++ EventType: EV_EFI_VARIABLE_DRIVER_CONFIG ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "d4fdd1f14d4041494deb8fc990c45343d2277d08" ++ - AlgorithmId: sha256 ++ Digest: "ccfc4bb32888a345bc8aeadaba552b627d99348c767681ab3141f5b01e40a40e" ++ EventSize: 53 ++ Event: ++ VariableName: 8be4df61-93ca-11d2-aa0d-00e098032b8c ++ UnicodeNameLength: 10 ++ VariableDataLength: 1 ++ UnicodeName: SecureBoot ++ VariableData: "01" ++- EventNum: 4 ++ PCRIndex: 7 ++ EventType: EV_EFI_VARIABLE_DRIVER_CONFIG ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "74695203091adbb40c8420f1b499a6ac1a723962" ++ - AlgorithmId: sha256 ++ Digest: "b161e0347f5f040997f97ff52642d43b3a87b986dae8d776d6af27e6468675e6" ++ EventSize: 1011 ++ Event: ++ VariableName: 8be4df61-93ca-11d2-aa0d-00e098032b8c ++ UnicodeNameLength: 2 ++ VariableDataLength: 975 ++ UnicodeName: PK ++ VariableData: "a159c0a5e494a74a87b5ab155c2bf072cf03000000000000b30300005148dc265f19e14a9a19fbf883bbb35e3082039f30820287a00302010202103b98c74f9010d1a94c4383363dced485300d06092a864886f70d01010b05003072310c300a06035504061303555341310b300906035504080c0243413111300f06035504070c0853616e204a6f736531223020060355040a0c195375706572204d6963726f20436f6d707574657220496e632e311e301c06035504030c1553555045524d4943524f20504b2043412032303138301e170d3138313232303031343630345a170d3333313232303031353630335a3072310c300a06035504061303555341310b300906035504080c0243413111300f06035504070c0853616e204a6f736531223020060355040a0c195375706572204d6963726f20436f6d707574657220496e632e311e301c06035504030c1553555045524d4943524f20504b204341203230313830820122300d06092a864886f70d01010105000382010f003082010a0282010100b398bfed1fc069518e4daa9129ce319e1b628e022a15e4271bdace95eae234b9f35d5f41aef62b1d04655206371b2b10ad6a750efaee87d6785755c579986e3936a4eb1769eee7335bc2f0f9e596fbc7ee21db41f5a48a621983a3cb16ab74142c0b586272d0f9e2c95b3176ea0659ba37e43bca8f58b115f9a6cb718cb92269483f735763d5ca54e9ae894b3c4bb7b81ad666d88eee177cd96826d2b4721ccdcb3abd2e14a1941a0be7543b17eb944be4a23490939e50aa5e4dfb1f3491d4506f13a0a5104980cd9b8e452b7ec1b49285c768b2652f58287ccb95090810370a8cb5b5c41840a7ad87b2efa5c29404858802e7fa2be41707b5557e312a65fbad0203010001a331302f300e0603551d0f0101ff040403020186301d0603551d0e041604142f7f6b38d83ab463442ae8edd4f1ceba35688388300d06092a864886f70d01010b050003820101002ae10c936dc7137242fa482ffaef28320b39dd00e43e962a31fa33561b615bf80c7df84d18dbfacca8726595a214cb906028dc0a5b723a9d0e9c6583482224498930b40bf39eafbd5b938db74dec4ab46fe5a435e1f57841181d600b7dfc79de431bf9e916de1e22cd627781759bc07de67c1fab878cf7b978678697c47e2c32f2a273d650cbc446a93a18aa3a1e61086034c58cebb61ccf2081ab7bfcb0d8a582dda9139765e08e62004caa252afd665dedda4e47c29dd5fc69f1aaa6b32d66e0e70b98621e3f0c8f2c665355a987fbbf5f1c0e474c8af8d13d1e87c0ffc64ef39a03995e519fbd84f0760e1ae0973b8cf010386b4bca17fc1105b3b8b2c305" ++- EventNum: 5 ++ PCRIndex: 7 ++ EventType: EV_EFI_VARIABLE_DRIVER_CONFIG ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "13f02fbc7383ed7c89017e0b32f60e38e282056c" ++ - AlgorithmId: sha256 ++ Digest: "63c0ee78eb49b91ac213b03768a827ebf9b12370f65851b19a883bf32eaf2a14" ++ EventSize: 1598 ++ Event: ++ VariableName: 8be4df61-93ca-11d2-aa0d-00e098032b8c ++ UnicodeNameLength: 3 ++ VariableDataLength: 1560 ++ UnicodeName: KEK ++ VariableData: "a159c0a5e494a74a87b5ab155c2bf0721806000000000000fc050000bd9afa775903324dbd6028f4e78f784b308205e8308203d0a003020102020a610ad188000000000003300d06092a864886f70d01010b0500308191310b3009060355040613025553311330110603550408130a57617368696e67746f6e3110300e060355040713075265646d6f6e64311e301c060355040a13154d6963726f736f667420436f72706f726174696f6e313b3039060355040313324d6963726f736f667420436f72706f726174696f6e205468697264205061727479204d61726b6574706c61636520526f6f74301e170d3131303632343230343132395a170d3236303632343230353132395a308180310b3009060355040613025553311330110603550408130a57617368696e67746f6e3110300e060355040713075265646d6f6e64311e301c060355040a13154d6963726f736f667420436f72706f726174696f6e312a3028060355040313214d6963726f736f667420436f72706f726174696f6e204b454b204341203230313130820122300d06092a864886f70d01010105000382010f003082010a0282010100c4e8b58abfad5726b026c3eae7fb577a44025d070dda4ae5742ae6b00fec6debec7fb9e35a63327c11174f0ee30ba73815938ec6f5e084b19a9b2ce7f5b791d609e1e2c004a8ac301cdf48f306509a64a7517fc8854f8f2086cefe2fe19fff82c0ede9cdcef4536a623a0b43b9e225fdfe05f9d4c414ab11e223898d70b7a41d4decaee59cfa16c2d7c1cbd4e8c42fe599ee248b03ec8df28beac34afb4311120b7eb547926cdce60489ebf53304eb10012a71e5f983133cff25092f687646ffba4fbedcad712a58aafb0ed2793de49b653bcc292a9ffc7259a2ebae92eff6351380c602ece45fcc9d76cdef6392c1af79408479877fe352a8e89d7b07698f150203010001a382014f3082014b301006092b06010401823715010403020100301d0603551d0e0416041462fc43cda03ea4cb6712d25bd955ac7bccb68a5f301906092b0601040182371402040c1e0a00530075006200430041300b0603551d0f040403020186300f0603551d130101ff040530030101ff301f0603551d2304183016801445665243e17e5811bfd64e9e2355083b3a226aa8305c0603551d1f045530533051a04fa04d864b687474703a2f2f63726c2e6d6963726f736f66742e636f6d2f706b692f63726c2f70726f64756374732f4d6963436f725468695061724d6172526f6f5f323031302d31302d30352e63726c306006082b0601050507010104543052305006082b060105050730028644687474703a2f2f7777772e6d6963726f736f66742e636f6d2f706b692f63657274732f4d6963436f725468695061724d6172526f6f5f323031302d31302d30352e637274300d06092a864886f70d01010b05000382020100d48488f514941802ca2a3cfb2a921c0cd7a0d1f1e85266a8eea2b5757a9000aa2da4765aea79b7b9376a517b1064f6e164f20267bef7a81b78bdbace8858640cd657c819a35f05d6dbc6d069ce484b32b7eb5dd230f5c0f5b8ba7807a32bfe9bdb345684ec82caae4125709c6be9fe900fd7961fe5e7941fb22a0c8d4bff2829107bf7d77ca5d176b905c879ed0f90929cc2fedf6f7e6c0f7bd4c145dd345196390fe55e56d8180596f407a642b3a077fd0819f27156cc9f8623a487cba6fd587ed4696715917e81f27f13e50d8b8a3c8784ebe3cebd43e5ad2d84938e6a2b5a7c44fa52aa81c82d1cbbe052df0011f89a3dc160b0e133b5a388d165190a1ae7ac7ca4c182874e38b12f0dc514876ffd8d2ebc39b6e7e6c3e0e4cd2784ef9442ef298b9046413b811b67d8f9435965cb0dbcfd00924ff4753ba7a924fc50414079e02d4f0a6a27766e52ed96697baf0ff78705d045c2ad5314811ffb3004aa373661da4a691b34d868edd602cf6c940cd3cf6c2279adb1f0bc03a24660a9c407c22182f1fdf2e8793260bfd8aca522144bcac1d84beb7d3f5735b2e64f75b4b060032253ae91791dd69b411f15865470b2de0d350f7cb03472ba97603bf079eba2b21c5da216b887c5e91bf6b597256f389fe391fa8a7998c3690eb7a31c200597f8ca14ae00d7c4f3c01410756b34a01bb59960f35cb0c5574e36d23284bf9e" ++- EventNum: 6 ++ PCRIndex: 7 ++ EventType: EV_EFI_VARIABLE_DRIVER_CONFIG ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "b0a330783903281d43a79ddc6b6bf7aceb3b10fa" ++ - AlgorithmId: sha256 ++ Digest: "a70c57a09bd713fa74a267c2fe5e5553c6c832d330fffaa12c3323c60b016048" ++ EventSize: 5223 ++ Event: ++ VariableName: d719b2cb-3d3a-4596-a3bc-dad00e67656f ++ UnicodeNameLength: 2 ++ VariableDataLength: 5187 ++ UnicodeName: db ++ VariableData: "a159c0a5e494a74a87b5ab155c2bf072400600000000000024060000bd9afa775903324dbd6028f4e78f784b30820610308203f8a003020102020a6108d3c4000000000004300d06092a864886f70d01010b0500308191310b3009060355040613025553311330110603550408130a57617368696e67746f6e3110300e060355040713075265646d6f6e64311e301c060355040a13154d6963726f736f667420436f72706f726174696f6e313b3039060355040313324d6963726f736f667420436f72706f726174696f6e205468697264205061727479204d61726b6574706c61636520526f6f74301e170d3131303632373231323234355a170d3236303632373231333234355a308181310b3009060355040613025553311330110603550408130a57617368696e67746f6e3110300e060355040713075265646d6f6e64311e301c060355040a13154d6963726f736f667420436f72706f726174696f6e312b3029060355040313224d6963726f736f667420436f72706f726174696f6e2055454649204341203230313130820122300d06092a864886f70d01010105000382010f003082010a0282010100a5086c4cc745096a4b0ca4c0877f06750c43015464e0167f07ed927d0bb273bf0c0ac64a4561a0c5162d96d3f52ba0fb4d499b4180903cb954fde6bcd19dc4a4188a7f418a5c59836832bb8c47c9ee71bc214f9a8a7cff443f8d8f32b22648ae75b5eec94c1e4a197ee4829a1d78774d0cb0bdf60fd316d3bcfa2ba551385df5fbbadb7802dbffec0a1b96d583b81913e9b6c07b407be11f2827c9faef565e1ce67e947ec0f044b27939e5dab2628b4dbf3870e2682414c933a40837d558695ed37cedc1045308e74eb02a876308616f631559eab22b79d70c61678a5bfd5ead877fba86674f71581222042222ce8bef547100ce503558769508ee6ab1a201d50203010001a382017630820172301206092b060104018237150104050203010001302306092b060104018237150204160414f8c16bb77f77534af325371d4ea1267b0f207080301d0603551d0e0416041413adbf4309bd82709c8cd54f316ed522988a1bd4301906092b0601040182371402040c1e0a00530075006200430041300b0603551d0f040403020186300f0603551d130101ff040530030101ff301f0603551d2304183016801445665243e17e5811bfd64e9e2355083b3a226aa8305c0603551d1f045530533051a04fa04d864b687474703a2f2f63726c2e6d6963726f736f66742e636f6d2f706b692f63726c2f70726f64756374732f4d6963436f725468695061724d6172526f6f5f323031302d31302d30352e63726c306006082b0601050507010104543052305006082b060105050730028644687474703a2f2f7777772e6d6963726f736f66742e636f6d2f706b692f63657274732f4d6963436f725468695061724d6172526f6f5f323031302d31302d30352e637274300d06092a864886f70d01010b05000382020100350842ff30cccef7760cad1068583529463276277cef124127421b4aaa6d813848591355f3e95834a6160b82aa5dad82da808341068fb41df203b9f31a5d1bf15090f9b3558442281c20bdb2ae5114c5c0ac9795211c90db0ffc779e95739188cabdbd52b905500ddf579ea061ed0de56d25d9400f1740c8cea34ac24daf9a121d08548fbdc7bcb92b3d492b1f32fc6a21694f9bc87e4234fc3606178b8f2040c0b39a257527cdc903a3f65dd1e736547ab950b5d312d107bfbb74dfdc1e8f80d5ed18f42f14166b2fde668cb023e5c784d8edeac13382ad564b182df1689507cdcff072f0aebbdd8685982c214c332bf00f4af06887b592553275a16a826a3ca32511a4edadd704aecbd84059a084d1954c6291221a741d8c3d470e44a6e4b09b3435b1fab653a82c81eca40571c89db8bae81b4466e447540e8e567fb39f1698b286d0683e9023b52f5e8f50858dc68d825f41a1f42e0de099d26c75e4b669b52186fa07d1f6e24dd1daad2c77531e253237c76c52729586b0f135616a19f5b23b815056a6322dfea289f94286271855a182ca5a9bf830985414a64796252fc826e441941a5c023fe596e3855b3c3e3fbb47167255e22522b1d97be703062aa3f71e9046c3000dd61989e30e352762037115a6efd027a0a0593760f83894b8e07870f8ba4c868794f6e0ae0245ee65c2b6a37e69167507929bf5a6bc598358a159c0a5e494a74a87b5ab155c2bf0720706000000000000eb050000bd9afa775903324dbd6028f4e78f784b308205d7308203bfa003020102020a61077656000000000008300d06092a864886f70d01010b0500308188310b3009060355040613025553311330110603550408130a57617368696e67746f6e3110300e060355040713075265646d6f6e64311e301c060355040a13154d6963726f736f667420436f72706f726174696f6e31323030060355040313294d6963726f736f667420526f6f7420436572746966696361746520417574686f726974792032303130301e170d3131313031393138343134325a170d3236313031393138353134325a308184310b3009060355040613025553311330110603550408130a57617368696e67746f6e3110300e060355040713075265646d6f6e64311e301c060355040a13154d6963726f736f667420436f72706f726174696f6e312e302c060355040313254d6963726f736f66742057696e646f77732050726f64756374696f6e20504341203230313130820122300d06092a864886f70d01010105000382010f003082010a0282010100dd0cbba2e42e09e3e7c5f79669bc0021bd693333efad04cb5480ee0683bbc52084d9f7d28bf338b0aba4ad2d7c627905ffe34a3f04352070e3c4e76be09cc03675e98a31dd8d70e5dc37b5744696285b8760232cbfdc47a567f751279e72eb07a6c9b91e3b53357ce5d3ec27b9871cfeb9c923096fa84691c16e963c41d3cba33f5d026a4dec691f25285c36fffd43150a94e019b4cfdfc212e2c25b27ee2778308b5b2a096b22895360162cc0681d53baec49f39d618c85680973445d7da2542bdd79f715cf355d6c1c2b5ccebc9c238b6f6eb526d93613c34fd627aeb9323b41922ce1c7cd77e8aa544ef75c0b048765b44318a8b2e06d1977ec5a24fa48030203010001a38201433082013f301006092b06010401823715010403020100301d0603551d0e04160414a92902398e16c49778cd90f99e4f9ae17c55af53301906092b0601040182371402040c1e0a00530075006200430041300b0603551d0f040403020186300f0603551d130101ff040530030101ff301f0603551d23041830168014d5f656cb8fe8a25c6268d13d94905bd7ce9a18c430560603551d1f044f304d304ba049a0478645687474703a2f2f63726c2e6d6963726f736f66742e636f6d2f706b692f63726c2f70726f64756374732f4d6963526f6f4365724175745f323031302d30362d32332e63726c305a06082b06010505070101044e304c304a06082b06010505073002863e687474703a2f2f7777772e6d6963726f736f66742e636f6d2f706b692f63657274732f4d6963526f6f4365724175745f323031302d30362d32332e637274300d06092a864886f70d01010b0500038202010014fc7c7151a579c26eb2ef393ebc3c520f6e2b3f101373fea868d048a6344d8a960526ee3146906179d6ff382e456bf4c0e528b8da1d8f8adb09d71ac74c0a36666a8cec1bd70490a81817a49bb9e240323676c4c15ac6bfe404c0ea16d3acc368ef62acdd546c503058a6eb7cfe94a74e8ef4ec7c867357c2522173345af3a38a56c804da0709edf88be3cef47e8eaef0f60b8a08fb3fc91d727f53b8ebbe63e0e33d3165b081e5f2accd16a49f3da8b19bc242d090845f541dff89eaba1d47906fb0734e419f409f5fe5a12ab21191738a2128f0cede73395f3eab5c60ecdf0310a8d309e9f4f69685b67f51886647198da2b0123d812a680577bb914c627bb6c107c7ba7a8734030e4b627a99e9cafcce4a37c92da4577c1cfe3ddcb80f5afad6c4b30285023aeab3d96ee4692137de81d1f675190567d393575e291b39c8ee2de1cde445735bd0d2ce7aab1619824658d05e9d81b367af6c35f2bce53f24e235a20a7506f6185699d4782cd1051bebd088019daa10f105dfba7e2c63b7069b2321c4f9786ce2581706362b911203cca4d9f22dbaf9949d40ed1845f1ce8a5c6b3eab03d370182a0a6ae05f47d1d5630a32f2afd7361f2a705ae5425908714b57ba7e8381f0213cf41cc1c5b990930e88459386e9b12099be98cbc595a45d62d6a0630820bd7510777d3df345b99f979fcb57806f33a904cf77a4621c597ea159c0a5e494a74a87b5ab155c2bf07296030000000000007a0300005148dc265f19e14a9a19fbf883bbb35e308203663082024ea003020102020100300d06092a864886f70d01010b05003072310c300a06035504061303555341310b300906035504080c0243413111300f06035504070c0853616e204a6f736531223020060355040a0c195375706572204d6963726f20436f6d707574657220496e632e311e301c06035504030c1553555045524d4943524f20504b2043412032303138301e170d3138313231393030303030305a170d3333313231393030303030305a3077310c300a06035504061303555341310b300906035504080c0243413111300f06035504070c0853616e204a6f736531223020060355040a0c195375706572204d6963726f20436f6d707574657220496e632e3123302106035504030c1a53555045524d4943524f2050726f64756374204341203230313830820122300d06092a864886f70d01010105000382010f003082010a0282010100f1ca4d346a9b816d3f5852e7e7dae114ca309ea8c44f0d6ae069084d3d3539e4592d43d9289d0adc7033a28722aee91892d0dbe605a59f16af74a39b33eea1d2839a958c0b45f6b51c4af9182fc950ec9dec100be8e56e6fb89df08ab2ee123b9cc79046fbb257f1479e2657eaed1ee805397540096043ddec5bd238967d9069e7d3ad39ecebf45507976221a529bfbedf62ec1b1a00065b6c8541ab3f5055024ade1ee1d0a78b94cdb335c6e7de860c813f73296730ce16017b2e958fc69de3930f0c8018f71694aa60791df6094b9e1bf1d33fcc427256d2980629c1fefa5e0f38a557a663f30e6814a57f1cd9f5f553edfed1f6865320013e21a27c6f80070203010001a3023000300d06092a864886f70d01010b05000382010100365dc9c0f57f682738cbc02e279b0851975849d81cfa211fac7bc2c0bffad57bb9c8ca546507292146fc487dfaf3845b647d8671964e16bb8ea59ccb654462ecccba42b68bd8a4db98269ae408a70cdac93b80d363901e64a104127cc21a8de9def4f2d74067e5bad76d6e08c2355f1fdbab5d8ee0a17fd225aaa91a6f31c3a5c0e8f2a3b3475a6958383aa7bb64cc692710a2c40e7295e17e54e95be90cdd71adffb4b0b4280b485c0229942a589a2fb7623e3e1738361441483027642756a121da62b3efc0cbbe8d0267dcc866f2af1c4c4349052389c7628fc66aaf159a8cead746733b30b2a9fcb0737fd33b7cc7791a872b9dcc9498ac300a04259fe31aa159c0a5e494a74a87b5ab155c2bf07266040000000000004a0400005148dc265f19e14a9a19fbf883bbb35e308204363082031ea003020102020101300d06092a864886f70d0101050500306f310b300906035504061302534531143012060355040a130b416464547275737420414231263024060355040b131d41646454727573742045787465726e616c20545450204e6574776f726b312230200603550403131941646454727573742045787465726e616c20434120526f6f74301e170d3030303533303130343833385a170d3230303533303130343833385a306f310b300906035504061302534531143012060355040a130b416464547275737420414231263024060355040b131d41646454727573742045787465726e616c20545450204e6574776f726b312230200603550403131941646454727573742045787465726e616c20434120526f6f7430820122300d06092a864886f70d01010105000382010f003082010a0282010100b7f71a33e6f200042d39e04e5bed1fbc6c0fcdb5fa23b6cede9b113397a4294c7d939fbd4abc93ed031ae38fcfe56d505ad69729945a80b0497adb2e95fdb8cabf37382d1e3e9141ad7056c7f04f3fe8329e74cac89054e9c65f0f789d9a403c0eac61aa5e148f9e87a16a50dcd79a4eaf05b3a671949c71b350600ac7139d38078602a8e9a869261890ab4cb04f23ab3a4f84d8dfce9fe1696fbbd742d76b44e4c7adee6d415f725a710837b37965a459a09437f7002f0dc29272dad03872db14a845c45d2a7db7b4d6c4eeaccd1344b7c92bdd430025fa61b9696a582311b7a7338f567559f5cd29d746b70a2b65b6d3426f15b2b87bfbefe95d53d5345a270203010001a381dc3081d9301d0603551d0e04160414adbd987a34b426f7fac42654ef03bde024cb541a300b0603551d0f040403020106300f0603551d130101ff040530030101ff3081990603551d2304819130818e8014adbd987a34b426f7fac42654ef03bde024cb541aa173a471306f310b300906035504061302534531143012060355040a130b416464547275737420414231263024060355040b131d41646454727573742045787465726e616c20545450204e6574776f726b312230200603550403131941646454727573742045787465726e616c20434120526f6f74820101300d06092a864886f70d01010505000382010100b09be08525c2d623e20f9606929d41989cd9847981d91e5b14072336658fb0d877bbac416c47608351b0f9323de7fcf62613c78016a5bf5afc87cf787989219ae24c070a8635bcf2de51c4d296b7dc7e4eee70fd1c39eb0c0251142d8ebd16e0c1df4675e724adecf442b48593701067ba9d06354a18d32b7acc5142a17a63d1e6bba1c52bc236be130de6bd637e797ba7090d40ab6add8f8ac3f6f68c1a420551d445f59fa76221681520433c99e77cbd24d8a9911773883f561b313818b4710f9acdc80e9e8e2e1be18c9883cb1f31f1444cc604734976600fc7f8bd17806b2ee9cc4c0e5a9a790f200a2ed59e63261e559294d882175a7bd0bcc78f4e8604" ++- EventNum: 7 ++ PCRIndex: 7 ++ EventType: EV_EFI_VARIABLE_DRIVER_CONFIG ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "9e04b683b1ade74270dc6083dd716acc63a33310" ++ - AlgorithmId: sha256 ++ Digest: "a044b4ce4a4dca9af312c897dc56ee1727c385eb88f7cfb9092b8265029d5b1e" ++ EventSize: 3762 ++ Event: ++ VariableName: d719b2cb-3d3a-4596-a3bc-dad00e67656f ++ UnicodeNameLength: 3 ++ VariableDataLength: 3724 ++ UnicodeName: dbx ++ VariableData: "2616c4c14c509240aca941f9369343288c0e00000000000030000000bd9afa775903324dbd6028f4e78f784b80b4d96931bf0d02fd91a61e19d14f1da452e66db2408ca8604d411f92659f0abd9afa775903324dbd6028f4e78f784bf52f83a3fa9cfbd6920f722824dbe4034534d25b8507246b3b957dac6e1bce7abd9afa775903324dbd6028f4e78f784bc5d9d8a186e2c82d09afaa2a6f7f2e73870d3e64f72c4e08ef67796a840f0fbdbd9afa775903324dbd6028f4e78f784b363384d14d1f2e0b7815626484c459ad57a318ef4396266048d058c5a19bbf76bd9afa775903324dbd6028f4e78f784b1aec84b84b6c65a51220a9be7181965230210d62d6d33c48999c6b295a2b0a06bd9afa775903324dbd6028f4e78f784be6ca68e94146629af03f69c2f86e6bef62f930b37c6fbcc878b78df98c0334e5bd9afa775903324dbd6028f4e78f784bc3a99a460da464a057c3586d83cef5f4ae08b7103979ed8932742df0ed530c66bd9afa775903324dbd6028f4e78f784b58fb941aef95a25943b3fb5f2510a0df3fe44c58c95e0ab80487297568ab9771bd9afa775903324dbd6028f4e78f784b5391c3a2fb112102a6aa1edc25ae77e19f5d6f09cd09eeb2509922bfcd5992eabd9afa775903324dbd6028f4e78f784bd626157e1d6a718bc124ab8da27cbb65072ca03a7b6b257dbdcbbd60f65ef3d1bd9afa775903324dbd6028f4e78f784bd063ec28f67eba53f1642dbf7dff33c6a32add869f6013fe162e2c32f1cbe56dbd9afa775903324dbd6028f4e78f784b29c6eb52b43c3aa18b2cd8ed6ea8607cef3cfae1bafe1165755cf2e614844a44bd9afa775903324dbd6028f4e78f784b90fbe70e69d633408d3e170c6832dbb2d209e0272527dfb63d49d29572a6f44cbd9afa775903324dbd6028f4e78f784b075eea060589548ba060b2feed10da3c20c7fe9b17cd026b94e8a683b8115238bd9afa775903324dbd6028f4e78f784b07e6c6a858646fb1efc67903fe28b116011f2367fe92e6be2b36999eff39d09ebd9afa775903324dbd6028f4e78f784b09df5f4e511208ec78b96d12d08125fdb603868de39f6f72927852599b659c26bd9afa775903324dbd6028f4e78f784b0bbb4392daac7ab89b30a4ac657531b97bfaab04f90b0dafe5f9b6eb90a06374bd9afa775903324dbd6028f4e78f784b0c189339762df336ab3dd006a463df715a39cfb0f492465c600e6c6bd7bd898cbd9afa775903324dbd6028f4e78f784b0d0dbeca6f29eca06f331a7d72e4884b12097fb348983a2a14a0d73f4f10140fbd9afa775903324dbd6028f4e78f784b0dc9f3fb99962148c3ca833632758d3ed4fc8d0b0007b95b31e6528f2acd5bfcbd9afa775903324dbd6028f4e78f784b106faceacfecfd4e303b74f480a08098e2d0802b936f8ec774ce21f31686689cbd9afa775903324dbd6028f4e78f784b174e3a0b5b43c6a607bbd3404f05341e3dcf396267ce94f8b50e2e23a9da920cbd9afa775903324dbd6028f4e78f784b18333429ff0562ed9f97033e1148dceee52dbe2e496d5410b5cfd6c864d2d10fbd9afa775903324dbd6028f4e78f784b2b99cf26422e92fe365fbf4bc30d27086c9ee14b7a6fff44fb2f6b9001699939bd9afa775903324dbd6028f4e78f784b2bbf2ca7b8f1d91f27ee52b6fb2a5dd049b85a2b9b529c5d6662068104b055f8bd9afa775903324dbd6028f4e78f784b2c73d93325ba6dcbe589d4a4c63c5b935559ef92fbf050ed50c4e2085206f17dbd9afa775903324dbd6028f4e78f784b2e70916786a6f773511fa7181fab0f1d70b557c6322ea923b2a8d3b92b51af7dbd9afa775903324dbd6028f4e78f784b306628fa5477305728ba4a467de7d0387a54f569d3769fce5e75ec89d28d1593bd9afa775903324dbd6028f4e78f784b3608edbaf5ad0f41a414a1777abf2faf5e670334675ec3995e6935829e0caad2bd9afa775903324dbd6028f4e78f784b3841d221368d1583d75c0a02e62160394d6c4e0a6760b6f607b90362bc855b02bd9afa775903324dbd6028f4e78f784b3fce9b9fdf3ef09d5452b0f95ee481c2b7f06d743a737971558e70136ace3e73bd9afa775903324dbd6028f4e78f784b4397daca839e7f63077cb50c92df43bc2d2fb2a8f59f26fc7a0e4bd4d9751692bd9afa775903324dbd6028f4e78f784b47cc086127e2069a86e03a6bef2cd410f8c55a6d6bdb362168c31b2ce32a5adfbd9afa775903324dbd6028f4e78f784b518831fe7382b514d03e15c621228b8ab65479bd0cbfa3c5c1d0f48d9c306135bd9afa775903324dbd6028f4e78f784b5ae949ea8855eb93e439dbc65bda2e42852c2fdf6789fa146736e3c3410f2b5cbd9afa775903324dbd6028f4e78f784b6b1d138078e4418aa68deb7bb35e066092cf479eeb8ce4cd12e7d072ccb42f66bd9afa775903324dbd6028f4e78f784b6c8854478dd559e29351b826c06cb8bfef2b94ad3538358772d193f82ed1ca11bd9afa775903324dbd6028f4e78f784b6f1428ff71c9db0ed5af1f2e7bbfcbab647cc265ddf5b293cdb626f50a3a785ebd9afa775903324dbd6028f4e78f784b71f2906fd222497e54a34662ab2497fcc81020770ff51368e9e3d9bfcbfd6375bd9afa775903324dbd6028f4e78f784b726b3eb654046a30f3f83d9b96ce03f670e9a806d1708a0371e62dc49d2c23c1bd9afa775903324dbd6028f4e78f784b72e0bd1867cf5d9d56ab158adf3bddbc82bf32a8d8aa1d8c5e2f6df29428d6d8bd9afa775903324dbd6028f4e78f784b7827af99362cfaf0717dade4b1bfe0438ad171c15addc248b75bf8caa44bb2c5bd9afa775903324dbd6028f4e78f784b81a8b965bb84d3876b9429a95481cc955318cfaa1412d808c8a33bfd33fff0e4bd9afa775903324dbd6028f4e78f784b82db3bceb4f60843ce9d97c3d187cd9b5941cd3de8100e586f2bda5637575f67bd9afa775903324dbd6028f4e78f784b895a9785f617ca1d7ed44fc1a1470b71f3f1223862d9ff9dcc3ae2df92163dafbd9afa775903324dbd6028f4e78f784b8ad64859f195b5f58dafaa940b6a6167acd67a886e8f469364177221c55945b9bd9afa775903324dbd6028f4e78f784b8bf434b49e00ccf71502a2cd900865cb01ec3b3da03c35be505fdf7bd563f521bd9afa775903324dbd6028f4e78f784b8d8ea289cfe70a1c07ab7365cb28ee51edd33cf2506de888fbadd60ebf80481cbd9afa775903324dbd6028f4e78f784b9998d363c491be16bd74ba10b94d9291001611736fdca643a36664bc0f315a42bd9afa775903324dbd6028f4e78f784b9e4a69173161682e55fde8fef560eb88ec1ffedcaf04001f66c0caf707b2b734bd9afa775903324dbd6028f4e78f784ba6b5151f3655d3a2af0d472759796be4a4200e5495a7d869754c4848857408a7bd9afa775903324dbd6028f4e78f784ba7f32f508d4eb0fead9a087ef94ed1ba0aec5de6f7ef6ff0a62b93bedf5d458dbd9afa775903324dbd6028f4e78f784bad6826e1946d26d3eaf3685c88d97d85de3b4dcb3d0ee2ae81c70560d13c5720bd9afa775903324dbd6028f4e78f784baeebae3151271273ed95aa2e671139ed31a98567303a332298f83709a9d55aa1bd9afa775903324dbd6028f4e78f784bafe2030afb7d2cda13f9fa333a02e34f6751afec11b010dbcd441fdf4c4002b3bd9afa775903324dbd6028f4e78f784bb54f1ee636631fad68058d3b0937031ac1b90ccb17062a391cca68afdbe40d55bd9afa775903324dbd6028f4e78f784bb8f078d983a24ac433216393883514cd932c33af18e7dd70884c8235f4275736bd9afa775903324dbd6028f4e78f784bb97a0889059c035ff1d54b6db53b11b9766668d9f955247c028b2837d7a04cd9bd9afa775903324dbd6028f4e78f784bbc87a668e81966489cb508ee805183c19e6acd24cf17799ca062d2e384da0ea7bd9afa775903324dbd6028f4e78f784bc409bdac4775add8db92aa22b5b718fb8c94a1462c1fe9a416b95d8a3388c2fcbd9afa775903324dbd6028f4e78f784bc617c1a8b1ee2a811c28b5a81b4c83d7c98b5b0c27281d610207ebe692c2967fbd9afa775903324dbd6028f4e78f784bc90f336617b8e7f983975413c997f10b73eb267fd8a10cb9e3bdbfc667abdb8bbd9afa775903324dbd6028f4e78f784bcb6b858b40d3a098765815b592c1514a49604fafd60819da88d7a76e9778fef7bd9afa775903324dbd6028f4e78f784bce3bfabe59d67ce8ac8dfd4a16f7c43ef9c224513fbc655957d735fa29f540cebd9afa775903324dbd6028f4e78f784bd8cbeb9735f5672b367e4f96cdc74969615d17074ae96c724d42ce0216f8f3fabd9afa775903324dbd6028f4e78f784be92c22eb3b5642d65c1ec2caf247d2594738eebb7fb3841a44956f59e2b0d1fabd9afa775903324dbd6028f4e78f784bfddd6e3d29ea84c7743dad4a1bdbc700b5fec1b391f932409086acc71dd6dbd8bd9afa775903324dbd6028f4e78f784bfe63a84f782cc9d3fcf2ccf9fc11fbd03760878758d26285ed12669bdc6e6d01bd9afa775903324dbd6028f4e78f784bfecfb232d12e994b6d485d2c7167728aa5525984ad5ca61e7516221f079a1436bd9afa775903324dbd6028f4e78f784bca171d614a8d7e121c93948cd0fe55d39981f9d11aa96e03450a415227c2c65bbd9afa775903324dbd6028f4e78f784b55b99b0de53dbcfe485aa9c737cf3fb616ef3d91fab599aa7cab19eda763b5babd9afa775903324dbd6028f4e78f784b77dd190fa30d88ff5e3b011a0ae61e6209780c130b535ecb87e6f0888a0b6b2fbd9afa775903324dbd6028f4e78f784bc83cb13922ad99f560744675dd37cc94dcad5a1fcba6472fee341171d939e884bd9afa775903324dbd6028f4e78f784b3b0287533e0cc3d0ec1aa823cbf0a941aad8721579d1c499802dd1c3a636b8a9bd9afa775903324dbd6028f4e78f784b939aeef4f5fa51e23340c3f2e49048ce8872526afdf752c3a7f3a3f2bc9f6049bd9afa775903324dbd6028f4e78f784b64575bd912789a2e14ad56f6341f52af6bf80cf94400785975e9f04e2d64d745bd9afa775903324dbd6028f4e78f784b45c7c8ae750acfbb48fc37527d6412dd644daed8913ccd8a24c94d856967df8e" ++- EventNum: 8 ++ PCRIndex: 7 ++ EventType: EV_SEPARATOR ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "9069ca78e7450a285173431b3e52c5c25299e473" ++ - AlgorithmId: sha256 ++ Digest: "df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119" ++ EventSize: 4 ++ Event: "00000000" ++- EventNum: 9 ++ PCRIndex: 2 ++ EventType: EV_EFI_BOOT_SERVICES_DRIVER ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "1ed5faf8fa9dad50d625e1a6074768bf9a84310a" ++ - AlgorithmId: sha256 ++ Digest: "5e289969ac801159131e1f597da9e097abf0539692cb1b1b6199f4609ca81cac" ++ EventSize: 84 ++ Event: ++ ImageLocationInMemory: 0x64024018 ++ ImageLengthInMemory: 824656 ++ ImageLinkTimeAddress: 0x0 ++ LengthOfDevicePath: 52 ++ DevicePath: '02010c00d041030a0100000001010600000001010600000004081800000000003846020000000000ff450600000000007fff0400' ++- EventNum: 10 ++ PCRIndex: 2 ++ EventType: EV_EFI_BOOT_SERVICES_DRIVER ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "1ed5faf8fa9dad50d625e1a6074768bf9a84310a" ++ - AlgorithmId: sha256 ++ Digest: "5e289969ac801159131e1f597da9e097abf0539692cb1b1b6199f4609ca81cac" ++ EventSize: 84 ++ Event: ++ ImageLocationInMemory: 0x63f5a018 ++ ImageLengthInMemory: 824656 ++ ImageLinkTimeAddress: 0x0 ++ LengthOfDevicePath: 52 ++ DevicePath: '02010c00d041030a0100000001010600000001010600010004081800000000003846020000000000ff450600000000007fff0400' ++- EventNum: 11 ++ PCRIndex: 2 ++ EventType: EV_EFI_BOOT_SERVICES_DRIVER ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "1ed5faf8fa9dad50d625e1a6074768bf9a84310a" ++ - AlgorithmId: sha256 ++ Digest: "5e289969ac801159131e1f597da9e097abf0539692cb1b1b6199f4609ca81cac" ++ EventSize: 84 ++ Event: ++ ImageLocationInMemory: 0x63e8f018 ++ ImageLengthInMemory: 824656 ++ ImageLinkTimeAddress: 0x0 ++ LengthOfDevicePath: 52 ++ DevicePath: '02010c00d041030a0700000001010600000001010600000004081800000000003846020000000000ff450600000000007fff0400' ++- EventNum: 12 ++ PCRIndex: 2 ++ EventType: EV_EFI_BOOT_SERVICES_DRIVER ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "1ed5faf8fa9dad50d625e1a6074768bf9a84310a" ++ - AlgorithmId: sha256 ++ Digest: "5e289969ac801159131e1f597da9e097abf0539692cb1b1b6199f4609ca81cac" ++ EventSize: 84 ++ Event: ++ ImageLocationInMemory: 0x63dc4018 ++ ImageLengthInMemory: 824656 ++ ImageLinkTimeAddress: 0x0 ++ LengthOfDevicePath: 52 ++ DevicePath: '02010c00d041030a0700000001010600000001010600010004081800000000003846020000000000ff450600000000007fff0400' ++- EventNum: 13 ++ PCRIndex: 0 ++ EventType: EV_SEPARATOR ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "9069ca78e7450a285173431b3e52c5c25299e473" ++ - AlgorithmId: sha256 ++ Digest: "df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119" ++ EventSize: 4 ++ Event: "00000000" ++- EventNum: 14 ++ PCRIndex: 1 ++ EventType: EV_SEPARATOR ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "9069ca78e7450a285173431b3e52c5c25299e473" ++ - AlgorithmId: sha256 ++ Digest: "df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119" ++ EventSize: 4 ++ Event: "00000000" ++- EventNum: 15 ++ PCRIndex: 2 ++ EventType: EV_SEPARATOR ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "9069ca78e7450a285173431b3e52c5c25299e473" ++ - AlgorithmId: sha256 ++ Digest: "df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119" ++ EventSize: 4 ++ Event: "00000000" ++- EventNum: 16 ++ PCRIndex: 3 ++ EventType: EV_SEPARATOR ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "9069ca78e7450a285173431b3e52c5c25299e473" ++ - AlgorithmId: sha256 ++ Digest: "df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119" ++ EventSize: 4 ++ Event: "00000000" ++- EventNum: 17 ++ PCRIndex: 4 ++ EventType: EV_SEPARATOR ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "9069ca78e7450a285173431b3e52c5c25299e473" ++ - AlgorithmId: sha256 ++ Digest: "df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119" ++ EventSize: 4 ++ Event: "00000000" ++- EventNum: 18 ++ PCRIndex: 5 ++ EventType: EV_SEPARATOR ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "9069ca78e7450a285173431b3e52c5c25299e473" ++ - AlgorithmId: sha256 ++ Digest: "df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119" ++ EventSize: 4 ++ Event: "00000000" ++- EventNum: 19 ++ PCRIndex: 6 ++ EventType: EV_SEPARATOR ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "9069ca78e7450a285173431b3e52c5c25299e473" ++ - AlgorithmId: sha256 ++ Digest: "df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119" ++ EventSize: 4 ++ Event: "00000000" ++- EventNum: 20 ++ PCRIndex: 1 ++ EventType: EV_EFI_VARIABLE_BOOT ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "3fbcdfed545f8a229ff7ab955838c216bc73226e" ++ - AlgorithmId: sha256 ++ Digest: "81c2bf2cd2e222b0c5f8a78c860f1a94a4ae9683fc8bf1cc4ccd1ac95c3ec1f1" ++ EventSize: 82 ++ Event: ++ VariableName: 8be4df61-93ca-11d2-aa0d-00e098032b8c ++ UnicodeNameLength: 9 ++ VariableDataLength: 32 ++ UnicodeName: BootOrder ++ VariableData: "03000400050006000700080009000a000b000c000d000e000f00100011001200" ++- EventNum: 21 ++ PCRIndex: 1 ++ EventType: EV_EFI_VARIABLE_BOOT ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "ab8f235cfec34cb945db379107964afb766d63a0" ++ - AlgorithmId: sha256 ++ Digest: "fea5577091d37bed72a87bb407cb56033c6e01d326fd6abc5e0e34e6f18ef669" ++ EventSize: 412 ++ Event: ++ VariableName: 8be4df61-93ca-11d2-aa0d-00e098032b8c ++ UnicodeNameLength: 8 ++ VariableDataLength: 364 ++ UnicodeName: Boot0003 ++ VariableData: "01000000d60055004500460049003a0020005000580045002000490050003400200049006e00740065006c00280052002900200049003300350030002000470069006700610062006900740020004e006500740077006f0072006b00200043006f006e006e0065006300740069006f006e0020002d002000300043004300340037004100460046003600300031004300000002010c00d041030a03000000010106000000010106000000030b25000cc47aff601c000000000000000000000000000000000000000000000000000001030c1b0000000000000000000000000000000000000000000000007fff040001047600ef47642dc93ba041ac194d51d01b4ce65000580045002000490050003400200049006e00740065006c00280052002900200049003300350030002000470069006700610062006900740020004e006500740077006f0072006b00200043006f006e006e0065006300740069006f006e0000007fff04000000424f" ++- EventNum: 22 ++ PCRIndex: 1 ++ EventType: EV_EFI_VARIABLE_BOOT ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "a283f8148c1a2274d20ae232774e0d49d86352bb" ++ - AlgorithmId: sha256 ++ Digest: "bd7135d4382ec425c4bcd2883b4c3158e614b2fe6c34772b827908d645608e54" ++ EventSize: 412 ++ Event: ++ VariableName: 8be4df61-93ca-11d2-aa0d-00e098032b8c ++ UnicodeNameLength: 8 ++ VariableDataLength: 364 ++ UnicodeName: Boot0004 ++ VariableData: "01000000d60055004500460049003a0020005000580045002000490050003400200049006e00740065006c00280052002900200049003300350030002000470069006700610062006900740020004e006500740077006f0072006b00200043006f006e006e0065006300740069006f006e0020002d002000300043004300340037004100460046003600300031004400000002010c00d041030a03000000010106000000010106000100030b25000cc47aff601d000000000000000000000000000000000000000000000000000001030c1b0000000000000000000000000000000000000000000000007fff040001047600ef47642dc93ba041ac194d51d01b4ce65000580045002000490050003400200049006e00740065006c00280052002900200049003300350030002000470069006700610062006900740020004e006500740077006f0072006b00200043006f006e006e0065006300740069006f006e0000007fff04000000424f" ++- EventNum: 23 ++ PCRIndex: 1 ++ EventType: EV_EFI_VARIABLE_BOOT ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "6079de507c12a31a519f0d6b2d8523a009939479" ++ - AlgorithmId: sha256 ++ Digest: "9e6f529175c70959d5fb6cd20e581c50a073b2706a84f8f6e0047e268c859a1f" ++ EventSize: 412 ++ Event: ++ VariableName: 8be4df61-93ca-11d2-aa0d-00e098032b8c ++ UnicodeNameLength: 8 ++ VariableDataLength: 364 ++ UnicodeName: Boot0005 ++ VariableData: "01000000d60055004500460049003a0020005000580045002000490050003400200049006e00740065006c00280052002900200049003300350030002000470069006700610062006900740020004e006500740077006f0072006b00200043006f006e006e0065006300740069006f006e0020002d002000300043004300340037004100460046003600300031004500000002010c00d041030a03000000010106000000010106000200030b25000cc47aff601e000000000000000000000000000000000000000000000000000001030c1b0000000000000000000000000000000000000000000000007fff040001047600ef47642dc93ba041ac194d51d01b4ce65000580045002000490050003400200049006e00740065006c00280052002900200049003300350030002000470069006700610062006900740020004e006500740077006f0072006b00200043006f006e006e0065006300740069006f006e0000007fff04000000424f" ++- EventNum: 24 ++ PCRIndex: 1 ++ EventType: EV_EFI_VARIABLE_BOOT ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "491c47728c2a764a713ca293dd86a3bcc6574acd" ++ - AlgorithmId: sha256 ++ Digest: "e1164ad4c9a72c7461b52147d07a919239f6cd3060371030147ea22d2f295e8b" ++ EventSize: 412 ++ Event: ++ VariableName: 8be4df61-93ca-11d2-aa0d-00e098032b8c ++ UnicodeNameLength: 8 ++ VariableDataLength: 364 ++ UnicodeName: Boot0006 ++ VariableData: "01000000d60055004500460049003a0020005000580045002000490050003400200049006e00740065006c00280052002900200049003300350030002000470069006700610062006900740020004e006500740077006f0072006b00200043006f006e006e0065006300740069006f006e0020002d002000300043004300340037004100460046003600300031004600000002010c00d041030a03000000010106000000010106000300030b25000cc47aff601f000000000000000000000000000000000000000000000000000001030c1b0000000000000000000000000000000000000000000000007fff040001047600ef47642dc93ba041ac194d51d01b4ce65000580045002000490050003400200049006e00740065006c00280052002900200049003300350030002000470069006700610062006900740020004e006500740077006f0072006b00200043006f006e006e0065006300740069006f006e0000007fff04000000424f" ++- EventNum: 25 ++ PCRIndex: 1 ++ EventType: EV_EFI_VARIABLE_BOOT ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "cccd72d0384c263c30083350e922cd88455ae4af" ++ - AlgorithmId: sha256 ++ Digest: "d9166803ad7ec9bf31c784603e67d1871a8e78fdb731aa307a6a784f7247e210" ++ EventSize: 445 ++ Event: ++ VariableName: 8be4df61-93ca-11d2-aa0d-00e098032b8c ++ UnicodeNameLength: 8 ++ VariableDataLength: 397 ++ UnicodeName: Boot0007 ++ VariableData: "01000000f70055004500460049003a0020005000580045002000490050003600200049006e00740065006c00280052002900200049003300350030002000470069006700610062006900740020004e006500740077006f0072006b00200043006f006e006e0065006300740069006f006e0020002d002000300043004300340037004100460046003600300031004300000002010c00d041030a03000000010106000000010106000000030b25000cc47aff601c000000000000000000000000000000000000000000000000000001030d3c0000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000007fff040001047600ef47642dc93ba041ac194d51d01b4ce65000580045002000490050003600200049006e00740065006c00280052002900200049003300350030002000470069006700610062006900740020004e006500740077006f0072006b00200043006f006e006e0065006300740069006f006e0000007fff04000000424f" ++- EventNum: 26 ++ PCRIndex: 1 ++ EventType: EV_EFI_VARIABLE_BOOT ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "40799f11371d4622bdc9dc56df37275232198cdd" ++ - AlgorithmId: sha256 ++ Digest: "1a596869d57e235fc7ec6d1f6acd1bd1cbd2f9ec3440d6b3487bd324aaa19201" ++ EventSize: 445 ++ Event: ++ VariableName: 8be4df61-93ca-11d2-aa0d-00e098032b8c ++ UnicodeNameLength: 8 ++ VariableDataLength: 397 ++ UnicodeName: Boot0008 ++ VariableData: "01000000f70055004500460049003a0020005000580045002000490050003600200049006e00740065006c00280052002900200049003300350030002000470069006700610062006900740020004e006500740077006f0072006b00200043006f006e006e0065006300740069006f006e0020002d002000300043004300340037004100460046003600300031004400000002010c00d041030a03000000010106000000010106000100030b25000cc47aff601d000000000000000000000000000000000000000000000000000001030d3c0000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000007fff040001047600ef47642dc93ba041ac194d51d01b4ce65000580045002000490050003600200049006e00740065006c00280052002900200049003300350030002000470069006700610062006900740020004e006500740077006f0072006b00200043006f006e006e0065006300740069006f006e0000007fff04000000424f" ++- EventNum: 27 ++ PCRIndex: 1 ++ EventType: EV_EFI_VARIABLE_BOOT ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "27c7946f5b4dfed6d0eed64012ee65c2cad395c1" ++ - AlgorithmId: sha256 ++ Digest: "619b3c339875dd903a0421c4074391eca096aa640d73fc6c54a3dc37634d176d" ++ EventSize: 445 ++ Event: ++ VariableName: 8be4df61-93ca-11d2-aa0d-00e098032b8c ++ UnicodeNameLength: 8 ++ VariableDataLength: 397 ++ UnicodeName: Boot0009 ++ VariableData: "01000000f70055004500460049003a0020005000580045002000490050003600200049006e00740065006c00280052002900200049003300350030002000470069006700610062006900740020004e006500740077006f0072006b00200043006f006e006e0065006300740069006f006e0020002d002000300043004300340037004100460046003600300031004500000002010c00d041030a03000000010106000000010106000200030b25000cc47aff601e000000000000000000000000000000000000000000000000000001030d3c0000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000007fff040001047600ef47642dc93ba041ac194d51d01b4ce65000580045002000490050003600200049006e00740065006c00280052002900200049003300350030002000470069006700610062006900740020004e006500740077006f0072006b00200043006f006e006e0065006300740069006f006e0000007fff04000000424f" ++- EventNum: 28 ++ PCRIndex: 1 ++ EventType: EV_EFI_VARIABLE_BOOT ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "9f65926fbb5e7aa9178e7184a0fa8213225ad8e0" ++ - AlgorithmId: sha256 ++ Digest: "6e11a6a0b05f717762254ffefa804f3891935e2718171cb808083ffb4d420910" ++ EventSize: 445 ++ Event: ++ VariableName: 8be4df61-93ca-11d2-aa0d-00e098032b8c ++ UnicodeNameLength: 8 ++ VariableDataLength: 397 ++ UnicodeName: Boot000A ++ VariableData: "01000000f70055004500460049003a0020005000580045002000490050003600200049006e00740065006c00280052002900200049003300350030002000470069006700610062006900740020004e006500740077006f0072006b00200043006f006e006e0065006300740069006f006e0020002d002000300043004300340037004100460046003600300031004600000002010c00d041030a03000000010106000000010106000300030b25000cc47aff601f000000000000000000000000000000000000000000000000000001030d3c0000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000007fff040001047600ef47642dc93ba041ac194d51d01b4ce65000580045002000490050003600200049006e00740065006c00280052002900200049003300350030002000470069006700610062006900740020004e006500740077006f0072006b00200043006f006e006e0065006300740069006f006e0000007fff04000000424f" ++- EventNum: 29 ++ PCRIndex: 1 ++ EventType: EV_EFI_VARIABLE_BOOT ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "43b8993cc724aef0ff74266de7f418afe4869af1" ++ - AlgorithmId: sha256 ++ Digest: "1a111c5eefbe71a0b88d3b4e3faea54e244b436efc17cee609c23f933cfdb928" ++ EventSize: 428 ++ Event: ++ VariableName: 8be4df61-93ca-11d2-aa0d-00e098032b8c ++ UnicodeNameLength: 8 ++ VariableDataLength: 380 ++ UnicodeName: Boot000B ++ VariableData: "01000000de0055004500460049003a002000500058004500200049005000340020004d0065006c006c0061006e006f00780020004e006500740077006f0072006b002000410064006100700074006500720020002d002000390038003a00300033003a00390042003a00380035003a00310033003a004200320020002d002000390038003000330039004200380035003100330042003200000002010c00d041030a01000000010106000000010106000000030b250098039b8513b2000000000000000000000000000000000000000000000000000001030c1b0000000000000000000000000000000000000000000000007fff040001047e00ef47642dc93ba041ac194d51d01b4ce6500058004500200049005000340020004d0065006c006c0061006e006f00780020004e006500740077006f0072006b002000410064006100700074006500720020002d002000390038003a00300033003a00390042003a00380035003a00310033003a004200320000007fff04000000424f" ++- EventNum: 30 ++ PCRIndex: 1 ++ EventType: EV_EFI_VARIABLE_BOOT ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "a0a104cc409220ad2ce2a1b62059524ae3aff0fe" ++ - AlgorithmId: sha256 ++ Digest: "46939493ec49f3e48eb0343f41f7398d650b3c7f8a7786977fd0a0250bec3a34" ++ EventSize: 428 ++ Event: ++ VariableName: 8be4df61-93ca-11d2-aa0d-00e098032b8c ++ UnicodeNameLength: 8 ++ VariableDataLength: 380 ++ UnicodeName: Boot000C ++ VariableData: "01000000de0055004500460049003a002000500058004500200049005000340020004d0065006c006c0061006e006f00780020004e006500740077006f0072006b002000410064006100700074006500720020002d002000390038003a00300033003a00390042003a00380035003a00310033003a004200330020002d002000390038003000330039004200380035003100330042003300000002010c00d041030a01000000010106000000010106000100030b250098039b8513b3000000000000000000000000000000000000000000000000000001030c1b0000000000000000000000000000000000000000000000007fff040001047e00ef47642dc93ba041ac194d51d01b4ce6500058004500200049005000340020004d0065006c006c0061006e006f00780020004e006500740077006f0072006b002000410064006100700074006500720020002d002000390038003a00300033003a00390042003a00380035003a00310033003a004200330000007fff04000000424f" ++- EventNum: 31 ++ PCRIndex: 1 ++ EventType: EV_EFI_VARIABLE_BOOT ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "60fe0bf01ce026034c6b8118ebeea0c475a540f2" ++ - AlgorithmId: sha256 ++ Digest: "3931124f8b48fee5d7ecd2aad1bd1ef5b5f963b82533540fbe613093941feb6d" ++ EventSize: 428 ++ Event: ++ VariableName: 8be4df61-93ca-11d2-aa0d-00e098032b8c ++ UnicodeNameLength: 8 ++ VariableDataLength: 380 ++ UnicodeName: Boot000D ++ VariableData: "01000000de0055004500460049003a002000500058004500200049005000340020004d0065006c006c0061006e006f00780020004e006500740077006f0072006b002000410064006100700074006500720020002d002000390038003a00300033003a00390042003a00380034003a00420033003a004100450020002d002000390038003000330039004200380034004200330041004500000002010c00d041030a07000000010106000000010106000000030b250098039b84b3ae000000000000000000000000000000000000000000000000000001030c1b0000000000000000000000000000000000000000000000007fff040001047e00ef47642dc93ba041ac194d51d01b4ce6500058004500200049005000340020004d0065006c006c0061006e006f00780020004e006500740077006f0072006b002000410064006100700074006500720020002d002000390038003a00300033003a00390042003a00380034003a00420033003a004100450000007fff04000000424f" ++- EventNum: 32 ++ PCRIndex: 1 ++ EventType: EV_EFI_VARIABLE_BOOT ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "65c18f85c810ce0ad60ef430a52720afb5bab9ce" ++ - AlgorithmId: sha256 ++ Digest: "74c91d245d5eaf3f0f90632ddf130b761e2eb0e32f1f9e7ded3dea1077b62b45" ++ EventSize: 428 ++ Event: ++ VariableName: 8be4df61-93ca-11d2-aa0d-00e098032b8c ++ UnicodeNameLength: 8 ++ VariableDataLength: 380 ++ UnicodeName: Boot000E ++ VariableData: "01000000de0055004500460049003a002000500058004500200049005000340020004d0065006c006c0061006e006f00780020004e006500740077006f0072006b002000410064006100700074006500720020002d002000390038003a00300033003a00390042003a00380034003a00420033003a004100460020002d002000390038003000330039004200380034004200330041004600000002010c00d041030a07000000010106000000010106000100030b250098039b84b3af000000000000000000000000000000000000000000000000000001030c1b0000000000000000000000000000000000000000000000007fff040001047e00ef47642dc93ba041ac194d51d01b4ce6500058004500200049005000340020004d0065006c006c0061006e006f00780020004e006500740077006f0072006b002000410064006100700074006500720020002d002000390038003a00300033003a00390042003a00380034003a00420033003a004100460000007fff04000000424f" ++- EventNum: 33 ++ PCRIndex: 1 ++ EventType: EV_EFI_VARIABLE_BOOT ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "f09ac7d0f63fabb71a6e07f42ccb8b33f6eda18c" ++ - AlgorithmId: sha256 ++ Digest: "13538ae1f5d103bf4cb869a03af4ea3f4e519c72d2ce03c746b69d70b01b01b7" ++ EventSize: 461 ++ Event: ++ VariableName: 8be4df61-93ca-11d2-aa0d-00e098032b8c ++ UnicodeNameLength: 8 ++ VariableDataLength: 413 ++ UnicodeName: Boot000F ++ VariableData: "01000000ff0055004500460049003a002000500058004500200049005000360020004d0065006c006c0061006e006f00780020004e006500740077006f0072006b002000410064006100700074006500720020002d002000390038003a00300033003a00390042003a00380035003a00310033003a004200320020002d002000390038003000330039004200380035003100330042003200000002010c00d041030a01000000010106000000010106000000030b250098039b8513b2000000000000000000000000000000000000000000000000000001030d3c0000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000007fff040001047e00ef47642dc93ba041ac194d51d01b4ce6500058004500200049005000360020004d0065006c006c0061006e006f00780020004e006500740077006f0072006b002000410064006100700074006500720020002d002000390038003a00300033003a00390042003a00380035003a00310033003a004200320000007fff04000000424f" ++- EventNum: 34 ++ PCRIndex: 1 ++ EventType: EV_EFI_VARIABLE_BOOT ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "193d033d6ab3c90a60a36aff76b9b7dfd907a35c" ++ - AlgorithmId: sha256 ++ Digest: "c446edae2ef61641940b7b7327727f46d6949976e01bce7d9be6f59a61c8e5c6" ++ EventSize: 461 ++ Event: ++ VariableName: 8be4df61-93ca-11d2-aa0d-00e098032b8c ++ UnicodeNameLength: 8 ++ VariableDataLength: 413 ++ UnicodeName: Boot0010 ++ VariableData: "01000000ff0055004500460049003a002000500058004500200049005000360020004d0065006c006c0061006e006f00780020004e006500740077006f0072006b002000410064006100700074006500720020002d002000390038003a00300033003a00390042003a00380035003a00310033003a004200330020002d002000390038003000330039004200380035003100330042003300000002010c00d041030a01000000010106000000010106000100030b250098039b8513b3000000000000000000000000000000000000000000000000000001030d3c0000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000007fff040001047e00ef47642dc93ba041ac194d51d01b4ce6500058004500200049005000360020004d0065006c006c0061006e006f00780020004e006500740077006f0072006b002000410064006100700074006500720020002d002000390038003a00300033003a00390042003a00380035003a00310033003a004200330000007fff04000000424f" ++- EventNum: 35 ++ PCRIndex: 1 ++ EventType: EV_EFI_VARIABLE_BOOT ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "c0b3116068d56a56863a02bc9db22056473610b2" ++ - AlgorithmId: sha256 ++ Digest: "b647961910b82cd63606cafd5308b071d70470d215dd8df122323bda413a7549" ++ EventSize: 461 ++ Event: ++ VariableName: 8be4df61-93ca-11d2-aa0d-00e098032b8c ++ UnicodeNameLength: 8 ++ VariableDataLength: 413 ++ UnicodeName: Boot0011 ++ VariableData: "01000000ff0055004500460049003a002000500058004500200049005000360020004d0065006c006c0061006e006f00780020004e006500740077006f0072006b002000410064006100700074006500720020002d002000390038003a00300033003a00390042003a00380034003a00420033003a004100450020002d002000390038003000330039004200380034004200330041004500000002010c00d041030a07000000010106000000010106000000030b250098039b84b3ae000000000000000000000000000000000000000000000000000001030d3c0000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000007fff040001047e00ef47642dc93ba041ac194d51d01b4ce6500058004500200049005000360020004d0065006c006c0061006e006f00780020004e006500740077006f0072006b002000410064006100700074006500720020002d002000390038003a00300033003a00390042003a00380034003a00420033003a004100450000007fff04000000424f" ++- EventNum: 36 ++ PCRIndex: 1 ++ EventType: EV_EFI_VARIABLE_BOOT ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "03fc508b0686f5b664f10096d0e0a79c149ad04a" ++ - AlgorithmId: sha256 ++ Digest: "f0da5d94cd5a4bd61074301f7d97559ed9299a3d11abfdddb597d4c9116fc28b" ++ EventSize: 461 ++ Event: ++ VariableName: 8be4df61-93ca-11d2-aa0d-00e098032b8c ++ UnicodeNameLength: 8 ++ VariableDataLength: 413 ++ UnicodeName: Boot0012 ++ VariableData: "01000000ff0055004500460049003a002000500058004500200049005000360020004d0065006c006c0061006e006f00780020004e006500740077006f0072006b002000410064006100700074006500720020002d002000390038003a00300033003a00390042003a00380034003a00420033003a004100460020002d002000390038003000330039004200380034004200330041004600000002010c00d041030a07000000010106000000010106000100030b250098039b84b3af000000000000000000000000000000000000000000000000000001030d3c0000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000007fff040001047e00ef47642dc93ba041ac194d51d01b4ce6500058004500200049005000360020004d0065006c006c0061006e006f00780020004e006500740077006f0072006b002000410064006100700074006500720020002d002000390038003a00300033003a00390042003a00380034003a00420033003a004100460000007fff04000000424f" ++- EventNum: 37 ++ PCRIndex: 7 ++ EventType: EV_EFI_VARIABLE_AUTHORITY ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "8b5866854c0b829dd967a1d9f100a3920d412792" ++ - AlgorithmId: sha256 ++ Digest: "4d4a8e2c74133bbdc01a16eaf2dbb5d575afeb36f5d8dfcf609ae043909e2ee9" ++ EventSize: 1608 ++ Event: ++ VariableName: d719b2cb-3d3a-4596-a3bc-dad00e67656f ++ UnicodeNameLength: 2 ++ VariableDataLength: 1572 ++ UnicodeName: db ++ VariableData: "bd9afa775903324dbd6028f4e78f784b30820610308203f8a003020102020a6108d3c4000000000004300d06092a864886f70d01010b0500308191310b3009060355040613025553311330110603550408130a57617368696e67746f6e3110300e060355040713075265646d6f6e64311e301c060355040a13154d6963726f736f667420436f72706f726174696f6e313b3039060355040313324d6963726f736f667420436f72706f726174696f6e205468697264205061727479204d61726b6574706c61636520526f6f74301e170d3131303632373231323234355a170d3236303632373231333234355a308181310b3009060355040613025553311330110603550408130a57617368696e67746f6e3110300e060355040713075265646d6f6e64311e301c060355040a13154d6963726f736f667420436f72706f726174696f6e312b3029060355040313224d6963726f736f667420436f72706f726174696f6e2055454649204341203230313130820122300d06092a864886f70d01010105000382010f003082010a0282010100a5086c4cc745096a4b0ca4c0877f06750c43015464e0167f07ed927d0bb273bf0c0ac64a4561a0c5162d96d3f52ba0fb4d499b4180903cb954fde6bcd19dc4a4188a7f418a5c59836832bb8c47c9ee71bc214f9a8a7cff443f8d8f32b22648ae75b5eec94c1e4a197ee4829a1d78774d0cb0bdf60fd316d3bcfa2ba551385df5fbbadb7802dbffec0a1b96d583b81913e9b6c07b407be11f2827c9faef565e1ce67e947ec0f044b27939e5dab2628b4dbf3870e2682414c933a40837d558695ed37cedc1045308e74eb02a876308616f631559eab22b79d70c61678a5bfd5ead877fba86674f71581222042222ce8bef547100ce503558769508ee6ab1a201d50203010001a382017630820172301206092b060104018237150104050203010001302306092b060104018237150204160414f8c16bb77f77534af325371d4ea1267b0f207080301d0603551d0e0416041413adbf4309bd82709c8cd54f316ed522988a1bd4301906092b0601040182371402040c1e0a00530075006200430041300b0603551d0f040403020186300f0603551d130101ff040530030101ff301f0603551d2304183016801445665243e17e5811bfd64e9e2355083b3a226aa8305c0603551d1f045530533051a04fa04d864b687474703a2f2f63726c2e6d6963726f736f66742e636f6d2f706b692f63726c2f70726f64756374732f4d6963436f725468695061724d6172526f6f5f323031302d31302d30352e63726c306006082b0601050507010104543052305006082b060105050730028644687474703a2f2f7777772e6d6963726f736f66742e636f6d2f706b692f63657274732f4d6963436f725468695061724d6172526f6f5f323031302d31302d30352e637274300d06092a864886f70d01010b05000382020100350842ff30cccef7760cad1068583529463276277cef124127421b4aaa6d813848591355f3e95834a6160b82aa5dad82da808341068fb41df203b9f31a5d1bf15090f9b3558442281c20bdb2ae5114c5c0ac9795211c90db0ffc779e95739188cabdbd52b905500ddf579ea061ed0de56d25d9400f1740c8cea34ac24daf9a121d08548fbdc7bcb92b3d492b1f32fc6a21694f9bc87e4234fc3606178b8f2040c0b39a257527cdc903a3f65dd1e736547ab950b5d312d107bfbb74dfdc1e8f80d5ed18f42f14166b2fde668cb023e5c784d8edeac13382ad564b182df1689507cdcff072f0aebbdd8685982c214c332bf00f4af06887b592553275a16a826a3ca32511a4edadd704aecbd84059a084d1954c6291221a741d8c3d470e44a6e4b09b3435b1fab653a82c81eca40571c89db8bae81b4466e447540e8e567fb39f1698b286d0683e9023b52f5e8f50858dc68d825f41a1f42e0de099d26c75e4b669b52186fa07d1f6e24dd1daad2c77531e253237c76c52729586b0f135616a19f5b23b815056a6322dfea289f94286271855a182ca5a9bf830985414a64796252fc826e441941a5c023fe596e3855b3c3e3fbb47167255e22522b1d97be703062aa3f71e9046c3000dd61989e30e352762037115a6efd027a0a0593760f83894b8e07870f8ba4c868794f6e0ae0245ee65c2b6a37e69167507929bf5a6bc598358" ++- EventNum: 38 ++ PCRIndex: 4 ++ EventType: EV_EFI_BOOT_SERVICES_APPLICATION ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "d0e6f939f1304a83975f34ff678da573ae2b3ee5" ++ - AlgorithmId: sha256 ++ Digest: "007f4c95125713b112093e21663e2d23e3c1ae9ce4b5de0d58a297332336a2d8" ++ EventSize: 124 ++ Event: ++ ImageLocationInMemory: 0x6202f018 ++ ImageLengthInMemory: 1334816 ++ ImageLinkTimeAddress: 0x0 ++ LengthOfDevicePath: 92 ++ DevicePath: '02010c00d041030a03000000010106000000010106000000030b25000cc47aff601c000000000000000000000000000000000000000000000000000001030c1b0000000000000000000000000000000000000000000000007fff0400' ++- EventNum: 39 ++ PCRIndex: 4 ++ EventType: EV_EFI_BOOT_SERVICES_APPLICATION ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "55bff7d9ff94e4b2bd103689efdc8ae260671a05" ++ - AlgorithmId: sha256 ++ Digest: "aa1bfb5a9f43668a5dcea2d1af0b7d9535c45c7cd63cc990d3148b76e5360e63" ++ EventSize: 41 ++ Event: ++ ImageLocationInMemory: 0x0 ++ ImageLengthInMemory: 0 ++ ImageLinkTimeAddress: 0x0 ++ LengthOfDevicePath: 0 ++ DevicePath: '00b0150000c01500af' ++- EventNum: 40 ++ PCRIndex: 7 ++ EventType: EV_EFI_VARIABLE_AUTHORITY ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "185db6197a44b1f2e728982752efbd86ee6cb5df" ++ - AlgorithmId: sha256 ++ Digest: "70f0dca0fd93403e2ed2e7106781db1e002b1cbae77ff3a2e23cab46eb6349d2" ++ EventSize: 1126 ++ Event: ++ VariableName: 605dab50-e046-4300-abb6-3dd810dd8b23 ++ UnicodeNameLength: 4 ++ VariableDataLength: 1080 ++ UnicodeName: Shim ++ VariableData: "308204343082031ca003020102020900b94124a0182c9267300d06092a864886f70d01010b0500308184310b30090603550406130247423114301206035504080c0b49736c65206f66204d616e3110300e06035504070c07446f75676c617331173015060355040a0c0e43616e6f6e6963616c204c74642e3134303206035504030c2b43616e6f6e6963616c204c74642e204d617374657220436572746966696361746520417574686f72697479301e170d3132303431323131313235315a170d3432303431313131313235315a308184310b30090603550406130247423114301206035504080c0b49736c65206f66204d616e3110300e06035504070c07446f75676c617331173015060355040a0c0e43616e6f6e6963616c204c74642e3134303206035504030c2b43616e6f6e6963616c204c74642e204d617374657220436572746966696361746520417574686f7269747930820122300d06092a864886f70d01010105000382010f003082010a0282010100bf5b3a1674ee215dae61ed9d56acbddede72f3dd7e2d4c620facc06d480811cf8d8bfb611f27cc116ed9553d3954eb403bb1bbe2853479caf77bbfba7ac8102d197dad59cfa6d4e94e0fdaae52ea4c9e90cec6990d4e6765785df9d1d5384a4a7a8f939c7f1aa385dbcefa8bf7c2a2212d9b5441351057138d6cbc2906504a7eea99a968a73bc7071b329ea019870e79bb68992d7e9352e5f6ebc99bf92bedb86849bcd99550405bc5b271aaeb5c57de71f9400add5bac1e842d501a52d6e1f36b6e90644f5bb4eb20e46110da5af0eae442d701c4fe211fd9b9c05495428152721f49647ac86c24f108700b4da5a032d1a01c57a84de3afa58e05053e1043a10203010001a381a63081a3301d0603551d0e04160414ad91990bc22ab1f517048c23b6655a268e345a63301f0603551d23041830168014ad91990bc22ab1f517048c23b6655a268e345a63300f0603551d130101ff040530030101ff300b0603551d0f04040302018630430603551d1f043c303a3038a036a0348632687474703a2f2f7777772e63616e6f6e6963616c2e636f6d2f7365637572652d626f6f742d6d61737465722d63612e63726c300d06092a864886f70d01010b050003820101003f7df676a5b383b42b7ad06d521a0383c412a7509c4792ccc0947782d2ae57b39904f5323ac6551d07db12a956fad8d47620ebe4c351db9a5c9c923f1873da946aa199388ca4886dc1fc3971d0747616033e562335d555475b1a1d41c2d3124cdcffae0a929c620a17019c73e05eb1fdbcd6b519117a7ecd3e037e66db5ba8c9394851ff53e19c3153911b3b10750317bae681028094704c46b794b03d15cd1f8e02e068028ffbf9471d7da201c60751c49accedddcfa35ded92bbbed1fde6ec1f33517304be3c72b07d08f801ff987dcb9ce069397725477188b18d27a52ea8f73f5f8069973ea9f49914dbce030e0b66c41c6dbdb82777c14294bdfc6a0abc" ++- EventNum: 41 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "1bdd2d91eb90e0994dd7c665f0bf723dec5c157e" ++ - AlgorithmId: sha256 ++ Digest: "88f548359c31bb4694f1cc1adfab640b2029b6b0e36fb0f0dbd536f6a67d8303" ++ EventSize: 63 ++ Event: ++ String: |- ++ "grub_cmd: [ -e (tftp,192.168.0.141)/grub/x86_64-efi/grub.cfg ]\0" ++- EventNum: 42 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "06e3f9ed5c9c31597b78acf87952c85e32b92140" ++ - AlgorithmId: sha256 ++ Digest: "6446c28b60e77f34a8179eb81c80f9f62e0f9715db2c5bcff0f17a6297d683e9" ++ EventSize: 52 ++ Event: ++ String: |- ++ "grub_cmd: source (tftp,192.168.0.141)/grub/grub.cfg\0" ++- EventNum: 43 ++ PCRIndex: 9 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "92611a41b323df54a007d06aad1364ff9f38ec38" ++ - AlgorithmId: sha256 ++ Digest: "4bdd31ce57984441a126b501f74994482d7ad8929b7e2ed6c0371aeeca81ccd7" ++ EventSize: 35 ++ Event: ++ String: |- ++ "(tftp,192.168.0.141)/grub/grub.cfg\0" ++- EventNum: 44 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "9a4012c67699622cf0e3ad17d2b8193bbef96da5" ++ - AlgorithmId: sha256 ++ Digest: "60415688e1c91b8b66b7453a895281506a1ff292093e4d3648fba6e7215d0e5b" ++ EventSize: 63 ++ Event: ++ String: |- ++ "grub_cmd: configfile /boot/grub2/grub.cfg-01-0c:c4:7a:ff:60:1c\0" ++- EventNum: 45 ++ PCRIndex: 9 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "ab17c9d242ec3b97277d8ccff1d60040bd58c1ea" ++ - AlgorithmId: sha256 ++ Digest: "befbf1d7af3da4279cafb9f5104ff24cb3f029c7401cd03d50549f24241d0649" ++ EventSize: 42 ++ Event: ++ String: |- ++ "/boot/grub2/grub.cfg-01-0c:c4:7a:ff:60:1c\0" ++- EventNum: 46 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "732c713a6f4c3a388ee1b46624b7c3fe34d59d50" ++ - AlgorithmId: sha256 ++ Digest: "71a5b3b21ac3862f40fabb745a9649c3a1d34249b9706524c90b2480c298beb0" ++ EventSize: 24 ++ Event: ++ String: |- ++ "grub_cmd: set timeout=5\0" ++- EventNum: 47 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "067c1a87d082adda86e3e67c203723a43e4a6521" ++ - AlgorithmId: sha256 ++ Digest: "428ed11d62fff908eb26e85f2f36e59afa4234021664362aab1e5cd4e47081a7" ++ EventSize: 55 ++ Event: ++ String: |- ++ "grub_cmd: set default=xCAT OS Deployment, ugly GA hack\0" ++- EventNum: 48 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "f35488600a1319bb1ead72da6b55dceac2f8b5d5" ++ - AlgorithmId: sha256 ++ Digest: "aa151571c8d7ca866db234cfa68de48ea496d7222eadefdd261a15d7a9bdb861" ++ EventSize: 466 ++ Event: ++ String: |- ++ "grub_cmd: menuentry xCAT OS Deployment, ugly GA hack {" ++ " echo "Loading VEHV kernel ..."" ++ " linux /xcat/osimage/ubuntu18.04-x86_64-netboot-vgen/kernel imgurl=http://192.168.0.141//install/netboot/ubuntu18.04/x86_64/vgen/rootimg.tar.gz XCAT=192.168.0.141:3001 console=tty0 console=ttyS0,115200 biosdevname=0 net.ifnames=0 BOOTIF=01-$net_default_mac" ++ " echo "Loading VEHV ramdisk ..."" ++ " initrd /xcat/osimage/ubuntu18.04-x86_64-netboot-vgen/initrd-stateless.gz" ++ "}\0" ++- EventNum: 49 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "ac5dcc7ddd86999727f50debc576e3d946f49dec" ++ - AlgorithmId: sha256 ++ Digest: "78a5cbf6ecba75a2900414314c4e2f9e3fd584ea8adc3876bace146679a03e8e" ++ EventSize: 53 ++ Event: ++ String: |- ++ "grub_cmd: setparams xCAT OS Deployment, ugly GA hack\0" ++- EventNum: 50 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "30e89627e89f64dd128b48ff07e6604b7ecb10f3" ++ - AlgorithmId: sha256 ++ Digest: "bde7442e3918d9117eae0ebeab987d68b157f67b6ab47241651fe2d52db6fa1d" ++ EventSize: 39 ++ Event: ++ String: |- ++ "grub_cmd: echo Loading VEHV kernel ...\0" ++- EventNum: 51 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "7db0ad939a4643bc2bd1ba334d13ad4ab8958af0" ++ - AlgorithmId: sha256 ++ Digest: "39b1815072ffc4dc737aa771781840f6534784a606de47026bbbb1e1283033e3" ++ EventSize: 267 ++ Event: ++ String: |- ++ "grub_cmd: linux /xcat/osimage/ubuntu18.04-x86_64-netboot-vgen/kernel imgurl=http://192.168.0.141//install/netboot/ubuntu18.04/x86_64/vgen/rootimg.tar.gz XCAT=192.168.0.141:3001 console=tty0 console=ttyS0,115200 biosdevname=0 net.ifnames=0 BOOTIF=01-0c:c4:7a:ff:60:1c\0" ++- EventNum: 52 ++ PCRIndex: 9 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "52fa768d85240139c2d78d385b8cf19198f29ddf" ++ - AlgorithmId: sha256 ++ Digest: "5d8a44f7a785a2cb018cdfa2d29a6952e64739b2436e1ca33871d2af6a66e49e" ++ EventSize: 53 ++ Event: ++ String: |- ++ "/xcat/osimage/ubuntu18.04-x86_64-netboot-vgen/kernel\0" ++- EventNum: 53 ++ PCRIndex: 4 ++ EventType: EV_EFI_BOOT_SERVICES_APPLICATION ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "a4a911e25729725d9896fdf1bd3c21280f0b39fd" ++ - AlgorithmId: sha256 ++ Digest: "b0a2cdff7294f3831689383d895a90fc4ff6dacde3878e3c8bb28055ba0051ab" ++ EventSize: 41 ++ Event: ++ ImageLocationInMemory: 0x0 ++ ImageLengthInMemory: 0 ++ ImageLinkTimeAddress: 0x0 ++ LengthOfDevicePath: 0 ++ DevicePath: '80e9ad0080ebad00af' ++- EventNum: 54 ++ PCRIndex: 7 ++ EventType: EV_EFI_VARIABLE_AUTHORITY ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "185db6197a44b1f2e728982752efbd86ee6cb5df" ++ - AlgorithmId: sha256 ++ Digest: "70f0dca0fd93403e2ed2e7106781db1e002b1cbae77ff3a2e23cab46eb6349d2" ++ EventSize: 1126 ++ Event: ++ VariableName: 605dab50-e046-4300-abb6-3dd810dd8b23 ++ UnicodeNameLength: 4 ++ VariableDataLength: 1080 ++ UnicodeName: Shim ++ VariableData: "308204343082031ca003020102020900b94124a0182c9267300d06092a864886f70d01010b0500308184310b30090603550406130247423114301206035504080c0b49736c65206f66204d616e3110300e06035504070c07446f75676c617331173015060355040a0c0e43616e6f6e6963616c204c74642e3134303206035504030c2b43616e6f6e6963616c204c74642e204d617374657220436572746966696361746520417574686f72697479301e170d3132303431323131313235315a170d3432303431313131313235315a308184310b30090603550406130247423114301206035504080c0b49736c65206f66204d616e3110300e06035504070c07446f75676c617331173015060355040a0c0e43616e6f6e6963616c204c74642e3134303206035504030c2b43616e6f6e6963616c204c74642e204d617374657220436572746966696361746520417574686f7269747930820122300d06092a864886f70d01010105000382010f003082010a0282010100bf5b3a1674ee215dae61ed9d56acbddede72f3dd7e2d4c620facc06d480811cf8d8bfb611f27cc116ed9553d3954eb403bb1bbe2853479caf77bbfba7ac8102d197dad59cfa6d4e94e0fdaae52ea4c9e90cec6990d4e6765785df9d1d5384a4a7a8f939c7f1aa385dbcefa8bf7c2a2212d9b5441351057138d6cbc2906504a7eea99a968a73bc7071b329ea019870e79bb68992d7e9352e5f6ebc99bf92bedb86849bcd99550405bc5b271aaeb5c57de71f9400add5bac1e842d501a52d6e1f36b6e90644f5bb4eb20e46110da5af0eae442d701c4fe211fd9b9c05495428152721f49647ac86c24f108700b4da5a032d1a01c57a84de3afa58e05053e1043a10203010001a381a63081a3301d0603551d0e04160414ad91990bc22ab1f517048c23b6655a268e345a63301f0603551d23041830168014ad91990bc22ab1f517048c23b6655a268e345a63300f0603551d130101ff040530030101ff300b0603551d0f04040302018630430603551d1f043c303a3038a036a0348632687474703a2f2f7777772e63616e6f6e6963616c2e636f6d2f7365637572652d626f6f742d6d61737465722d63612e63726c300d06092a864886f70d01010b050003820101003f7df676a5b383b42b7ad06d521a0383c412a7509c4792ccc0947782d2ae57b39904f5323ac6551d07db12a956fad8d47620ebe4c351db9a5c9c923f1873da946aa199388ca4886dc1fc3971d0747616033e562335d555475b1a1d41c2d3124cdcffae0a929c620a17019c73e05eb1fdbcd6b519117a7ecd3e037e66db5ba8c9394851ff53e19c3153911b3b10750317bae681028094704c46b794b03d15cd1f8e02e068028ffbf9471d7da201c60751c49accedddcfa35ded92bbbed1fde6ec1f33517304be3c72b07d08f801ff987dcb9ce069397725477188b18d27a52ea8f73f5f8069973ea9f49914dbce030e0b66c41c6dbdb82777c14294bdfc6a0abc" ++- EventNum: 55 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "b84ea12d849d71d1777287b791d0eaf5be331c5e" ++ - AlgorithmId: sha256 ++ Digest: "2a4dcb8a22ce5ce97d674fb86f7e94a3f8c71f264803edb6c871c8c675eb744b" ++ EventSize: 267 ++ Event: ++ String: |- ++ "kernel_cmdline: /xcat/osimage/ubuntu18.04-x86_64-netboot-vgen/kernel imgurl=http://192.168.0.141//install/netboot/ubuntu18.04/x86_64/vgen/rootimg.tar.gz XCAT=192.168.0.141:3001 console=tty0 console=ttyS0,115200 biosdevname=0 net.ifnames=0 BOOTIF=01-0c:c4:7a:ff:60:1c\0" ++- EventNum: 56 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "1e3a4b1eba1da6d04ed5902a3abb2e6357859bec" ++ - AlgorithmId: sha256 ++ Digest: "bb67e049956aba1e2bdac24fe084d847cf6df4d0a83c04827cf7b0d7a6c41e3f" ++ EventSize: 40 ++ Event: ++ String: |- ++ "grub_cmd: echo Loading VEHV ramdisk ...\0" ++- EventNum: 57 ++ PCRIndex: 8 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "d4fe7b7837332820493b3a17ba489170944b9c08" ++ - AlgorithmId: sha256 ++ Digest: "20171c421048f16cd0cf462605f3cfb4a7848ac7a17ff5e11edf2d36cc59bb5a" ++ EventSize: 83 ++ Event: ++ String: |- ++ "grub_cmd: initrd /xcat/osimage/ubuntu18.04-x86_64-netboot-vgen/initrd-stateless.gz\0" ++- EventNum: 58 ++ PCRIndex: 9 ++ EventType: EV_IPL ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "12283aac809935035a801c143f752fbdd17453db" ++ - AlgorithmId: sha256 ++ Digest: "2c9d05e2b84937893f7a6ea92446d1ca0b1619ef28118d218649e1421872c9eb" ++ EventSize: 66 ++ Event: ++ String: |- ++ "/xcat/osimage/ubuntu18.04-x86_64-netboot-vgen/initrd-stateless.gz\0" ++pcrs: ++ sha1: ++ 0 : 0x60804a728ca0af13e14fea8e79effe33ea3eec7b ++ 1 : 0x5d5a7b88403fb38f1cbcf98e40cae566bbd0ba02 ++ 2 : 0x3710d4c00ed56d2193577ee94e988cd8657a77cf ++ 3 : 0xb2a83b0ebf2f8374299a5b2bdfc31ea955ad7236 ++ 4 : 0x7c937577b58c20b73bf7449ba67963df26fd2644 ++ 5 : 0xb2a83b0ebf2f8374299a5b2bdfc31ea955ad7236 ++ 6 : 0xb2a83b0ebf2f8374299a5b2bdfc31ea955ad7236 ++ 7 : 0xe8145f6a55372158d87f55c33b17abe7c35987ef ++ 8 : 0x7874ccfdc068f8ef34efc127a963e71004fc8014 ++ 9 : 0xa6bb02edd825c9e2bcd807c197fcfb456a266080 ++ sha256: ++ 0 : 0xd60c30777ea9cad0ac8868eda11a00608a26f0a2f9b5d5fbdd4a84d7884ea946 ++ 1 : 0x65457318495b52f2d4100cafa00d7b57880eb20361e5e8e8d29166cc67c0890c ++ 2 : 0x15d60806b60f715cdd94e624f27854f608bbcd26000f39fa7f0ec0db7a8ba5c8 ++ 3 : 0x3d458cfe55cc03ea1f443f1562beec8df51c75e14a9fcf9a7234a13f198e7969 ++ 4 : 0x227d8b3b8294223f6d0065582b015ac31c5da2dd391000d87141e38ec03e77a8 ++ 5 : 0x3d458cfe55cc03ea1f443f1562beec8df51c75e14a9fcf9a7234a13f198e7969 ++ 6 : 0x3d458cfe55cc03ea1f443f1562beec8df51c75e14a9fcf9a7234a13f198e7969 ++ 7 : 0xcea0b7475867ab2ced4f6a278530c0a57e0f826cfefdf747c0e670ca09140ea5 ++ 8 : 0xd17f57b88d4f1ec2e52551c1be47bd2d9f3d83f6aa330e26218147b32054b237 ++ 9 : 0xfa774bed1acc7f2c6c4f0457bd33d8f584d018f9d8563463f308d2990453f492 +diff --git a/test/integration/fixtures/event-uefi-sha1-log.bin.yaml b/test/integration/fixtures/event-uefi-sha1-log.bin.yaml +new file mode 100644 +index 00000000..a7ddf6a8 +--- /dev/null ++++ b/test/integration/fixtures/event-uefi-sha1-log.bin.yaml +@@ -0,0 +1,182 @@ ++--- ++version: 1 ++events: ++ PCRIndex: 0 ++ EventType: EV_S_CRTM_VERSION ++ DigestCount: 1 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "c42fedad268200cb1d15f97841c344e79dae3320" ++ EventSize: 16 ++ Event: "1efb6b540c1d5540a4ad4ef4bf17b83a" ++ PCRIndex: 7 ++ EventType: EV_EFI_VARIABLE_DRIVER_CONFIG ++ DigestCount: 1 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "2f20112a3f55398b208e0c42681389b4cb5b1823" ++ EventSize: 52 ++ Event: ++ VariableName: 8be4df61-93ca-11d2-aa0d-00e098032b8c ++ UnicodeNameLength: 10 ++ VariableDataLength: 0 ++ UnicodeName: SecureBoot ++ PCRIndex: 7 ++ EventType: EV_EFI_VARIABLE_DRIVER_CONFIG ++ DigestCount: 1 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "9b1387306ebb7ff8e795e7be77563666bbf4516e" ++ EventSize: 36 ++ Event: ++ VariableName: 8be4df61-93ca-11d2-aa0d-00e098032b8c ++ UnicodeNameLength: 2 ++ VariableDataLength: 0 ++ UnicodeName: PK ++ PCRIndex: 7 ++ EventType: EV_EFI_VARIABLE_DRIVER_CONFIG ++ DigestCount: 1 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "13f02fbc7383ed7c89017e0b32f60e38e282056c" ++ EventSize: 1598 ++ Event: ++ VariableName: 8be4df61-93ca-11d2-aa0d-00e098032b8c ++ UnicodeNameLength: 3 ++ VariableDataLength: 1560 ++ UnicodeName: KEK ++ VariableData: "a159c0a5e494a74a87b5ab155c2bf0721806000000000000fc050000bd9afa775903324dbd6028f4e78f784b308205e8308203d0a003020102020a610ad188000000000003300d06092a864886f70d01010b0500308191310b3009060355040613025553311330110603550408130a57617368696e67746f6e3110300e060355040713075265646d6f6e64311e301c060355040a13154d6963726f736f667420436f72706f726174696f6e313b3039060355040313324d6963726f736f667420436f72706f726174696f6e205468697264205061727479204d61726b6574706c61636520526f6f74301e170d3131303632343230343132395a170d3236303632343230353132395a308180310b3009060355040613025553311330110603550408130a57617368696e67746f6e3110300e060355040713075265646d6f6e64311e301c060355040a13154d6963726f736f667420436f72706f726174696f6e312a3028060355040313214d6963726f736f667420436f72706f726174696f6e204b454b204341203230313130820122300d06092a864886f70d01010105000382010f003082010a0282010100c4e8b58abfad5726b026c3eae7fb577a44025d070dda4ae5742ae6b00fec6debec7fb9e35a63327c11174f0ee30ba73815938ec6f5e084b19a9b2ce7f5b791d609e1e2c004a8ac301cdf48f306509a64a7517fc8854f8f2086cefe2fe19fff82c0ede9cdcef4536a623a0b43b9e225fdfe05f9d4c414ab11e223898d70b7a41d4decaee59cfa16c2d7c1cbd4e8c42fe599ee248b03ec8df28beac34afb4311120b7eb547926cdce60489ebf53304eb10012a71e5f983133cff25092f687646ffba4fbedcad712a58aafb0ed2793de49b653bcc292a9ffc7259a2ebae92eff6351380c602ece45fcc9d76cdef6392c1af79408479877fe352a8e89d7b07698f150203010001a382014f3082014b301006092b06010401823715010403020100301d0603551d0e0416041462fc43cda03ea4cb6712d25bd955ac7bccb68a5f301906092b0601040182371402040c1e0a00530075006200430041300b0603551d0f040403020186300f0603551d130101ff040530030101ff301f0603551d2304183016801445665243e17e5811bfd64e9e2355083b3a226aa8305c0603551d1f045530533051a04fa04d864b687474703a2f2f63726c2e6d6963726f736f66742e636f6d2f706b692f63726c2f70726f64756374732f4d6963436f725468695061724d6172526f6f5f323031302d31302d30352e63726c306006082b0601050507010104543052305006082b060105050730028644687474703a2f2f7777772e6d6963726f736f66742e636f6d2f706b692f63657274732f4d6963436f725468695061724d6172526f6f5f323031302d31302d30352e637274300d06092a864886f70d01010b05000382020100d48488f514941802ca2a3cfb2a921c0cd7a0d1f1e85266a8eea2b5757a9000aa2da4765aea79b7b9376a517b1064f6e164f20267bef7a81b78bdbace8858640cd657c819a35f05d6dbc6d069ce484b32b7eb5dd230f5c0f5b8ba7807a32bfe9bdb345684ec82caae4125709c6be9fe900fd7961fe5e7941fb22a0c8d4bff2829107bf7d77ca5d176b905c879ed0f90929cc2fedf6f7e6c0f7bd4c145dd345196390fe55e56d8180596f407a642b3a077fd0819f27156cc9f8623a487cba6fd587ed4696715917e81f27f13e50d8b8a3c8784ebe3cebd43e5ad2d84938e6a2b5a7c44fa52aa81c82d1cbbe052df0011f89a3dc160b0e133b5a388d165190a1ae7ac7ca4c182874e38b12f0dc514876ffd8d2ebc39b6e7e6c3e0e4cd2784ef9442ef298b9046413b811b67d8f9435965cb0dbcfd00924ff4753ba7a924fc50414079e02d4f0a6a27766e52ed96697baf0ff78705d045c2ad5314811ffb3004aa373661da4a691b34d868edd602cf6c940cd3cf6c2279adb1f0bc03a24660a9c407c22182f1fdf2e8793260bfd8aca522144bcac1d84beb7d3f5735b2e64f75b4b060032253ae91791dd69b411f15865470b2de0d350f7cb03472ba97603bf079eba2b21c5da216b887c5e91bf6b597256f389fe391fa8a7998c3690eb7a31c200597f8ca14ae00d7c4f3c01410756b34a01bb59960f35cb0c5574e36d23284bf9e" ++ PCRIndex: 7 ++ EventType: EV_EFI_VARIABLE_DRIVER_CONFIG ++ DigestCount: 1 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "a233adbc63e3fdc5f73693a3cc4a27041714383f" ++ EventSize: 3179 ++ Event: ++ VariableName: d719b2cb-3d3a-4596-a3bc-dad00e67656f ++ UnicodeNameLength: 2 ++ VariableDataLength: 3143 ++ UnicodeName: db ++ VariableData: "a159c0a5e494a74a87b5ab155c2bf0720706000000000000eb050000bd9afa775903324dbd6028f4e78f784b308205d7308203bfa003020102020a61077656000000000008300d06092a864886f70d01010b0500308188310b3009060355040613025553311330110603550408130a57617368696e67746f6e3110300e060355040713075265646d6f6e64311e301c060355040a13154d6963726f736f667420436f72706f726174696f6e31323030060355040313294d6963726f736f667420526f6f7420436572746966696361746520417574686f726974792032303130301e170d3131313031393138343134325a170d3236313031393138353134325a308184310b3009060355040613025553311330110603550408130a57617368696e67746f6e3110300e060355040713075265646d6f6e64311e301c060355040a13154d6963726f736f667420436f72706f726174696f6e312e302c060355040313254d6963726f736f66742057696e646f77732050726f64756374696f6e20504341203230313130820122300d06092a864886f70d01010105000382010f003082010a0282010100dd0cbba2e42e09e3e7c5f79669bc0021bd693333efad04cb5480ee0683bbc52084d9f7d28bf338b0aba4ad2d7c627905ffe34a3f04352070e3c4e76be09cc03675e98a31dd8d70e5dc37b5744696285b8760232cbfdc47a567f751279e72eb07a6c9b91e3b53357ce5d3ec27b9871cfeb9c923096fa84691c16e963c41d3cba33f5d026a4dec691f25285c36fffd43150a94e019b4cfdfc212e2c25b27ee2778308b5b2a096b22895360162cc0681d53baec49f39d618c85680973445d7da2542bdd79f715cf355d6c1c2b5ccebc9c238b6f6eb526d93613c34fd627aeb9323b41922ce1c7cd77e8aa544ef75c0b048765b44318a8b2e06d1977ec5a24fa48030203010001a38201433082013f301006092b06010401823715010403020100301d0603551d0e04160414a92902398e16c49778cd90f99e4f9ae17c55af53301906092b0601040182371402040c1e0a00530075006200430041300b0603551d0f040403020186300f0603551d130101ff040530030101ff301f0603551d23041830168014d5f656cb8fe8a25c6268d13d94905bd7ce9a18c430560603551d1f044f304d304ba049a0478645687474703a2f2f63726c2e6d6963726f736f66742e636f6d2f706b692f63726c2f70726f64756374732f4d6963526f6f4365724175745f323031302d30362d32332e63726c305a06082b06010505070101044e304c304a06082b06010505073002863e687474703a2f2f7777772e6d6963726f736f66742e636f6d2f706b692f63657274732f4d6963526f6f4365724175745f323031302d30362d32332e637274300d06092a864886f70d01010b0500038202010014fc7c7151a579c26eb2ef393ebc3c520f6e2b3f101373fea868d048a6344d8a960526ee3146906179d6ff382e456bf4c0e528b8da1d8f8adb09d71ac74c0a36666a8cec1bd70490a81817a49bb9e240323676c4c15ac6bfe404c0ea16d3acc368ef62acdd546c503058a6eb7cfe94a74e8ef4ec7c867357c2522173345af3a38a56c804da0709edf88be3cef47e8eaef0f60b8a08fb3fc91d727f53b8ebbe63e0e33d3165b081e5f2accd16a49f3da8b19bc242d090845f541dff89eaba1d47906fb0734e419f409f5fe5a12ab21191738a2128f0cede73395f3eab5c60ecdf0310a8d309e9f4f69685b67f51886647198da2b0123d812a680577bb914c627bb6c107c7ba7a8734030e4b627a99e9cafcce4a37c92da4577c1cfe3ddcb80f5afad6c4b30285023aeab3d96ee4692137de81d1f675190567d393575e291b39c8ee2de1cde445735bd0d2ce7aab1619824658d05e9d81b367af6c35f2bce53f24e235a20a7506f6185699d4782cd1051bebd088019daa10f105dfba7e2c63b7069b2321c4f9786ce2581706362b911203cca4d9f22dbaf9949d40ed1845f1ce8a5c6b3eab03d370182a0a6ae05f47d1d5630a32f2afd7361f2a705ae5425908714b57ba7e8381f0213cf41cc1c5b990930e88459386e9b12099be98cbc595a45d62d6a0630820bd7510777d3df345b99f979fcb57806f33a904cf77a4621c597ea159c0a5e494a74a87b5ab155c2bf072400600000000000024060000bd9afa775903324dbd6028f4e78f784b30820610308203f8a003020102020a6108d3c4000000000004300d06092a864886f70d01010b0500308191310b3009060355040613025553311330110603550408130a57617368696e67746f6e3110300e060355040713075265646d6f6e64311e301c060355040a13154d6963726f736f667420436f72706f726174696f6e313b3039060355040313324d6963726f736f667420436f72706f726174696f6e205468697264205061727479204d61726b6574706c61636520526f6f74301e170d3131303632373231323234355a170d3236303632373231333234355a308181310b3009060355040613025553311330110603550408130a57617368696e67746f6e3110300e060355040713075265646d6f6e64311e301c060355040a13154d6963726f736f667420436f72706f726174696f6e312b3029060355040313224d6963726f736f667420436f72706f726174696f6e2055454649204341203230313130820122300d06092a864886f70d01010105000382010f003082010a0282010100a5086c4cc745096a4b0ca4c0877f06750c43015464e0167f07ed927d0bb273bf0c0ac64a4561a0c5162d96d3f52ba0fb4d499b4180903cb954fde6bcd19dc4a4188a7f418a5c59836832bb8c47c9ee71bc214f9a8a7cff443f8d8f32b22648ae75b5eec94c1e4a197ee4829a1d78774d0cb0bdf60fd316d3bcfa2ba551385df5fbbadb7802dbffec0a1b96d583b81913e9b6c07b407be11f2827c9faef565e1ce67e947ec0f044b27939e5dab2628b4dbf3870e2682414c933a40837d558695ed37cedc1045308e74eb02a876308616f631559eab22b79d70c61678a5bfd5ead877fba86674f71581222042222ce8bef547100ce503558769508ee6ab1a201d50203010001a382017630820172301206092b060104018237150104050203010001302306092b060104018237150204160414f8c16bb77f77534af325371d4ea1267b0f207080301d0603551d0e0416041413adbf4309bd82709c8cd54f316ed522988a1bd4301906092b0601040182371402040c1e0a00530075006200430041300b0603551d0f040403020186300f0603551d130101ff040530030101ff301f0603551d2304183016801445665243e17e5811bfd64e9e2355083b3a226aa8305c0603551d1f045530533051a04fa04d864b687474703a2f2f63726c2e6d6963726f736f66742e636f6d2f706b692f63726c2f70726f64756374732f4d6963436f725468695061724d6172526f6f5f323031302d31302d30352e63726c306006082b0601050507010104543052305006082b060105050730028644687474703a2f2f7777772e6d6963726f736f66742e636f6d2f706b692f63657274732f4d6963436f725468695061724d6172526f6f5f323031302d31302d30352e637274300d06092a864886f70d01010b05000382020100350842ff30cccef7760cad1068583529463276277cef124127421b4aaa6d813848591355f3e95834a6160b82aa5dad82da808341068fb41df203b9f31a5d1bf15090f9b3558442281c20bdb2ae5114c5c0ac9795211c90db0ffc779e95739188cabdbd52b905500ddf579ea061ed0de56d25d9400f1740c8cea34ac24daf9a121d08548fbdc7bcb92b3d492b1f32fc6a21694f9bc87e4234fc3606178b8f2040c0b39a257527cdc903a3f65dd1e736547ab950b5d312d107bfbb74dfdc1e8f80d5ed18f42f14166b2fde668cb023e5c784d8edeac13382ad564b182df1689507cdcff072f0aebbdd8685982c214c332bf00f4af06887b592553275a16a826a3ca32511a4edadd704aecbd84059a084d1954c6291221a741d8c3d470e44a6e4b09b3435b1fab653a82c81eca40571c89db8bae81b4466e447540e8e567fb39f1698b286d0683e9023b52f5e8f50858dc68d825f41a1f42e0de099d26c75e4b669b52186fa07d1f6e24dd1daad2c77531e253237c76c52729586b0f135616a19f5b23b815056a6322dfea289f94286271855a182ca5a9bf830985414a64796252fc826e441941a5c023fe596e3855b3c3e3fbb47167255e22522b1d97be703062aa3f71e9046c3000dd61989e30e352762037115a6efd027a0a0593760f83894b8e07870f8ba4c868794f6e0ae0245ee65c2b6a37e69167507929bf5a6bc598358" ++ PCRIndex: 7 ++ EventType: EV_EFI_VARIABLE_DRIVER_CONFIG ++ DigestCount: 1 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "67e48e759954349537ed4902ba1a8eef74dbd1b5" ++ EventSize: 3838 ++ Event: ++ VariableName: d719b2cb-3d3a-4596-a3bc-dad00e67656f ++ UnicodeNameLength: 3 ++ VariableDataLength: 3800 ++ UnicodeName: dbx ++ VariableData: "2616c4c14c509240aca941f9369343284c0000000000000030000000000000000000000000000000000000006e340b9cffb37a989ca544e6bb780a2c78901d3fb33738768511a30617afa01d2616c4c14c509240aca941f9369343288c0e00000000000030000000bd9afa775903324dbd6028f4e78f784b80b4d96931bf0d02fd91a61e19d14f1da452e66db2408ca8604d411f92659f0abd9afa775903324dbd6028f4e78f784bf52f83a3fa9cfbd6920f722824dbe4034534d25b8507246b3b957dac6e1bce7abd9afa775903324dbd6028f4e78f784bc5d9d8a186e2c82d09afaa2a6f7f2e73870d3e64f72c4e08ef67796a840f0fbdbd9afa775903324dbd6028f4e78f784b363384d14d1f2e0b7815626484c459ad57a318ef4396266048d058c5a19bbf76bd9afa775903324dbd6028f4e78f784b1aec84b84b6c65a51220a9be7181965230210d62d6d33c48999c6b295a2b0a06bd9afa775903324dbd6028f4e78f784be6ca68e94146629af03f69c2f86e6bef62f930b37c6fbcc878b78df98c0334e5bd9afa775903324dbd6028f4e78f784bc3a99a460da464a057c3586d83cef5f4ae08b7103979ed8932742df0ed530c66bd9afa775903324dbd6028f4e78f784b58fb941aef95a25943b3fb5f2510a0df3fe44c58c95e0ab80487297568ab9771bd9afa775903324dbd6028f4e78f784b5391c3a2fb112102a6aa1edc25ae77e19f5d6f09cd09eeb2509922bfcd5992eabd9afa775903324dbd6028f4e78f784bd626157e1d6a718bc124ab8da27cbb65072ca03a7b6b257dbdcbbd60f65ef3d1bd9afa775903324dbd6028f4e78f784bd063ec28f67eba53f1642dbf7dff33c6a32add869f6013fe162e2c32f1cbe56dbd9afa775903324dbd6028f4e78f784b29c6eb52b43c3aa18b2cd8ed6ea8607cef3cfae1bafe1165755cf2e614844a44bd9afa775903324dbd6028f4e78f784b90fbe70e69d633408d3e170c6832dbb2d209e0272527dfb63d49d29572a6f44cbd9afa775903324dbd6028f4e78f784b075eea060589548ba060b2feed10da3c20c7fe9b17cd026b94e8a683b8115238bd9afa775903324dbd6028f4e78f784b07e6c6a858646fb1efc67903fe28b116011f2367fe92e6be2b36999eff39d09ebd9afa775903324dbd6028f4e78f784b09df5f4e511208ec78b96d12d08125fdb603868de39f6f72927852599b659c26bd9afa775903324dbd6028f4e78f784b0bbb4392daac7ab89b30a4ac657531b97bfaab04f90b0dafe5f9b6eb90a06374bd9afa775903324dbd6028f4e78f784b0c189339762df336ab3dd006a463df715a39cfb0f492465c600e6c6bd7bd898cbd9afa775903324dbd6028f4e78f784b0d0dbeca6f29eca06f331a7d72e4884b12097fb348983a2a14a0d73f4f10140fbd9afa775903324dbd6028f4e78f784b0dc9f3fb99962148c3ca833632758d3ed4fc8d0b0007b95b31e6528f2acd5bfcbd9afa775903324dbd6028f4e78f784b106faceacfecfd4e303b74f480a08098e2d0802b936f8ec774ce21f31686689cbd9afa775903324dbd6028f4e78f784b174e3a0b5b43c6a607bbd3404f05341e3dcf396267ce94f8b50e2e23a9da920cbd9afa775903324dbd6028f4e78f784b18333429ff0562ed9f97033e1148dceee52dbe2e496d5410b5cfd6c864d2d10fbd9afa775903324dbd6028f4e78f784b2b99cf26422e92fe365fbf4bc30d27086c9ee14b7a6fff44fb2f6b9001699939bd9afa775903324dbd6028f4e78f784b2bbf2ca7b8f1d91f27ee52b6fb2a5dd049b85a2b9b529c5d6662068104b055f8bd9afa775903324dbd6028f4e78f784b2c73d93325ba6dcbe589d4a4c63c5b935559ef92fbf050ed50c4e2085206f17dbd9afa775903324dbd6028f4e78f784b2e70916786a6f773511fa7181fab0f1d70b557c6322ea923b2a8d3b92b51af7dbd9afa775903324dbd6028f4e78f784b306628fa5477305728ba4a467de7d0387a54f569d3769fce5e75ec89d28d1593bd9afa775903324dbd6028f4e78f784b3608edbaf5ad0f41a414a1777abf2faf5e670334675ec3995e6935829e0caad2bd9afa775903324dbd6028f4e78f784b3841d221368d1583d75c0a02e62160394d6c4e0a6760b6f607b90362bc855b02bd9afa775903324dbd6028f4e78f784b3fce9b9fdf3ef09d5452b0f95ee481c2b7f06d743a737971558e70136ace3e73bd9afa775903324dbd6028f4e78f784b4397daca839e7f63077cb50c92df43bc2d2fb2a8f59f26fc7a0e4bd4d9751692bd9afa775903324dbd6028f4e78f784b47cc086127e2069a86e03a6bef2cd410f8c55a6d6bdb362168c31b2ce32a5adfbd9afa775903324dbd6028f4e78f784b518831fe7382b514d03e15c621228b8ab65479bd0cbfa3c5c1d0f48d9c306135bd9afa775903324dbd6028f4e78f784b5ae949ea8855eb93e439dbc65bda2e42852c2fdf6789fa146736e3c3410f2b5cbd9afa775903324dbd6028f4e78f784b6b1d138078e4418aa68deb7bb35e066092cf479eeb8ce4cd12e7d072ccb42f66bd9afa775903324dbd6028f4e78f784b6c8854478dd559e29351b826c06cb8bfef2b94ad3538358772d193f82ed1ca11bd9afa775903324dbd6028f4e78f784b6f1428ff71c9db0ed5af1f2e7bbfcbab647cc265ddf5b293cdb626f50a3a785ebd9afa775903324dbd6028f4e78f784b71f2906fd222497e54a34662ab2497fcc81020770ff51368e9e3d9bfcbfd6375bd9afa775903324dbd6028f4e78f784b726b3eb654046a30f3f83d9b96ce03f670e9a806d1708a0371e62dc49d2c23c1bd9afa775903324dbd6028f4e78f784b72e0bd1867cf5d9d56ab158adf3bddbc82bf32a8d8aa1d8c5e2f6df29428d6d8bd9afa775903324dbd6028f4e78f784b7827af99362cfaf0717dade4b1bfe0438ad171c15addc248b75bf8caa44bb2c5bd9afa775903324dbd6028f4e78f784b81a8b965bb84d3876b9429a95481cc955318cfaa1412d808c8a33bfd33fff0e4bd9afa775903324dbd6028f4e78f784b82db3bceb4f60843ce9d97c3d187cd9b5941cd3de8100e586f2bda5637575f67bd9afa775903324dbd6028f4e78f784b895a9785f617ca1d7ed44fc1a1470b71f3f1223862d9ff9dcc3ae2df92163dafbd9afa775903324dbd6028f4e78f784b8ad64859f195b5f58dafaa940b6a6167acd67a886e8f469364177221c55945b9bd9afa775903324dbd6028f4e78f784b8bf434b49e00ccf71502a2cd900865cb01ec3b3da03c35be505fdf7bd563f521bd9afa775903324dbd6028f4e78f784b8d8ea289cfe70a1c07ab7365cb28ee51edd33cf2506de888fbadd60ebf80481cbd9afa775903324dbd6028f4e78f784b9998d363c491be16bd74ba10b94d9291001611736fdca643a36664bc0f315a42bd9afa775903324dbd6028f4e78f784b9e4a69173161682e55fde8fef560eb88ec1ffedcaf04001f66c0caf707b2b734bd9afa775903324dbd6028f4e78f784ba6b5151f3655d3a2af0d472759796be4a4200e5495a7d869754c4848857408a7bd9afa775903324dbd6028f4e78f784ba7f32f508d4eb0fead9a087ef94ed1ba0aec5de6f7ef6ff0a62b93bedf5d458dbd9afa775903324dbd6028f4e78f784bad6826e1946d26d3eaf3685c88d97d85de3b4dcb3d0ee2ae81c70560d13c5720bd9afa775903324dbd6028f4e78f784baeebae3151271273ed95aa2e671139ed31a98567303a332298f83709a9d55aa1bd9afa775903324dbd6028f4e78f784bafe2030afb7d2cda13f9fa333a02e34f6751afec11b010dbcd441fdf4c4002b3bd9afa775903324dbd6028f4e78f784bb54f1ee636631fad68058d3b0937031ac1b90ccb17062a391cca68afdbe40d55bd9afa775903324dbd6028f4e78f784bb8f078d983a24ac433216393883514cd932c33af18e7dd70884c8235f4275736bd9afa775903324dbd6028f4e78f784bb97a0889059c035ff1d54b6db53b11b9766668d9f955247c028b2837d7a04cd9bd9afa775903324dbd6028f4e78f784bbc87a668e81966489cb508ee805183c19e6acd24cf17799ca062d2e384da0ea7bd9afa775903324dbd6028f4e78f784bc409bdac4775add8db92aa22b5b718fb8c94a1462c1fe9a416b95d8a3388c2fcbd9afa775903324dbd6028f4e78f784bc617c1a8b1ee2a811c28b5a81b4c83d7c98b5b0c27281d610207ebe692c2967fbd9afa775903324dbd6028f4e78f784bc90f336617b8e7f983975413c997f10b73eb267fd8a10cb9e3bdbfc667abdb8bbd9afa775903324dbd6028f4e78f784bcb6b858b40d3a098765815b592c1514a49604fafd60819da88d7a76e9778fef7bd9afa775903324dbd6028f4e78f784bce3bfabe59d67ce8ac8dfd4a16f7c43ef9c224513fbc655957d735fa29f540cebd9afa775903324dbd6028f4e78f784bd8cbeb9735f5672b367e4f96cdc74969615d17074ae96c724d42ce0216f8f3fabd9afa775903324dbd6028f4e78f784be92c22eb3b5642d65c1ec2caf247d2594738eebb7fb3841a44956f59e2b0d1fabd9afa775903324dbd6028f4e78f784bfddd6e3d29ea84c7743dad4a1bdbc700b5fec1b391f932409086acc71dd6dbd8bd9afa775903324dbd6028f4e78f784bfe63a84f782cc9d3fcf2ccf9fc11fbd03760878758d26285ed12669bdc6e6d01bd9afa775903324dbd6028f4e78f784bfecfb232d12e994b6d485d2c7167728aa5525984ad5ca61e7516221f079a1436bd9afa775903324dbd6028f4e78f784bca171d614a8d7e121c93948cd0fe55d39981f9d11aa96e03450a415227c2c65bbd9afa775903324dbd6028f4e78f784b55b99b0de53dbcfe485aa9c737cf3fb616ef3d91fab599aa7cab19eda763b5babd9afa775903324dbd6028f4e78f784b77dd190fa30d88ff5e3b011a0ae61e6209780c130b535ecb87e6f0888a0b6b2fbd9afa775903324dbd6028f4e78f784bc83cb13922ad99f560744675dd37cc94dcad5a1fcba6472fee341171d939e884bd9afa775903324dbd6028f4e78f784b3b0287533e0cc3d0ec1aa823cbf0a941aad8721579d1c499802dd1c3a636b8a9bd9afa775903324dbd6028f4e78f784b939aeef4f5fa51e23340c3f2e49048ce8872526afdf752c3a7f3a3f2bc9f6049bd9afa775903324dbd6028f4e78f784b64575bd912789a2e14ad56f6341f52af6bf80cf94400785975e9f04e2d64d745bd9afa775903324dbd6028f4e78f784b45c7c8ae750acfbb48fc37527d6412dd644daed8913ccd8a24c94d856967df8e" ++ PCRIndex: 0 ++ EventType: EV_SEPARATOR ++ DigestCount: 1 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "9069ca78e7450a285173431b3e52c5c25299e473" ++ EventSize: 4 ++ Event: "00000000" ++ PCRIndex: 1 ++ EventType: EV_SEPARATOR ++ DigestCount: 1 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "9069ca78e7450a285173431b3e52c5c25299e473" ++ EventSize: 4 ++ Event: "00000000" ++ PCRIndex: 2 ++ EventType: EV_SEPARATOR ++ DigestCount: 1 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "9069ca78e7450a285173431b3e52c5c25299e473" ++ EventSize: 4 ++ Event: "00000000" ++ PCRIndex: 3 ++ EventType: EV_SEPARATOR ++ DigestCount: 1 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "9069ca78e7450a285173431b3e52c5c25299e473" ++ EventSize: 4 ++ Event: "00000000" ++ PCRIndex: 4 ++ EventType: EV_SEPARATOR ++ DigestCount: 1 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "9069ca78e7450a285173431b3e52c5c25299e473" ++ EventSize: 4 ++ Event: "00000000" ++ PCRIndex: 5 ++ EventType: EV_SEPARATOR ++ DigestCount: 1 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "9069ca78e7450a285173431b3e52c5c25299e473" ++ EventSize: 4 ++ Event: "00000000" ++ PCRIndex: 6 ++ EventType: EV_SEPARATOR ++ DigestCount: 1 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "9069ca78e7450a285173431b3e52c5c25299e473" ++ EventSize: 4 ++ Event: "00000000" ++ PCRIndex: 7 ++ EventType: EV_SEPARATOR ++ DigestCount: 1 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "9069ca78e7450a285173431b3e52c5c25299e473" ++ EventSize: 4 ++ Event: "00000000" ++ PCRIndex: 5 ++ EventType: EV_EFI_GPT_EVENT ++ DigestCount: 1 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "f8830f40b14064e7cc4e800898afb946ad865edd" ++ EventSize: 356 ++ Event: "4546492050415254000001005c000000c0d1261e000000000100000000000000ff7f5a07000000002200000000000000de7f5a0700000000c7f0a9872aedfe47862ef307c41758410200000000000000800000008000000050d75786020000000000000028732ac11ff8d211ba4b00a0c93ec93b948fabe36694cc429b81ebb7969bb28a0008000000000000ff0710000000000000000000000000004500460049002000530079007300740065006d00200050006100720074006900740069006f006e000000000000000000000000000000000000000000000000000000000000000000af3dc60f838472478e793d69d8477de4426b1bcd7a6eb645b9cf431b6df6c1860008100000000000ff775a07000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" ++ PCRIndex: 4 ++ EventType: EV_EFI_BOOT_SERVICES_APPLICATION ++ DigestCount: 1 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "d0e6f939f1304a83975f34ff678da573ae2b3ee5" ++ EventSize: 178 ++ Event: ++ ImageLocationInMemory: 0x9f64d018 ++ ImageLengthInMemory: 1334816 ++ ImageLinkTimeAddress: 0x0 ++ LengthOfDevicePath: 146 ++ DevicePath: '02010c00d041030a00000000010106000014030506000b0002010c00d041030a00000000010106000014030506000b0004012a000100000000080000000000000000100000000000948fabe36694cc429b81ebb7969bb28a0202040434005c004500460049005c007500620075006e00740075005c007300680069006d007800360034002e0065006600690000007fff0400' ++ PCRIndex: 4 ++ EventType: EV_EFI_BOOT_SERVICES_APPLICATION ++ DigestCount: 1 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "5b135351ac81e93f17c43ec65ec0e4755ec29e45" ++ EventSize: 41 ++ Event: ++ ImageLocationInMemory: 0x0 ++ ImageLengthInMemory: 0 ++ ImageLinkTimeAddress: 0x0 ++ LengthOfDevicePath: 0 ++ DevicePath: '00081100000c1100cc' ++pcrs: ++ sha1: ++ 0 : 0x3dcaea25dc86554d94b94aa5bc8f735a49212af8 ++ 1 : 0xb2a83b0ebf2f8374299a5b2bdfc31ea955ad7236 ++ 2 : 0xb2a83b0ebf2f8374299a5b2bdfc31ea955ad7236 ++ 3 : 0xb2a83b0ebf2f8374299a5b2bdfc31ea955ad7236 ++ 4 : 0x59955b8e6e01b21ba7ccbbdecdeaa8ae6770caa1 ++ 5 : 0xd8949f1020f3344daf7aa87717ae58d6498731e4 ++ 6 : 0xb2a83b0ebf2f8374299a5b2bdfc31ea955ad7236 ++ 7 : 0x9216fc0727c344b355a90a3f34f357e4362d51bb +diff --git a/test/integration/fixtures/event-uefiaction.bin.yaml b/test/integration/fixtures/event-uefiaction.bin.yaml +new file mode 100644 +index 00000000..d7a58f67 +--- /dev/null ++++ b/test/integration/fixtures/event-uefiaction.bin.yaml +@@ -0,0 +1,47 @@ ++--- ++version: 1 ++events: ++- EventNum: 0 ++ PCRIndex: 0 ++ EventType: EV_NO_ACTION ++ Digest: "0000000000000000000000000000000000000000" ++ EventSize: 45 ++ SpecID: ++ - Signature: Spec ID Event03 ++ platformClass: 0 ++ specVersionMinor: 0 ++ specVersionMajor: 2 ++ specErrata: 0 ++ uintnSize: 2 ++ numberOfAlgorithms: 4 ++ Algorithms: ++ - Algorithm[0]: ++ algorithmId: sha1 ++ digestSize: 20 ++ - Algorithm[1]: ++ algorithmId: sha256 ++ digestSize: 32 ++ - Algorithm[2]: ++ algorithmId: sha384 ++ digestSize: 48 ++ - Algorithm[3]: ++ algorithmId: sha512 ++ digestSize: 64 ++ vendorInfoSize: 0 ++- EventNum: 1 ++ PCRIndex: 4 ++ EventType: EV_EFI_ACTION ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "cd0fdb4531a6ec41be2753ba042637d6e5f7f256" ++ - AlgorithmId: sha256 ++ Digest: "3d6772b4f84ed47595d72a2c4c5ffd15f5bb72c7507fe26f2aaee2c69d5633ba" ++ EventSize: 40 ++ Event: |- ++ Calling EFI Application from Boot Option ++pcrs: ++ sha1: ++ 4 : 0xee01a03529a6b38b5ded18ab6ae8d771aaac1925 ++ sha256: ++ 4 : 0x3f263b96ccbc33bb53d808771f9ab1e02d4dec8854f9530f749cde853a723273 +diff --git a/test/integration/fixtures/event-uefiservices.bin.yaml b/test/integration/fixtures/event-uefiservices.bin.yaml +new file mode 100644 +index 00000000..0a1f5532 +--- /dev/null ++++ b/test/integration/fixtures/event-uefiservices.bin.yaml +@@ -0,0 +1,45 @@ ++--- ++version: 1 ++events: ++- EventNum: 0 ++ PCRIndex: 0 ++ EventType: EV_NO_ACTION ++ Digest: "0000000000000000000000000000000000000000" ++ EventSize: 37 ++ SpecID: ++ - Signature: Spec ID Event03 ++ platformClass: 0 ++ specVersionMinor: 0 ++ specVersionMajor: 2 ++ specErrata: 0 ++ uintnSize: 2 ++ numberOfAlgorithms: 2 ++ Algorithms: ++ - Algorithm[0]: ++ algorithmId: sha1 ++ digestSize: 20 ++ - Algorithm[1]: ++ algorithmId: sha256 ++ digestSize: 32 ++ vendorInfoSize: 0 ++- EventNum: 1 ++ PCRIndex: 2 ++ EventType: EV_EFI_BOOT_SERVICES_DRIVER ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "855685b4dbd4b67d50e0594571055054cfe2b1e9" ++ - AlgorithmId: sha256 ++ Digest: "dd8576b4ff346c19c56c3e4f97ce55c5afa646f9c669be0a7cdd05057a0ecdf3" ++ EventSize: 84 ++ Event: ++ ImageLocationInMemory: 0x7dcf6018 ++ ImageLengthInMemory: 171464 ++ ImageLinkTimeAddress: 0x0 ++ LengthOfDevicePath: 52 ++ DevicePath: '02010c00d041030a0000000001010600000201010600000004081800000000000026010000000000ffc30300000000007fff0400' ++pcrs: ++ sha1: ++ 2 : 0x5b5f4d5c31664f01670a98a5796a36473671befc ++ sha256: ++ 2 : 0x35fcf9d737c52c971f7c74058d36937dbd7824177fa0f1de3eba3934fcb83b9d +diff --git a/test/integration/fixtures/event-uefivar.bin.yaml b/test/integration/fixtures/event-uefivar.bin.yaml +new file mode 100644 +index 00000000..cf84711e +--- /dev/null ++++ b/test/integration/fixtures/event-uefivar.bin.yaml +@@ -0,0 +1,51 @@ ++--- ++version: 1 ++events: ++- EventNum: 0 ++ PCRIndex: 0 ++ EventType: EV_NO_ACTION ++ Digest: "0000000000000000000000000000000000000000" ++ EventSize: 45 ++ SpecID: ++ - Signature: Spec ID Event03 ++ platformClass: 0 ++ specVersionMinor: 0 ++ specVersionMajor: 2 ++ specErrata: 0 ++ uintnSize: 2 ++ numberOfAlgorithms: 4 ++ Algorithms: ++ - Algorithm[0]: ++ algorithmId: sha1 ++ digestSize: 20 ++ - Algorithm[1]: ++ algorithmId: sha256 ++ digestSize: 32 ++ - Algorithm[2]: ++ algorithmId: sha384 ++ digestSize: 48 ++ - Algorithm[3]: ++ algorithmId: sha512 ++ digestSize: 64 ++ vendorInfoSize: 0 ++- EventNum: 1 ++ PCRIndex: 7 ++ EventType: EV_EFI_VARIABLE_DRIVER_CONFIG ++ DigestCount: 2 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "d4fdd1f14d4041494deb8fc990c45343d2277d08" ++ - AlgorithmId: sha256 ++ Digest: "ccfc4bb32888a345bc8aeadaba552b627d99348c767681ab3141f5b01e40a40e" ++ EventSize: 53 ++ Event: ++ VariableName: 8be4df61-93ca-11d2-aa0d-00e098032b8c ++ UnicodeNameLength: 10 ++ VariableDataLength: 1 ++ UnicodeName: SecureBoot ++ VariableData: "01" ++pcrs: ++ sha1: ++ 7 : 0x3a1ea200b8fafe60c290e903c5e6443cfef67f04 ++ sha256: ++ 7 : 0xe58ada1ba75f2e4722b539824598ad5e10c55f2e4aeab2033f3b0a8ee3f3eca6 +diff --git a/test/integration/fixtures/event.bin.yaml b/test/integration/fixtures/event.bin.yaml +new file mode 100644 +index 00000000..a74a57b9 +--- /dev/null ++++ b/test/integration/fixtures/event.bin.yaml +@@ -0,0 +1,56 @@ ++--- ++version: 1 ++events: ++- EventNum: 0 ++ PCRIndex: 0 ++ EventType: EV_NO_ACTION ++ Digest: "0000000000000000000000000000000000000000" ++ EventSize: 45 ++ SpecID: ++ - Signature: Spec ID Event03 ++ platformClass: 0 ++ specVersionMinor: 0 ++ specVersionMajor: 2 ++ specErrata: 0 ++ uintnSize: 2 ++ numberOfAlgorithms: 4 ++ Algorithms: ++ - Algorithm[0]: ++ algorithmId: sha1 ++ digestSize: 20 ++ - Algorithm[1]: ++ algorithmId: sha256 ++ digestSize: 32 ++ - Algorithm[2]: ++ algorithmId: sha384 ++ digestSize: 48 ++ - Algorithm[3]: ++ algorithmId: sha512 ++ digestSize: 64 ++ vendorInfoSize: 0 ++- EventNum: 1 ++ PCRIndex: 0 ++ EventType: EV_EFI_PLATFORM_FIRMWARE_BLOB ++ DigestCount: 4 ++ Digests: ++ - AlgorithmId: sha1 ++ Digest: "d1ee7e857e2ae54671be58f83f3b0355c4c929f1" ++ - AlgorithmId: sha256 ++ Digest: "660375b3c94d47f04e30912dd931b28532d313271d1ae1bdead0a1b8f1276ed1" ++ - AlgorithmId: sha384 ++ Digest: "160222ca09aba572bbe7316db5762c91a41cff111c7e0f58ae6ca6581b898fcd16c422a2aca960d72562faf617a916c0" ++ - AlgorithmId: sha512 ++ Digest: "4daf4fc3dec73df75580a48c7c69de2db465b594c953250630c396ebc53f8f44ee2edb025e1b34805cdd76ee43dca8e513555369fe8f0b3a6395f366540680d1" ++ EventSize: 16 ++ Event: ++ BlobBase: 0x900000 ++ BlobLength: 0xb00000 ++pcrs: ++ sha1: ++ 0 : 0x543c314066a9cd7a6b6aa53f56b38e814a76efe7 ++ sha256: ++ 0 : 0x118bdc4043596f8d6b7813438131959961f6abba29bab0075d16ca39664f5862 ++ sha384: ++ 0 : 0x8ce4f7fcd5eaae9df051f735b0e5a37f836d54352e2efafc930fa69a28cd7c8d07014fd54c477a5dc46a0ff8c4ecaf07 ++ sha512: ++ 0 : 0x2b39e8bfcb64133066c8939231a424cd0a2f3ceaf21b182e82b826916b5826fa3f98fcf1333a2948947ea52f03959e7737800e49722c972e5444f7be6aa9a431 +diff --git a/test/integration/fixtures/specid-vendordata.bin.yaml b/test/integration/fixtures/specid-vendordata.bin.yaml +new file mode 100644 +index 00000000..2c609a3c +--- /dev/null ++++ b/test/integration/fixtures/specid-vendordata.bin.yaml +@@ -0,0 +1,26 @@ ++--- ++version: 1 ++events: ++- EventNum: 0 ++ PCRIndex: 0 ++ EventType: EV_NO_ACTION ++ Digest: "0000000000000000000000000000000000000000" ++ EventSize: 37 ++ SpecID: ++ - Signature: Spec ID Event03 ++ platformClass: 0 ++ specVersionMinor: 0 ++ specVersionMajor: 2 ++ specErrata: 0 ++ uintnSize: 2 ++ numberOfAlgorithms: 2 ++ Algorithms: ++ - Algorithm[0]: ++ algorithmId: sha1 ++ digestSize: 20 ++ - Algorithm[1]: ++ algorithmId: sha256 ++ digestSize: 32 ++ vendorInfoSize: 4 ++ vendorInfo: "deadbeef" ++pcrs: +diff --git a/test/integration/tests/eventlog.sh b/test/integration/tests/eventlog.sh +index fbfe6c5c..2fa75a3e 100644 +--- a/test/integration/tests/eventlog.sh ++++ b/test/integration/tests/eventlog.sh +@@ -10,36 +10,91 @@ yaml_validate() { + } + + expect_fail() { +- $@ ++ tpm2 eventlog $@ + if [ $? -eq 0 ]; then + echo "failing test case passed" + exit 1; + fi + } ++ + expect_pass() { +- $@ | yaml_validate ++ evlog=$1 ++ shift ++ ++ base=$(basename $evlog) ++ tpm2 eventlog $@ $evlog 1> $base.out 2> $base.err ++ ++ ret=0 ++ ++ yaml_validate < $base.out + if [ $? -ne 0 ]; then +- echo "passing test case failed" +- exit 1; ++ echo "YAML parsing failed" ++ ret=1 ++ fi ++ ++ diff $evlog.yaml $base.out ++ if [ $? -ne 0 ]; then ++ echo "YAML output changed" ++ ++ if test "$TEST_REGENERATE_OUTPUT" = "1" ++ then ++ cp $base.out $evlog.yaml ++ else ++ ret=1 ++ fi ++ fi ++ ++ if test -f $evlog.warn ++ then ++ diff $evlog.warn $base.err ++ if [ $? -ne 0 ]; then ++ echo "WARNING output changed" ++ ++ if test "$TEST_REGENERATE_OUTPUT" = "1" ++ then ++ cp $base.err $evlog.warn ++ else ++ ret=1 ++ fi ++ fi ++ else ++ if test -s $base.err ++ then ++ cat $base.err ++ echo "WARNING output unexpected" ++ ++ if test "$TEST_REGENERATE_OUTPUT" = "1" ++ then ++ cp $base.err $evlog.warn ++ else ++ ret=1 ++ fi ++ fi ++ fi ++ ++ rm $base.out $base.err ++ if test $ret != 0 ++ then ++ exit $ret + fi + } + +-expect_fail tpm2 eventlog +-expect_fail tpm2 eventlog foo +-expect_fail tpm2 eventlog foo bar +-expect_fail tpm2 eventlog ${srcdir}/test/integration/fixtures/event-bad.bin ++expect_fail ++expect_fail foo ++expect_fail foo bar ++expect_fail ${srcdir}/test/integration/fixtures/event-bad.bin + +-expect_pass tpm2 eventlog ${srcdir}/test/integration/fixtures/specid-vendordata.bin +-expect_pass tpm2 eventlog ${srcdir}/test/integration/fixtures/event.bin +-expect_pass tpm2 eventlog ${srcdir}/test/integration/fixtures/event-uefivar.bin +-expect_pass tpm2 eventlog ${srcdir}/test/integration/fixtures/event-uefiaction.bin +-expect_pass tpm2 eventlog ${srcdir}/test/integration/fixtures/event-uefiservices.bin +-expect_pass tpm2 eventlog ${srcdir}/test/integration/fixtures/event-uefi-sha1-log.bin +-expect_pass tpm2 eventlog ${srcdir}/test/integration/fixtures/event-bootorder.bin +-expect_pass tpm2 eventlog ${srcdir}/test/integration/fixtures/event-postcode.bin ++expect_pass ${srcdir}/test/integration/fixtures/specid-vendordata.bin ++expect_pass ${srcdir}/test/integration/fixtures/event.bin ++expect_pass ${srcdir}/test/integration/fixtures/event-uefivar.bin ++expect_pass ${srcdir}/test/integration/fixtures/event-uefiaction.bin ++expect_pass ${srcdir}/test/integration/fixtures/event-uefiservices.bin ++expect_pass ${srcdir}/test/integration/fixtures/event-uefi-sha1-log.bin ++expect_pass ${srcdir}/test/integration/fixtures/event-bootorder.bin ++expect_pass ${srcdir}/test/integration/fixtures/event-postcode.bin + + # Make sure that --eventlog-version=2 works on complete TPM2 logs +-expect_pass tpm2 eventlog --eventlog-version=2 ${srcdir}/test/integration/fixtures/event-arch-linux.bin +-expect_pass tpm2 eventlog --eventlog-version=2 ${srcdir}/test/integration/fixtures/event-gce-ubuntu-2104-log.bin ++expect_pass ${srcdir}/test/integration/fixtures/event-arch-linux.bin --eventlog-version=2 ++expect_pass ${srcdir}/test/integration/fixtures/event-gce-ubuntu-2104-log.bin --eventlog-version=2 + + exit $? +-- +2.37.3 + diff --git a/SOURCES/0007-tpm2_eventlog_yaml-fix-parsing-for-MokListTrusted.patch b/SOURCES/0007-tpm2_eventlog_yaml-fix-parsing-for-MokListTrusted.patch new file mode 100644 index 0000000..cbc539c --- /dev/null +++ b/SOURCES/0007-tpm2_eventlog_yaml-fix-parsing-for-MokListTrusted.patch @@ -0,0 +1,92 @@ +From c26464eb59b71b40bea11b4829b2a848343081f2 Mon Sep 17 00:00:00 2001 +From: Thore Sommer +Date: Sat, 8 Oct 2022 21:29:18 +0300 +Subject: [PATCH 7/9] tpm2_eventlog_yaml: fix parsing for MokListTrusted + +Not all data in events of the EV_EFI_VARIABLE_AUTHORITY are +EFI_SIGNATURE_DATA. The entry for MokListTrusted is a boolean +encoded as an integer similar to SecureBoot variable. + +Fixes #3050 + +Signed-off-by: Thore Sommer +--- + lib/tpm2_eventlog_yaml.c | 60 +++++++++++++++++++++++++++------------- + 1 file changed, 41 insertions(+), 19 deletions(-) + +diff --git a/lib/tpm2_eventlog_yaml.c b/lib/tpm2_eventlog_yaml.c +index 66a20701..0b1d0318 100644 +--- a/lib/tpm2_eventlog_yaml.c ++++ b/lib/tpm2_eventlog_yaml.c +@@ -418,27 +418,49 @@ static bool yaml_uefi_var(UEFI_VARIABLE_DATA *data, size_t size, UINT32 type, + } + return true; + } +- /* Other variables will be printed as a hex string */ + } else if (type == EV_EFI_VARIABLE_AUTHORITY) { +- free(ret); +- tpm2_tool_output(" VariableData:\n"); +- +- EFI_SIGNATURE_DATA *s= (EFI_SIGNATURE_DATA *)&data->UnicodeName[ +- data->UnicodeNameLength]; +- char *sdata = calloc (1, +- BYTES_TO_HEX_STRING_SIZE(data->VariableDataLength - sizeof(EFI_GUID))); +- if (sdata == NULL) { +- LOG_ERR("Failled to allocate data: %s\n", strerror(errno)); +- return false; ++ /* The MokListTrusted is boolean option, not a EFI_SIGNATURE_DATA*/ ++ if ((strlen(ret) == 14 && strncmp(ret, "MokListTrusted", 14) == 0)) { ++ free(ret); ++ tpm2_tool_output(" VariableData:\n" ++ " Enabled: "); ++ if (data->VariableDataLength == 0) { ++ tpm2_tool_output("'No'\n"); ++ } else if (data->VariableDataLength > 1) { ++ LOG_ERR("MokListTrusted value length %" PRIu64 " is unexpectedly > 1\n", ++ data->VariableDataLength); ++ return false; ++ } else { ++ uint8_t *variable_data = (uint8_t *)&data->UnicodeName[ ++ data->UnicodeNameLength]; ++ if (*variable_data == 0) { ++ tpm2_tool_output("'No'\n"); ++ } else { ++ tpm2_tool_output("'Yes'\n"); ++ } ++ } ++ return true; ++ } else { ++ /* Other variables will be printed as a hex string */ ++ free(ret); ++ tpm2_tool_output(" VariableData:\n"); ++ EFI_SIGNATURE_DATA *s= (EFI_SIGNATURE_DATA *)&data->UnicodeName[ ++ data->UnicodeNameLength]; ++ char *sdata = calloc (1, ++ BYTES_TO_HEX_STRING_SIZE(data->VariableDataLength - sizeof(EFI_GUID))); ++ if (sdata == NULL) { ++ LOG_ERR("Failled to allocate data: %s\n", strerror(errno)); ++ return false; ++ } ++ bytes_to_str(s->SignatureData, data->VariableDataLength - sizeof(EFI_GUID), ++ sdata, BYTES_TO_HEX_STRING_SIZE(data->VariableDataLength - sizeof(EFI_GUID))); ++ guid_unparse_lower(s->SignatureOwner, uuidstr); ++ tpm2_tool_output(" - SignatureOwner: %s\n" ++ " SignatureData: %s\n", ++ uuidstr, sdata); ++ free(sdata); ++ return true; + } +- bytes_to_str(s->SignatureData, data->VariableDataLength - sizeof(EFI_GUID), +- sdata, BYTES_TO_HEX_STRING_SIZE(data->VariableDataLength - sizeof(EFI_GUID))); +- guid_unparse_lower(s->SignatureOwner, uuidstr); +- tpm2_tool_output(" - SignatureOwner: %s\n" +- " SignatureData: %s\n", +- uuidstr, sdata); +- free(sdata); +- return true; + } else if (type == EV_EFI_VARIABLE_BOOT || type == EV_EFI_VARIABLE_BOOT2) { + if ((strlen(ret) == 9 && strncmp(ret, "BootOrder", 9) == 0)) { + free(ret); +-- +2.37.3 + diff --git a/SOURCES/0007-tpm2_policyor-fix-unallocated-policy-list.patch b/SOURCES/0007-tpm2_policyor-fix-unallocated-policy-list.patch new file mode 100644 index 0000000..1c4b962 --- /dev/null +++ b/SOURCES/0007-tpm2_policyor-fix-unallocated-policy-list.patch @@ -0,0 +1,85 @@ +From d35bff8cf06cec386afd24bdbed9828caf063a2f Mon Sep 17 00:00:00 2001 +From: William Roberts +Date: Mon, 18 Jul 2022 11:31:51 -0500 +Subject: [PATCH 07/17] tpm2_policyor: fix unallocated policy list + +The TPML_DIGEST policy list was calloc'd for some reason, however it +could just be statically allocated in the context. The side effect is +that when no options or arguments were given a NPD occured when checking +the count of the policy list. TO fix this, just statically allocate it. + +Signed-off-by: William Roberts +--- + tools/tpm2_policyor.c | 15 ++++++--------- + 1 file changed, 6 insertions(+), 9 deletions(-) + +diff --git a/tools/tpm2_policyor.c b/tools/tpm2_policyor.c +index e4f6541b..d27fff8b 100644 +--- a/tools/tpm2_policyor.c ++++ b/tools/tpm2_policyor.c +@@ -14,7 +14,7 @@ struct tpm2_policyor_ctx { + //File path for the session context data + const char *session_path; + //List of policy digests that will be compounded +- TPML_DIGEST *policy_list; ++ TPML_DIGEST policy_list; + //File path for storing the policy digest output + const char *out_policy_dgst_path; + +@@ -36,8 +36,7 @@ static bool on_option(char key, char *value) { + ctx.session_path = value; + break; + case 'l': +- ctx.policy_list = calloc(1, sizeof(TPML_DIGEST)); +- result = tpm2_policy_parse_policy_list(value, ctx.policy_list); ++ result = tpm2_policy_parse_policy_list(value, &ctx.policy_list); + if (!result) { + return false; + } +@@ -54,8 +53,7 @@ static bool on_arg(int argc, char **argv) { + return false; + } + +- ctx.policy_list = calloc(1, sizeof(TPML_DIGEST)); +- bool result = tpm2_policy_parse_policy_list(argv[0], ctx.policy_list); ++ bool result = tpm2_policy_parse_policy_list(argv[0], &ctx.policy_list); + if (!result) { + return false; + } +@@ -85,7 +83,7 @@ static bool is_input_option_args_valid(void) { + } + + //Minimum two policies needed to be specified for compounding +- if (ctx.policy_list->count < 1) { ++ if (ctx.policy_list.count < 1) { + LOG_ERR("Must specify at least 2 policy digests for compounding."); + return false; + } +@@ -109,14 +107,14 @@ static tool_rc tpm2_tool_onrun(ESYS_CONTEXT *ectx, tpm2_option_flags flags) { + } + + /* Policy digest hash alg should match that of the session */ +- if (ctx.policy_list->digests[0].size ++ if (ctx.policy_list.digests[0].size + != tpm2_alg_util_get_hash_size( + tpm2_session_get_authhash(ctx.session))) { + LOG_ERR("Policy digest hash alg should match that of the session."); + return tool_rc_general_error; + } + +- rc = tpm2_policy_build_policyor(ectx, ctx.session, ctx.policy_list); ++ rc = tpm2_policy_build_policyor(ectx, ctx.session, &ctx.policy_list); + if (rc != tool_rc_success) { + LOG_ERR("Could not build policyor TPM"); + return rc; +@@ -127,7 +125,6 @@ static tool_rc tpm2_tool_onrun(ESYS_CONTEXT *ectx, tpm2_option_flags flags) { + + static tool_rc tpm2_tool_onstop(ESYS_CONTEXT *ectx) { + UNUSED(ectx); +- free(ctx.policy_list); + free(ctx.policy_digest); + return tpm2_session_close(&ctx.session); + } +-- +2.40.1 + diff --git a/SOURCES/0008-lib-tpm2_alg_util.c-Fix-potential-null-pointer-deref.patch b/SOURCES/0008-lib-tpm2_alg_util.c-Fix-potential-null-pointer-deref.patch new file mode 100644 index 0000000..b5067d8 --- /dev/null +++ b/SOURCES/0008-lib-tpm2_alg_util.c-Fix-potential-null-pointer-deref.patch @@ -0,0 +1,35 @@ +From cfb18410e8f706646adce2bd9f6cffecbd363d2b Mon Sep 17 00:00:00 2001 +From: Imran Desai +Date: Thu, 21 Jul 2022 15:19:36 -0700 +Subject: [PATCH 08/17] lib/tpm2_alg_util.c: Fix potential null pointer + dereference + +Must test ext_alg_str before dereferencing in +tpm2_alg_util_handle_rsa_ext_alg + +char *ext_alg_str = calloc(1, strlen(alg_spec) + strlen("rsa") + + RSA_KEYBITS_STRLEN) + +Signed-off-by: Imran Desai +--- + lib/tpm2_alg_util.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/lib/tpm2_alg_util.c b/lib/tpm2_alg_util.c +index 1e984d74..580f41cb 100644 +--- a/lib/tpm2_alg_util.c ++++ b/lib/tpm2_alg_util.c +@@ -601,6 +601,10 @@ tool_rc tpm2_alg_util_handle_rsa_ext_alg(const char *alg_spec, + #define RSA_KEYBITS_STRLEN 6 + char *ext_alg_str = calloc(1, strlen(alg_spec) + strlen("rsa") + + RSA_KEYBITS_STRLEN); ++ if (ext_alg_str == NULL) { ++ LOG_ERR("oom"); ++ return tool_rc_general_error; ++ } + + strcat(ext_alg_str, "rsa"); + switch(public->publicArea.parameters.rsaDetail.keyBits) { +-- +2.40.1 + diff --git a/SOURCES/0008-tests-add-eventlog-for-parsing-MokListTrusted.patch b/SOURCES/0008-tests-add-eventlog-for-parsing-MokListTrusted.patch new file mode 100644 index 0000000..eedfd3b --- /dev/null +++ b/SOURCES/0008-tests-add-eventlog-for-parsing-MokListTrusted.patch @@ -0,0 +1,1462 @@ +From 5a66e977ff70f0700aecb9753a86bca780aab1d7 Mon Sep 17 00:00:00 2001 +From: Thore Sommer +Date: Mon, 10 Oct 2022 19:17:07 +0300 +Subject: [PATCH 8/9] tests: add eventlog for parsing MokListTrusted + +Signed-off-by: Thore Sommer +--- + .../fixtures/event-moklisttrusted.bin | Bin 0 -> 18926 bytes + .../fixtures/event-moklisttrusted.bin.yaml | 1228 +++++++++++++++++ + test/integration/tests/eventlog.sh | 1 + + 3 files changed, 1229 insertions(+) + create mode 100644 test/integration/fixtures/event-moklisttrusted.bin + create mode 100644 test/integration/fixtures/event-moklisttrusted.bin.yaml + +diff --git a/test/integration/fixtures/event-moklisttrusted.bin b/test/integration/fixtures/event-moklisttrusted.bin +new file mode 100644 +index 0000000000000000000000000000000000000000..9db8d06a167798e8f698ff71f7f334e59e5046a1 +GIT binary patch +literal 18926 +zcmeHv2|U!@_y1t*Bv~R$gBDpo24hRvWs59PM1#RtW;BZ>vL!@|y+WldNm(Lf3n|fJ +zDWP28`sJ@?#u&pq#R?meFn2n2!we3nXL +z;HH%?&IM(phtl`M5h#%2TrqkCJstSPjzG=jS-@rPM(Wwrduv7yGzGm+YUGNA5^P5v +zW$n6gB}AJ&z=e&q?I!(P1@H~(gw54?jxL|x8q24`^S#QBJtOxK;p?Fi&46${Pwz!%6jMGPto@4TZqSM(gEXwHTD8$d# +zte?FygKyCOJP&uKO-dzWvh-_WhaOegNIUO4p>)X4FZ_an_IRv|FlBj5H1KRf&{KQ2qO5SAm|o1gE=#Kff{Zls2X6LQ%BBk +zI<`q8HGwD9cm +z67``7hD<1eJ|>fao{pZL74dyM=Jlu4`i~GN6RT9zmZ;C1bad>D2xyyvG_-+DhY?uArdJlNedHs6MYku7cLN`ut7l_Lj6*om5!f>jB~+y<46=O +z63*2FOObOS`aq&9ITe%?AVmd`loeHWuH;lyQGn3O^Vxr*$p|{}pF2j!h+v4I<3d0Y +zbZqnybaaUL)saDmYu+AP7vU3gA-3g^hwqo?Cd?%&``PK6-94aFeIp|$jIZplZPK1l +zjr;CqYV<}$B~k7;ov1yp#jCu-YdOcGUR{80Yw-^qj^mH=)m0g7txtHqhxf>dWe3Ym +zeb$H`>X$cP+g`;q+4Ndaz>h2v?vvNU*rwhbB-xC~;^*9O=tP>wlMD4`hwFA$OP^OW +zK^_zSf~mft9)&C{>Wm2Lz3|M4(PMg|&|{T%yqT@wMprk6iJO+`pOf2?JkNNvyd`8B`PgJjqqX6!P)*Yrm)8#UB-@JK8G^mA3SnAvc6v*OJgQSNLkPH*+?x-zvQIk4!oXFMuBIdq0f|Zpi +z$`D7uk+2jX47y-u@osn*kby+tip!AvNZyTacK6K)o?#2h(iuCfBX{{h25A^t4L_DZ +z3PAi}OBYxycVK$x5DsREF_$BpL<-`#ho3X$?#+=ttzyG*n81iAsNm2(h;Qq{F{N({ +zxL0tqF5?L!Ido7|jpy=EIkZoUdLcuX{dw^aRZ68#cY +zyqUAB(?I31HN|m;``Yd%U%MN^#Nm=20v%mldU&t%Fbb8Ve6GqOj>H&(e#&UUCo~I5ya*#C>2qcKy0+U(7Ja +z#D2~A&zMhNKJj(NJ72ZBTy)>4=))NKb&y}bo|H;ec=ibnb%iy1GW+{0R^2x2&lhj| +zK*fgj=~is9C39;Aq~jNB3E@?@Dl1!2M!GS?g^va{L}Rf{mMzr0HLFoU1p2*6p$`nE7ZK;WF^jRU~sQIs+_*YN-t0(?<>j_%i7hsxO +z?bD11L~Ytv{~Ziyv)bK~V}nNnOrQwH*I-Sz&*45BmaQXZwlKrb_y_}kc!C1^EE*u0 +zc<61c6nG$R*bHFdVY9`OJ@5o~3X!0&99jn7WaeQ8wt)|k;Hn@B3Bz~Tc=*ilE+itE +z=te>55=p*9fEajCLjzKSpEK~Fmwb-0_P~=|Q5IMdB@ktXC3)c}zTQ|D9Lf?H8?%;! +z0)#;;p&=y&v>LD+(3rWbGMt6N!~PMTr69>Up2e2t8Mc3PwNYqDK>=74zi(+=e_a+^ +zS75uYcwOVr;FRrNJ^EeDoR5qLC{nMAxrTk-4u@9u?Q}s0bFVaC*2jKMl`rW?(|B*> +zrL=UJ!SRZOF4h+>>yddEA>rp+J~3IOxt`k=+I+zLC@QM;yZnpOGZFRg-rQ{+v+{IS +zXVSHE~k^)Gw@|U&&HXxtnway1~XOWSDzH@k+RF5T6Ql` +zvp*fDac6_n>1ooAvu_I%KTIg|gf-C*_dDG=>38>oOJYM&pjKpHbZDPt-s_V=%=n{x +zbCyN~ojDjO6KFXTt27fGk}g7pj}8eeQN&MXg!8oS-ONqdx7}CVvwvuFG3ZWttP>>o +zO9ftfB!?&)Ft4cyXM`?78)64@B*KM+$wWb1aE6DDZU)H+F@Vb=`$ON&QujrO9d}*V +z)>9HTEE?+Ko_UZ1Tw^uT2C{;-WtwN2MVWX|D8B0Q@-8HAIiCeth7DMGUoSj-SKgOI +zbfvmb$nroefQ$pt1#%077Rag-5C%vV{DYL`Kv8Hn6AS1lBO@~%9nu=Ige(^F5Pg*1 +zd_(^J{!29kY^*-;&xmC6y@5(Vf}x@wKH}-uts<)V=YD +zeA#TjokM{Yl`5Xwf|k2Zyl@?*cfa~MPbi?asx`*Wm7~kHSuo3qvFmYDJHB;`3A*C# +zu6xjU{rHut0Ol;|@9B?~wnq*}+$z*w>zm>A=6gI>ck1ea!Q|B?QXGd(W+XQ(5Bl64 +zoYUb~$=DqDjw?PfXc^se`66G-Lw79 +z=_rZp=-av9>_R&6?tBR$;iI8E1DtWO8>1uN_O;gP4iv~nCLQsV-Wja-)iOW4Sys5Z +z*YY`ndooS4VR!Kh#j>oJ4xAv{s=o9B8zg5|qZd{7bB +z=V-=u{c8nQyy2^-AY{G@2K&euFQnAt@ve)$%{!Unew(*=V8Nx48iun5yU$-|z9ts& +z@!RO@K=kgqo{Kr+ye79AdQ9H#+ia^`^2(fgxp+5&xK&|7ph#D`_G-Q;Yu}P*oXT9m +z#Y&{AW4kp*0^go35#Du{|4Q_YH$oF-$JP>6PxmE!jSW2Bh+kHbC5&P`HhGJ;5Yc`8 +zQ$6o;s+UrxP}zyypB##B*lxw#Lr2z~T5LbM8eg0kquaJtVxxX~OF!4nls1*(K_uY;;J}M^4rCM{1vLd# +zB?Tq)EXd4dmEkND9{G>3DhK?nSzuiIgH>BR!IkJwMp?`$8i1cDi$4oAPdTd3_RF#M +z4c_>iimyS4)#4QuKNKKuTZg@8+FyMG75VV(NTKZ|=XTCP&UEadd4y`pA5^+RA +z*}8`qo<{So^@Wva4edmk7dP+vzs|Sb`q_aU8I8NFE09;x>m%qtymQUhEes1lqYHp$ +z^X~%9`3>}HNBFNF3%DEq<&=5ai(s1~tG@?m9!zY%ef0HN2WO8C&E$Cd?$$Jc>(KT& +zpfQKcAd^g^Ov5PszXUWue1Y2yWOfc>AdDIWpRJQ6t?`l^@g2Ib^XZtA^!Up8$CWa +zUwmrqZ2{Tkz777Kd~WNJvEkq-vh6iXF|yLmPg$|sn~{&0S>H{@^|g+L94Q=`V2@>) +z+T0>S3bnfO_Nq&7pQZw?IDBCA;$8mi)0%mg(y!^X$45F@i_9DxsuD4bCl-^pYM<6R +z?KE&ks)Rd%94jU{()x_7=CtX8!|vhd49oNGv%VRdNIg&>tWD={oHao&64&8_KHW0e-!Y};Vr@0w4paP9osb-k4S0KNK9=|e(4 +zUQFd#c*g`)kkS2qlC9$gA+_fBvM=uT>yz!<@3ro|z%LkKVAt+=GQ8Bi$Xj`|W?=K0 +zm&#|^s7wt6!AU)rr?!bm5qV7Qb0 +za8$PHOY%vrcLMq!TVox(HeF!2?<*k1=Gp6H*zv%H4Lw@ajae<_yK_Ki2g@E4+p3WL +z;Ui)j$AlYhRK_PQi_uStdUFYN;_C6+H&U{9Id^5cu%K$G%l-Fhe$uZzeeCpY+c2Wy +zd1RY^wzKe#5Ly_}numck;QDK)gK0T{fyo6JV7Y&N76y>Nf`R|VPKOFw0gYBtUT``< +zRuRrZ;o<)X9{kvL{ecHRIZ`MaeFLLE?RDg^c$?nTXZ1AU$gYnLWukKE(pkIq@`p0N +zOWem^LayUrYckfyX5QeJO}#%ZojGM@l&&2Xzp>K#+pC(6lh?BaVnelK9d_*ZKvy3! +zY!)!vS5B6UXig1T4R4ELHjBywJG|rl;CBs3E0)2n#Zu8OELfro-;SXY>A-Fdtb45eH^+kL(5fhR +z^F4Me#F66St#Kc$_aIs=lA7?7Y9zc>-V>tLLH21)$5M-Oje +zPBwT|g!)?|vh~cmATE?|*iX(0PeGk7Yi)#Y#-Ru13WNvZ$76*${~pZvzv7%I +zv*^q~cUnLDaTF}~uv6Y(fc9G-{9%RmdL1F-e4lXDEjxH@KE1J1%H?N|$lp~E@hEJ+ +zHq+6|BBKnIpH}S>`e+gVrPL-;M^YG7TT-}<_eTB2V<}?7@sGKt{ZFNk6Jl=F)>>9F +zT5vwMJ(Y=l$2s7$_MsNnO0DMBEaPitMQJNUSgeoM-mIyV)-;k{jh^-t!<(l!hv+Cx +zW0+RP9Ytx?m!_?yuD{#DkTtQZV-RD#x6-2Q{)!Ifx@yYvC!$Bg9=sD6ljr64l7HrQ +zs90j)W@OL1p$5f>g6$>(vL8KCnD4fYkVXotpGF-xE+b~DC_TbuJmL{umS}^fp7D(E +z+?chNJNsQhH?r_{kJgUN$c_|K=LGRp6p=%khRgJF`-{_+lrMcPx5|?VAI@gn(|qzu +z)oUR=w|+zGWkly#csz1kJ4);ivQcz=`y$$+z9Js*1n`2^Ia%1;Hl4+i +zIp-t*v5xObQyRZ1V&hcqs-n6N)<`cxqHR}tt`(4wM +zOtVu?2nASPv4MF+g3tVkamFoy`l%(=Pxp)<%?o+CdLF1m!h65c$_I&*7@mf(|OIHk>9 +zerX9DLV-W@Yzxi^OVFk(0)^Ouz=AVW6gbKtfGf<0FZkdQWbhk>Fa^H|U{fdn&_dEl +z&DMpFm1k4^irLGDw|(dUwrH(VRC3%Areb+|dL&W_;Q%NaAdJ8jKC5*_c+9rr0O)!E +znm&Lc2F!>Yc;*K32*j^PS*5+)LqzY+W>Lwml<%Gw>x_`mD=G~t!@0<1`*j0!FGhk| +zw4=Ph8Y~BJS~w$~>$}1%|H25HdEQV6v)P`yfS&3BPW(X51zf=l(8vhb^@1g3mdmXd +zS;Dzb?=U;C?Byy;nH?o`aQR(x47N}p22A`*ARjgG$8}H#v`=B?D&EbNM>F{OYN25x06cd`9qufi*WpBkW9P? +zv3wZ=UOxu?{e;-^F*gYXcvRt)1lC>{%qKfS)17pAa%(3wrCUnI)ae`Fcs1#!Md(YS +zRN>2}liL-mBta=%thYDVlSaWtk+!d|H+&`uyUT7QqR-qxwYe{R0~DR5K1ccapIp&! +zX_%+KRtsK>f4vs0)&6=dxW-?v1$J!ygIcgu{q?qBUD}ISm{T+3BQg{ojoSKE{6nLU +z%N|gR-eSgkp118z>(z}vCHH0vXoObZ!{Z4j*u#JmyczYcr}5t($^7eS{Of7_|9lMc +zucz^U+tYwi4nW4dHF25lz~Mx*;FD^7(v3N4)q%|#Ut7kmH(z$RaZ)EFZCcP3zzl3f +zSZG@UlMDnQf!a@HD!;&p1LHrOW@bWX!AN{Ai+DDlKcH9;NVAD+em^qiZy3@jUWRC%Yj@@* +z=|7_XN0n&%ABb!S@49iq{IrMt)mO;nL`3skyEC8X=K7E5{nh8N8~|HyUMhEvnxE57 +zv%lPWHAzRTkN%$E=qKk$yzG!maLwzd-se58$8o +zf?$3)!Dr4s##cYRx>GN#;)2|Ev`gHvxT<4E+}cgtgEn^-$T@@v+ru7@8PUrWPo^Li +z*E}4nUTE>)o}Fro1A}ovYmoJ!v=q6DL`MwakyY@H#$wnbov&#JI|x4+l!QYu62|bv3=Ufgy2Cu1|Wu^y8TU^+++n^Vrd!byjXZh1Oi3JCD1$YK0 +zD_~H +zq47+v`p~_KzK-2&T?&l{a=P!l+~|KmKaC4CH$OhsBq|w%Xwr_-22rtGx-VyRUT%Nh +zY`@J@_tKjUVsb@~Z1j&3(+5Y+)B}m6<#$109iQKCv6^>>!G?Y^h#(GLh#=li=9DId +zb?l_w(|1zfhj`(mO*RhB`3Pbelo7#2PC;xoDg(*DAuxY`QDm{MHcI)=#uI~cUJRrL +zse*W73>;6a3PN#I=d;j1&cGkV{IpgLX|EIxKNG`Rcc%0FS1Y-br)s7(Br_n(O!hGZ +z7p8f?_Qd%XJ|mp#gA%_}b`5f(Lv2Z_UWQ#&i8m$@gZ??T_~+V}uE*QUq8cdq3{hd_ +z**iX*kI{3q)avx-JA*us@!?a`=}%l-U6BU;Zco;EcJ;&(42^H~nd=C +z8<;e3*Bn}wtWl@=G;SgkI;3ySp8ZThdFKf-V^7#1j&~I^BtwoWmd(n=w-$bshZ;iDOE23dTn)o*_#Zd7~~U`DNdUY|lb&0uklDiwS=yf@l8+2KQ**CX}5 +zI)VU2$;N_1eA|(HJLqcdCdjP(SQ(FyPm#BP#vWtVGY40m8x$D#*>>sv^5$h-{b)gY +zlT{`6o@~fkmm)&P)NhFoV7d?K=@nD`?^qY~6U4=5cFiO)aeO(ho}pI35#Ii3lKC8K +z95EyIMZvW8af@6h_Ntsv;pzQ{nRdvXBGip-YFtHeTbmrat4^$(C;hbhWXKbp)uzjy +z#*p_NN@?Hh-w=Pr_2Xh-$v$v+mEna}TZYp{k<^D?q8nQ3wLvfjzERrHP5)XV1noLq~% +zTU6KaVaBybVsB>057c+92BjrETp<~EUy8y8d0>OdlV)EUkas6ho#kBI+!22}K^TgD +zaF}g$#r>6p8B>t0Y*&Y1cg~Sxi6^9-OmWj~5AkVO$%}C83e1a>i;t^1ij2dOTs%;+ +zvIL^6n>W$dHxT@GBg;~$cvtX?jH76};`~rJS7n@8+w7bVloeqUFe0{JV!^l!LA_uTkcP?R*X_Qe0wN_~aMS +zbRiPl@a}GSZ``lw{?;t_GkwzV7WcSb>YF*Lw-bAvW9DdbDx>fA(eIKybtUKeR)Gd+ +zdHg|Z@dQt=s@Iy{u<4Y*?A;l65{y*!!-8;BO5mXoiN@*6=koLR>W*Wp@n~4`tqb +zFs|nlm_*Q1M~S3fN<3GKgYA(Y0%ec-RcA9Ec_(fn+}UgUkqhFFS>6|p--Y^MHJ*WN +zN9JeuJFA#2A^=Z_E6xo|^`>YlE8&!IXhnec%4j7QWwe?z27^;lQ*d>2QBgswD9I|z +zDJaQ-5KKi#4(F{V7odu9!YI-3ukV3bU12ArkS*)FvrGw+ul%f2kgrnl?S-Y-F8s?K +zQ;X%n9u*LX(uBWg=Zy8^KC>y4V;`LjTx7&9T@+i};=mho;{5>A>1rV*j17;(qHg%$ +z2vqRe94XKV@9IRH-ImsrmBqW#FlRhct-^6iBQSz~AAPTBk|X+ov}G8xq1UvggeW2n{LCue%?hV`$qQ?|*U7d-oY +z-{o9Zu|+JxOMrs+!2u4P$do{DoF+WuG`-%FQ(CgBF-l(RYc*wOs!`*a`#MIIzPL3l +z>}$fV9lu&E@LMD`m1!vTUGcoBQGU2oMgN=dMVT{Q)mNv~E(+g@jBBY0qvIVMkX}S- +zX+=i`GX$geuU5^5ibC}}X1S)iVc!cgHyZm1$AGi-(sOA|v0Ej@t7qhe77@o2$Ua0@ +z6rSKh!ht?hXgIZL!?{JJ>5J4Rl<%yrO)Rx{evLSlfO-9#JJM4!D5-EUF~BJSg_6ah +zAh4jJUvcJq*YCb?RtG0V&Y)>#<#K~o!Kd+`uzBmhH`$8rxMr9PW6lqOoaf9JytCj0 +zY!@2F)Eb@F-6%@<^4&?3#AI?8^LR2oi +z<>L&8nti-qVzT-7jem7)oZ+$2*GKEhDq-|hX=Y;UUhywpg$DaZM)B0%IzQg7$_+`7 +zFs|xVo&yf*-(3gqCj1Z%AZdGljeCK|EoUrzyn6*2m)Y_Y2*@#uGsKf$?8qUayksQt +zN^jyK8t|g`!jT9#U}aLsn()kN+SnNBX(~XjDsGUPo2-heGFn#2Sw&eEi*|-1LY0+W +z)zqAo6jd-N5)nnhk*PkoxjHV2YFH%|EJhZK#k$HWDZ8o3s;amt$f7aMI1I)OhsL6n +zQ1jYUlR^o!f@J2DHi~8(BII25Mm3mvcn7^ZALh=Iz|dA17|EdFvwPp^w-F=vloo55 +z`9sCeTFAOYk9)&ym?kNCLS$()Hc5_)ByRN`{TKG-Dczek`YK2Or{GJ +zH`n&!aeN!))taZnMlZSisZ8>+RKrU~H?RAyx5;ODmM2!0>%U!O(Ky=ADnA93EOGt^ +ztyNPK=OC2V9vv6a#I);@)&f)8)zWwS2J$Y+9W7IT50y@XBd5-kM^IOG +zOst!1G{I;wXJLhd~(^7n}dT*tT=AuLgLMk3SatKLl1d3I)V| +zkb#j2JZ~y!NY-uPSr8j5tD8TNO{y;&>pmL2vz~NUoryS*vuPm3phE&Ow|w_2Gncgw!=xTkP;7Eiw`%3VwoyO_ZfPyWeTmZ{3BSs}!AU15}Lhrj*<28de+aimJ2e +z@6}#-KDled&Bd5H>p%K|6-%TUo4-rix_PX|F-J-oBpKrq!zGWUKP2Qm7CjVhv^gL^ +zRm1Os#$vl{9wk69kJD02@#WCP(fPM!7}Zw>azA$;9BoLtkKMHSddu76XUp1&cSIMB +zD6Em(-2!~Efp9N1y>K{RnofEfP&%6|-@8}FIx}@!3*R1n@Ptj^QQxXALd4DF>&GG& +z`+xJyx$ni(4i;7Y@o3AzRDSP>!TqMI_l_NmCZ`XF_a(=nR;D;u_&R)E#1{xuq6YlD +zA>ii&-`cyh%L?%O{|(&ZeXvegUtbayPsVA2-6a%!!v#wq5W%iCQ5d>QW +zYEoRBXR{QX4|rjhg3|=0WeK!fc67XLs-0<;Nn%Y;Oh2&b=m~u2Q`JkJVLSQ^`Tk8V +zOD*h={j>&tcVG~UH#%)@SqgRv?s@U#F}2irtIHQ+Tv6w{abM;M2HnbMjoFV-fV5UQ +z^Xy@ns^3MB`*r&36vI+31;BKEi{fH{CcX>a_7S)3ar{2dhD1R_<;IQo@*lot-?Qd% +zp|{Z+`94@q<_tY}ixCI~PW}IioGczFoye(><4jlBoxa7^KNhkH^L)tH8w1rxN_>10 +zcwp~6NDBzRgaieuxN8U75z3)nn +zyyQ~J^LX!yeck@{FAT(Y!P{m;l02~+2pYZk|HNAok6eu4lEid$pRfG)j<*hn-a%g|L +q^kGVHNUdWo) +Date: Tue, 11 Oct 2022 08:44:44 +0300 +Subject: [PATCH 9/9] tpm2_eventlog_yaml: use defines for Unicode variables + +The used variables and their length are defined as the following: + + - Name: NAME_{VARIABLE_NAME} + - Length: NAME_{VARIABLE_NAME}_LEN + +Signed-off-by: Thore Sommer +--- + lib/tpm2_eventlog_yaml.c | 30 +++++++++++++++++++++++------- + 1 file changed, 23 insertions(+), 7 deletions(-) + +diff --git a/lib/tpm2_eventlog_yaml.c b/lib/tpm2_eventlog_yaml.c +index 0b1d0318..59a5d8fc 100644 +--- a/lib/tpm2_eventlog_yaml.c ++++ b/lib/tpm2_eventlog_yaml.c +@@ -23,6 +23,22 @@ + #include + #endif + ++/* Valid variable unicode names and their length */ ++#define NAME_DB "db" ++#define NAME_DB_LEN 2 ++#define NAME_DBX "dbx" ++#define NAME_DBX_LEN 3 ++#define NAME_KEK "KEK" ++#define NAME_KEK_LEN 3 ++#define NAME_PK "PK" ++#define NAME_PK_LEN 2 ++#define NAME_MOKLISTTRUSTED "MokListTrusted" ++#define NAME_MOKLISTTRUSTED_LEN 14 ++#define NAME_SECUREBOOT "SecureBoot" ++#define NAME_SECUREBOOT_LEN 10 ++#define NAME_BOOTORDER "BootOrder" ++#define NAME_BOOTORDER_LEN 9 ++ + static void guid_unparse_lower(EFI_GUID guid, char guid_buf[37]) { + + snprintf(guid_buf, 37, "%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x", +@@ -321,10 +337,10 @@ static bool yaml_uefi_var(UEFI_VARIABLE_DATA *data, size_t size, UINT32 type, + * respectively. + */ + if (type == EV_EFI_VARIABLE_DRIVER_CONFIG) { +- if ((strlen(ret) == 2 && strncmp(ret, "PK", 2) == 0) || +- (strlen(ret) == 3 && strncmp(ret, "KEK", 3) == 0) || +- (strlen(ret) == 2 && strncmp(ret, "db", 2) == 0) || +- (strlen(ret) == 3 && strncmp(ret, "dbx", 3) == 0)) { ++ if ((strlen(ret) == NAME_PK_LEN && strncmp(ret, NAME_PK, NAME_PK_LEN) == 0) || ++ (strlen(ret) == NAME_KEK_LEN && strncmp(ret, NAME_KEK, NAME_KEK_LEN) == 0) || ++ (strlen(ret) == NAME_DB_LEN && strncmp(ret, NAME_DB, NAME_DB_LEN) == 0) || ++ (strlen(ret) == NAME_DBX_LEN && strncmp(ret, NAME_DBX, NAME_DBX_LEN) == 0)) { + + free(ret); + tpm2_tool_output(" VariableData:\n"); +@@ -397,7 +413,7 @@ static bool yaml_uefi_var(UEFI_VARIABLE_DATA *data, size_t size, UINT32 type, + variable_data += slist->SignatureListSize; + } + return true; +- } else if ((strlen(ret) == 10 && strncmp(ret, "SecureBoot", 10) == 0)) { ++ } else if ((strlen(ret) == NAME_SECUREBOOT_LEN && strncmp(ret, NAME_SECUREBOOT, NAME_SECUREBOOT_LEN) == 0)) { + free(ret); + tpm2_tool_output(" VariableData:\n" + " Enabled: "); +@@ -420,7 +436,7 @@ static bool yaml_uefi_var(UEFI_VARIABLE_DATA *data, size_t size, UINT32 type, + } + } else if (type == EV_EFI_VARIABLE_AUTHORITY) { + /* The MokListTrusted is boolean option, not a EFI_SIGNATURE_DATA*/ +- if ((strlen(ret) == 14 && strncmp(ret, "MokListTrusted", 14) == 0)) { ++ if ((strlen(ret) == NAME_MOKLISTTRUSTED_LEN && strncmp(ret, NAME_MOKLISTTRUSTED, NAME_MOKLISTTRUSTED_LEN) == 0)) { + free(ret); + tpm2_tool_output(" VariableData:\n" + " Enabled: "); +@@ -462,7 +478,7 @@ static bool yaml_uefi_var(UEFI_VARIABLE_DATA *data, size_t size, UINT32 type, + return true; + } + } else if (type == EV_EFI_VARIABLE_BOOT || type == EV_EFI_VARIABLE_BOOT2) { +- if ((strlen(ret) == 9 && strncmp(ret, "BootOrder", 9) == 0)) { ++ if ((strlen(ret) == NAME_BOOTORDER_LEN && strncmp(ret, NAME_BOOTORDER, NAME_BOOTORDER_LEN) == 0)) { + free(ret); + tpm2_tool_output(" VariableData:\n"); + +-- +2.37.3 + diff --git a/SOURCES/0009-tss2_provision-fix-usage-of-L-parameter.patch b/SOURCES/0009-tss2_provision-fix-usage-of-L-parameter.patch new file mode 100644 index 0000000..ce92907 --- /dev/null +++ b/SOURCES/0009-tss2_provision-fix-usage-of-L-parameter.patch @@ -0,0 +1,30 @@ +From d783e7962e268b45c13ad800fca636bb922005fa Mon Sep 17 00:00:00 2001 +From: Juergen Repp +Date: Tue, 18 Oct 2022 10:32:43 +0200 +Subject: [PATCH 09/17] tss2_provision: fix usage of -L parameter. + +The -L short parameter was not marked as parameter with required +arg in the short opt list. +Fixes #3147. + +Signed-off-by: Juergen Repp +--- + tools/fapi/tss2_provision.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tools/fapi/tss2_provision.c b/tools/fapi/tss2_provision.c +index 5be7b4dc..7edf2dd3 100644 +--- a/tools/fapi/tss2_provision.c ++++ b/tools/fapi/tss2_provision.c +@@ -33,7 +33,7 @@ static bool tss2_tool_onstart(tpm2_options **opts) { + {"authValueSh", required_argument, NULL, 'S'}, + {"authValueLockout", required_argument, NULL, 'L'}, + }; +- return (*opts = tpm2_options_new ("E:S:L", ++ return (*opts = tpm2_options_new ("E:S:L:", + ARRAY_LEN(topts), topts, on_option, NULL, 0)) != NULL; + } + +-- +2.40.1 + diff --git a/SOURCES/0010-tpm2_encodeobject-fix-formatting.patch b/SOURCES/0010-tpm2_encodeobject-fix-formatting.patch new file mode 100644 index 0000000..c1f9cae --- /dev/null +++ b/SOURCES/0010-tpm2_encodeobject-fix-formatting.patch @@ -0,0 +1,26 @@ +From 0582b619c3a2c407bf5eace8d83d832688781789 Mon Sep 17 00:00:00 2001 +From: William Roberts +Date: Mon, 24 Oct 2022 10:31:05 -0500 +Subject: [PATCH 10/17] tpm2_encodeobject: fix formatting + +Signed-off-by: William Roberts +--- + tools/misc/tpm2_encodeobject.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tools/misc/tpm2_encodeobject.c b/tools/misc/tpm2_encodeobject.c +index 2341c3a1..ccbd0e01 100644 +--- a/tools/misc/tpm2_encodeobject.c ++++ b/tools/misc/tpm2_encodeobject.c +@@ -87,7 +87,7 @@ static bool on_option(char key, char *value) { + ctx.parent.ctx_path = value; + break; + case 'o': +- ctx.output_path = value; ++ ctx.output_path = value; + break; + } + +-- +2.40.1 + diff --git a/SOURCES/0011-tpm2_encodeobject-fix-auth-boolean-flag.patch b/SOURCES/0011-tpm2_encodeobject-fix-auth-boolean-flag.patch new file mode 100644 index 0000000..7bbdf93 --- /dev/null +++ b/SOURCES/0011-tpm2_encodeobject-fix-auth-boolean-flag.patch @@ -0,0 +1,99 @@ +From 579bb674b5bdf2a0d50e8d3a3d6f5391d233bdff Mon Sep 17 00:00:00 2001 +From: William Roberts +Date: Mon, 24 Oct 2022 10:48:18 -0500 +Subject: [PATCH 11/17] tpm2_encodeobject: fix auth boolean flag + +The flag for wether or not a key needs a password was being set based on +if the parent needed a password or not when it should be set based on if +the child object needs a password or not. + +Correct this by adding a -p/--key-auth option to indicate the value of +this boolean. + +$ tpm2 encodeobject -C 0x81000000 -u key.pub -r key.priv -o key.pem +$ openssl asn1parse -dump -inform PEM -in key.pem + + 14:d=2 hl=2 l= 1 prim: BOOLEAN :0 + + +$ tpm2 encodeobject -C 0x81000000 -u key.pub -r key.priv -o key.pem -p +$ openssl asn1parse -dump -inform PEM -in key.pem + + 14:d=2 hl=2 l= 1 prim: BOOLEAN :1 + + +A workaround would be manually modifying the ASN1 PEM file boolean flag +OR creating the same parent key but with a password and specifying the +password via `-P`. Note that a primary key is the same given the same +inputs and password doesn't change the generated key. + +Fixes: #3152 + +Signed-off-by: William Roberts +--- + man/tpm2_encodeobject.1.md | 5 +++++ + tools/misc/tpm2_encodeobject.c | 9 +++++++-- + 2 files changed, 12 insertions(+), 2 deletions(-) + +diff --git a/man/tpm2_encodeobject.1.md b/man/tpm2_encodeobject.1.md +index 791eafbd..2e83fa7d 100644 +--- a/man/tpm2_encodeobject.1.md ++++ b/man/tpm2_encodeobject.1.md +@@ -37,6 +37,11 @@ applications. + + A file containing the sensitive portion of the object. + ++ * **-p**, **\--key-auth**: ++ ++ Indicates if an authorization value is needed for the object specified by ++ **-r** and **-u**. ++ + * **-o**, **\--output**=_FILE_: + + The output file path, recording the public portion of the object. +diff --git a/tools/misc/tpm2_encodeobject.c b/tools/misc/tpm2_encodeobject.c +index ccbd0e01..80de14f5 100644 +--- a/tools/misc/tpm2_encodeobject.c ++++ b/tools/misc/tpm2_encodeobject.c +@@ -65,6 +65,7 @@ struct tpm_encodeobject_ctx { + const char *privpath; + TPM2B_PRIVATE private; + ESYS_TR handle; ++ bool needs_auth; + } object; + + char *output_path; +@@ -89,6 +90,9 @@ static bool on_option(char key, char *value) { + case 'o': + ctx.output_path = value; + break; ++ case 'p': ++ ctx.object.needs_auth = true; ++ break; + } + + return true; +@@ -101,9 +105,10 @@ static bool tpm2_tool_onstart(tpm2_options **opts) { + { "private", required_argument, NULL, 'r' }, + { "parent-context", required_argument, NULL, 'C' }, + { "output", required_argument, NULL, 'o' }, ++ { "key-auth", no_argument, NULL, 'p' }, + }; + +- *opts = tpm2_options_new("P:u:r:C:o:", ARRAY_LEN(topts), topts, on_option, ++ *opts = tpm2_options_new("P:u:r:C:o:p", ARRAY_LEN(topts), topts, on_option, + NULL, 0); + + return *opts != NULL; +@@ -190,7 +195,7 @@ encode(void) + goto error; + } + +- tpk->emptyAuth = ctx.parent.auth_str == NULL ? 0xFF : 0; ++ tpk->emptyAuth = ctx.object.needs_auth; + + if ((ctx.parent.object.handle >> TPM2_HR_SHIFT) == TPM2_HT_PERSISTENT) { + ASN1_INTEGER_set(tpk->parent, ctx.parent.object.handle); +-- +2.40.1 + diff --git a/SOURCES/0012-bugfix-fix-convert-sm2-public-key-in-openssl3.patch b/SOURCES/0012-bugfix-fix-convert-sm2-public-key-in-openssl3.patch new file mode 100644 index 0000000..81ffcb4 --- /dev/null +++ b/SOURCES/0012-bugfix-fix-convert-sm2-public-key-in-openssl3.patch @@ -0,0 +1,30 @@ +From 3848000b934b9e2546a506ab0922c028491d2284 Mon Sep 17 00:00:00 2001 +From: mayuanchen <94815698+mayuanchenma@users.noreply.github.com> +Date: Thu, 1 Dec 2022 21:44:22 +0800 +Subject: [PATCH 12/17] bugfix: fix convert sm2 public key in openssl3. + +Signed-off-by: mayuanchen <94815698+mayuanchenma@users.noreply.github.com> +--- + lib/tpm2_convert.c | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/lib/tpm2_convert.c b/lib/tpm2_convert.c +index 1bba370f..edb9bed0 100644 +--- a/lib/tpm2_convert.c ++++ b/lib/tpm2_convert.c +@@ -335,7 +335,11 @@ EVP_PKEY *convert_pubkey_ECC(TPMT_PUBLIC *public) { + goto out; + } + +- ctx = EVP_PKEY_CTX_new_from_name(NULL, "EC", NULL); ++ if (nid == NID_sm2) { ++ ctx = EVP_PKEY_CTX_new_from_name(NULL, "SM2", NULL); ++ } else { ++ ctx = EVP_PKEY_CTX_new_from_name(NULL, "EC", NULL); ++ } + if (!ctx) { + print_ssl_error("Failed to allocate EC key context"); + goto out; +-- +2.40.1 + diff --git a/SOURCES/0013-readpublic-fix-reading-and-writing-serialized-trs.patch b/SOURCES/0013-readpublic-fix-reading-and-writing-serialized-trs.patch new file mode 100644 index 0000000..437a9bf --- /dev/null +++ b/SOURCES/0013-readpublic-fix-reading-and-writing-serialized-trs.patch @@ -0,0 +1,46 @@ +From 62f6cdaa36e1c9e8f39e1ca60d8e3049de6860bf Mon Sep 17 00:00:00 2001 +From: William Roberts +Date: Mon, 27 Feb 2023 15:32:55 -0600 +Subject: [PATCH 13/17] readpublic: fix reading and writing serialized trs + +Fix reading and writing a serialized persistent ESYS_TR handles. This +occurs becuase the TPM2_HANDLE is never set after loading and decisions +are made on it. + +Fixes: +tpm2_readpublic -t handle2.tr -c handle.tr +ERROR: Can only output a serialized handle for persistent object handles +ERROR: Unable to run tpm2_readpublic + +Signed-off-by: William Roberts +--- + lib/object.c | 13 ++++++++++++- + 1 file changed, 12 insertions(+), 1 deletion(-) + +diff --git a/lib/object.c b/lib/object.c +index c186a820..1279a8e5 100644 +--- a/lib/object.c ++++ b/lib/object.c +@@ -15,7 +15,18 @@ static tool_rc do_ctx_file(ESYS_CONTEXT *ctx, const char *objectstr, FILE *f, + /* assign a dummy transient handle */ + outobject->handle = TPM2_TRANSIENT_FIRST; + outobject->path = objectstr; +- return files_load_tpm_context_from_file(ctx, &outobject->tr_handle, f); ++ tool_rc rc = files_load_tpm_context_from_file(ctx, &outobject->tr_handle, f); ++ if (rc != tool_rc_success) { ++ return rc; ++ } ++ ++ TSS2_RC rval = Esys_TR_GetTpmHandle(ctx, outobject->tr_handle, &outobject->handle); ++ if (rval != TPM2_RC_SUCCESS) { ++ LOG_ERR("Failed to acquire SAPI handle"); ++ return tool_rc_general_error; ++ } ++ ++ return tool_rc_success; + } + + static tool_rc tpm2_util_object_load2(ESYS_CONTEXT *ctx, const char *objectstr, +-- +2.40.1 + diff --git a/SOURCES/0014-fix-wrong-function-name-of-Esys_Load.patch b/SOURCES/0014-fix-wrong-function-name-of-Esys_Load.patch new file mode 100644 index 0000000..3e7086a --- /dev/null +++ b/SOURCES/0014-fix-wrong-function-name-of-Esys_Load.patch @@ -0,0 +1,29 @@ +From f1515918ebba36a540432425f7cd01ca3c44aaac Mon Sep 17 00:00:00 2001 +From: yuxiaojun +Date: Wed, 1 Feb 2023 11:47:40 +0800 +Subject: [PATCH 14/17] fix:wrong function name of "Esys_Load" + +LOG_PERR(Eys_Load, rval); +The first parameter in the function should be Esys_Load. + +Signed-off-by: yuxiaojun +--- + lib/tpm2.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/lib/tpm2.c b/lib/tpm2.c +index d91072ae..27f101e9 100644 +--- a/lib/tpm2.c ++++ b/lib/tpm2.c +@@ -1921,7 +1921,7 @@ tpm2_load_free_name1: + parent_object_session_handle, ESYS_TR_NONE, ESYS_TR_NONE, in_private, + in_public, object_handle); + if (rval != TPM2_RC_SUCCESS) { +- LOG_PERR(Eys_Load, rval); ++ LOG_PERR(Esys_Load, rval); + return tool_rc_from_tpm(rval); + } + +-- +2.40.1 + diff --git a/SOURCES/0015-tpm-errata-switch-to-twos-complement.patch b/SOURCES/0015-tpm-errata-switch-to-twos-complement.patch new file mode 100644 index 0000000..b90ed76 --- /dev/null +++ b/SOURCES/0015-tpm-errata-switch-to-twos-complement.patch @@ -0,0 +1,224 @@ +From 510d570d9c4f34d4768af3453dcfcc4f74006e32 Mon Sep 17 00:00:00 2001 +From: Juergen Repp +Date: Fri, 7 Apr 2023 14:02:33 +0200 +Subject: [PATCH 15/17] tpm errata: switch to twos-complement. +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Errata TCG Trusted Platform Module Library Revision 1.59 Version 1.4, +Section 2.5 TPM_EO – two’s complement states: +"The signed arithmetic operations are performed using twos-complement." +The tests policynv and policycountertimer were adapted to work with the +complement representation of signed numbers. If the tests return the error 0x126 +the test will be skipped. + +Signed-off-by: Juergen Repp +--- + .../tests/abrmd_policycountertimer.sh | 35 +++++++-- + test/integration/tests/abrmd_policynv.sh | 75 +++++++++++++------ + 2 files changed, 78 insertions(+), 32 deletions(-) + +diff --git a/test/integration/tests/abrmd_policycountertimer.sh b/test/integration/tests/abrmd_policycountertimer.sh +index 58fcf1b9..80afc541 100644 +--- a/test/integration/tests/abrmd_policycountertimer.sh ++++ b/test/integration/tests/abrmd_policycountertimer.sh +@@ -11,6 +11,27 @@ cleanup() { + fi + } + ++call_policy_countertimer () { ++ trap - ERR ++ output=$(tpm2 policycountertimer $@ 2>&1) ++ result=$? ++ ++ if [ $result != 0 ] && echo $output | grep "ErrorCode.*0126" > /dev/null ++ then ++ echo "This test failed due to a TPM bug regarding signed comparison as described" ++ echo "in TCG's Errata for TCG Trusted Platform Module Library Revision 1.59 Version 1.4," ++ echo "Section 2.5 TPM_EO – two’s complement" ++ tpm2 flushcontext session.ctx ++ skip_test ++ else ++ if [ $result != 0 ]; then ++ tpm2 flushcontext session.ctx ++ exit 1 ++ fi ++ fi ++ trap onerror ERR ++} ++ + trap cleanup EXIT + + start_up +@@ -25,8 +46,7 @@ tpm2 clear + # + tpm2 startauthsession -S session.ctx + +-tpm2 policycountertimer -S session.ctx -L policy.countertimer.minute --ult \ +-60000 ++call_policy_countertimer -S session.ctx -L policy.countertimer.minute --ult 60000 + + tpm2 flushcontext session.ctx + +@@ -42,8 +62,7 @@ tpm2 create -Q -u key.pub -r key.priv -i- -C prim.ctx \ + # + tpm2 startauthsession -S session.ctx --policy-session + +-tpm2 policycountertimer -S session.ctx -L policy.countertimer.minute --ult \ +-60000 ++call_policy_countertimer -S session.ctx -L policy.countertimer.minute --ult 60000 + + tpm2 unseal -c key.ctx -p session:session.ctx + +@@ -54,7 +73,7 @@ tpm2 flushcontext session.ctx + # + tpm2 clear + tpm2 startauthsession -S session.ctx --policy-session +-tpm2 policycountertimer -S session.ctx --ult clock=60000 ++call_policy_countertimer -S session.ctx --ult clock=60000 + tpm2 flushcontext session.ctx + + # +@@ -63,7 +82,7 @@ tpm2 flushcontext session.ctx + # + tpm2 clear + tpm2 startauthsession -S session.ctx --policy-session +-tpm2 policycountertimer -S session.ctx safe ++call_policy_countertimer -S session.ctx safe + tpm2 flushcontext session.ctx + + # +@@ -72,7 +91,7 @@ tpm2 flushcontext session.ctx + # + tpm2 clear + tpm2 startauthsession -S session.ctx --policy-session +-tpm2 policycountertimer -S session.ctx resets=0 ++call_policy_countertimer -S session.ctx resets=0 + tpm2 flushcontext session.ctx + + # +@@ -81,7 +100,7 @@ tpm2 flushcontext session.ctx + # + tpm2 clear + tpm2 startauthsession -S session.ctx --policy-session +-tpm2 policycountertimer -S session.ctx restarts=0 ++call_policy_countertimer -S session.ctx restarts=0 + tpm2 flushcontext session.ctx + + exit 0 +diff --git a/test/integration/tests/abrmd_policynv.sh b/test/integration/tests/abrmd_policynv.sh +index b75cabb8..220edec0 100644 +--- a/test/integration/tests/abrmd_policynv.sh ++++ b/test/integration/tests/abrmd_policynv.sh +@@ -36,10 +36,34 @@ evaluate_failing_test_case() { + } + + evaluate_passing_test_case() { +- tpm2 startauthsession -S session.ctx --policy-session +- echo $operandB | xxd -r -p | \ +- tpm2 policynv -S session.ctx -i- -P nvpass $nv_test_index $1 +- tpm2 flushcontext session.ctx ++ tpm2 startauthsession -S session.ctx --policy-session ++ if [[ ${1:0:1} == "s" ]]; then ++ echo "Test sign: $1 $operandA $operandB" ++ # check whether sign compare fails with 0x126 ++ trap - ERR ++ output=$(echo $operandB | xxd -r -p | \ ++ tpm2 policynv -S session.ctx -i- -P nvpass $nv_test_index $1 2>&1) ++ result=$? ++ if [ $result != 0 ] && echo $output | grep "ErrorCode.*0126" > /dev/null ++ then ++ echo "This test failed due to a TPM bug regarding signed comparison as described" ++ echo "in TCG's Errata for TCG Trusted Platform Module Library Revision 1.59 Version 1.4," ++ echo "Section 2.5 TPM_EO – two’s complement" ++ tpm2 flushcontext session.ctx ++ skip_test ++ else ++ if [ $result != 0 ]; then ++ tpm2 flushcontext session.ctx ++ exit 1 ++ fi ++ fi ++ tpm2 flushcontext session.ctx ++ trap onerror ERR ++ else ++ echo $operandB | xxd -r -p | \ ++ tpm2 policynv -S session.ctx -i- -P nvpass $nv_test_index $1 ++ tpm2 flushcontext session.ctx ++ fi + } + + trap cleanup EXIT +@@ -70,40 +94,20 @@ evaluate_passing_test_case eq + operandB=0x80 + evaluate_passing_test_case neq + +-# Perform comparison operation "sgt" +-operandB=0x82 +-evaluate_passing_test_case sgt +- + # Perform comparison operation "ugt" + operandB=0x80 + evaluate_passing_test_case ugt + +-# Perform comparison operation "slt" +-operandB=0x80 +-evaluate_passing_test_case slt +- + # Perform comparison operation "ult" + operandB=0x82 + evaluate_passing_test_case ult + +-# Perform comparison operation "sge" +-operandB=0x82 +-evaluate_passing_test_case sge +-operandB=0x81 +-evaluate_passing_test_case sge +- + # Perform comparison operation "uge" + operandB=0x80 + evaluate_passing_test_case uge + operandB=0x81 + evaluate_passing_test_case uge + +-# Perform comparison operation "sle" +-operandB=0x80 +-evaluate_passing_test_case sle +-operandB=0x81 +-evaluate_passing_test_case sle +- + # Perform comparison operation "ule" + operandB=0x82 + evaluate_passing_test_case ule +@@ -118,4 +122,27 @@ evaluate_passing_test_case bs + operandB=0x7E + evaluate_passing_test_case bc + ++operandA=0xfe # -1 ++echo $operandA | xxd -r -p | tpm2 nvwrite -P nvpass -i- $nv_test_index ++ ++# Perform comparison operation "sgt" ++operandB=0xfd # -2 ++evaluate_passing_test_case sgt ++ ++# Perform comparison operation "slt" ++operandB=0xff # 0 ++evaluate_passing_test_case slt ++ ++# Perform comparison operation "sle" ++operandB=0xff #0 ++evaluate_passing_test_case sle ++operandB=0xfe # -1 ++evaluate_passing_test_case sle ++ ++# Perform comparison operation "sge" ++operandB=0xfd # -2 ++evaluate_passing_test_case sge ++operandB=0xfe # -1 ++evaluate_passing_test_case sge ++ + exit 0 +-- +2.40.1 + diff --git a/SOURCES/0016-tpm2_eventlog.c-Fix-pcr-extension-for-EV_NO_ACTION.patch b/SOURCES/0016-tpm2_eventlog.c-Fix-pcr-extension-for-EV_NO_ACTION.patch new file mode 100644 index 0000000..857eb07 --- /dev/null +++ b/SOURCES/0016-tpm2_eventlog.c-Fix-pcr-extension-for-EV_NO_ACTION.patch @@ -0,0 +1,159 @@ +From 2f6a737efddce480803c02a5e3b65ce739c6acf2 Mon Sep 17 00:00:00 2001 +From: Juergen Repp +Date: Tue, 28 Mar 2023 17:29:36 +0200 +Subject: [PATCH 16/17] tpm2_eventlog.c Fix pcr extension for EV_NO_ACTION + +EV_NO_ACTION events should not be extended to PCR registers. +Fixes: #3224 + +Signed-off-by: Juergen Repp +--- + lib/tpm2_eventlog.c | 14 +++++++++----- + lib/tpm2_eventlog.h | 2 +- + test/unit/test_tpm2_eventlog.c | 15 ++++++++------- + 3 files changed, 18 insertions(+), 13 deletions(-) + +diff --git a/lib/tpm2_eventlog.c b/lib/tpm2_eventlog.c +index 1b59eeeb..e2e27f02 100644 +--- a/lib/tpm2_eventlog.c ++++ b/lib/tpm2_eventlog.c +@@ -30,7 +30,8 @@ bool digest2_accumulator_callback(TCG_DIGEST2 const *digest, size_t size, + * hold the digest. The size of the digest is passed to the callback in the + * 'size' parameter. + */ +-bool foreach_digest2(tpm2_eventlog_context *ctx, unsigned pcr_index, TCG_DIGEST2 const *digest, size_t count, size_t size) { ++bool foreach_digest2(tpm2_eventlog_context *ctx, UINT32 eventType, unsigned pcr_index, ++ TCG_DIGEST2 const *digest, size_t count, size_t size) { + + if (digest == NULL) { + LOG_ERR("digest cannot be NULL"); +@@ -80,7 +81,8 @@ bool foreach_digest2(tpm2_eventlog_context *ctx, unsigned pcr_index, TCG_DIGEST2 + LOG_WARN("PCR%d algorithm %d unsupported", pcr_index, alg); + } + +- if (pcr && !tpm2_openssl_pcr_extend(alg, pcr, digest->Digest, alg_size)) { ++ if (eventType != EV_NO_ACTION && pcr && ++ !tpm2_openssl_pcr_extend(alg, pcr, digest->Digest, alg_size)) { + LOG_ERR("PCR%d extend failed", pcr_index); + return false; + } +@@ -179,7 +181,8 @@ bool parse_event2(TCG_EVENT_HEADER2 const *eventhdr, size_t buf_size, + .data = digests_size, + .digest2_cb = digest2_accumulator_callback, + }; +- ret = foreach_digest2(&ctx, eventhdr->PCRIndex, ++ ret = foreach_digest2(&ctx, eventhdr->EventType, ++ eventhdr->PCRIndex, + eventhdr->Digests, eventhdr->DigestCount, + buf_size - sizeof(*eventhdr)); + if (ret != true) { +@@ -216,7 +219,7 @@ bool parse_sha1_log_event(tpm2_eventlog_context *ctx, TCG_EVENT const *event, si + *event_size = sizeof(*event); + + pcr = ctx->sha1_pcrs[ event->pcrIndex]; +- if (pcr) { ++ if (event->eventType != EV_NO_ACTION && pcr) { + tpm2_openssl_pcr_extend(TPM2_ALG_SHA1, pcr, &event->digest[0], 20); + ctx->sha1_used |= (1 << event->pcrIndex); + } +@@ -451,7 +454,8 @@ bool foreach_event2(tpm2_eventlog_context *ctx, TCG_EVENT_HEADER2 const *eventhd + } + + /* digest callback foreach digest */ +- ret = foreach_digest2(ctx, eventhdr->PCRIndex, eventhdr->Digests, eventhdr->DigestCount, digests_size); ++ ret = foreach_digest2(ctx, eventhdr->EventType, eventhdr->PCRIndex, ++ eventhdr->Digests, eventhdr->DigestCount, digests_size); + if (ret != true) { + return false; + } +diff --git a/lib/tpm2_eventlog.h b/lib/tpm2_eventlog.h +index 2a91ed60..f141e806 100644 +--- a/lib/tpm2_eventlog.h ++++ b/lib/tpm2_eventlog.h +@@ -44,7 +44,7 @@ bool digest2_accumulator_callback(TCG_DIGEST2 const *digest, size_t size, + void *data); + + bool parse_event2body(TCG_EVENT2 const *event, UINT32 type); +-bool foreach_digest2(tpm2_eventlog_context *ctx, unsigned pcr_index, ++bool foreach_digest2(tpm2_eventlog_context *ctx, UINT32 eventType, unsigned pcr_index, + TCG_DIGEST2 const *event_hdr, size_t count, size_t size); + bool parse_event2(TCG_EVENT_HEADER2 const *eventhdr, size_t buf_size, + size_t *event_size, size_t *digests_size); +diff --git a/test/unit/test_tpm2_eventlog.c b/test/unit/test_tpm2_eventlog.c +index ebf50e80..e48404d8 100644 +--- a/test/unit/test_tpm2_eventlog.c ++++ b/test/unit/test_tpm2_eventlog.c +@@ -27,7 +27,7 @@ static void test_foreach_digest2_null(void **state){ + (void)state; + tpm2_eventlog_context ctx = {0}; + +- assert_false(foreach_digest2(&ctx, 0, NULL, 0, sizeof(TCG_DIGEST2))); ++ assert_false(foreach_digest2(&ctx, 0, 0, NULL, 0, sizeof(TCG_DIGEST2))); + } + static void test_foreach_digest2_size(void **state) { + +@@ -36,7 +36,7 @@ static void test_foreach_digest2_size(void **state) { + TCG_DIGEST2 *digest = (TCG_DIGEST2*)buf; + tpm2_eventlog_context ctx = { .digest2_cb = foreach_digest2_test_callback }; + +- assert_false(foreach_digest2(&ctx, 0, digest, 1, sizeof(TCG_DIGEST2) - 1)); ++ assert_false(foreach_digest2(&ctx, 0, 0, digest, 1, sizeof(TCG_DIGEST2) - 1)); + } + static void test_foreach_digest2(void **state) { + +@@ -47,7 +47,7 @@ static void test_foreach_digest2(void **state) { + will_return(foreach_digest2_test_callback, true); + + tpm2_eventlog_context ctx = { .digest2_cb = foreach_digest2_test_callback }; +- assert_true(foreach_digest2(&ctx, 0, digest, 1, TCG_DIGEST2_SHA1_SIZE)); ++ assert_true(foreach_digest2(&ctx, 0, 0, digest, 1, TCG_DIGEST2_SHA1_SIZE)); + } + static void test_foreach_digest2_cbnull(void **state){ + +@@ -56,7 +56,7 @@ static void test_foreach_digest2_cbnull(void **state){ + TCG_DIGEST2* digest = (TCG_DIGEST2*)buf; + + tpm2_eventlog_context ctx = {0}; +- assert_true(foreach_digest2(&ctx, 0, digest, 1, TCG_DIGEST2_SHA1_SIZE)); ++ assert_true(foreach_digest2(&ctx, 0, 0, digest, 1, TCG_DIGEST2_SHA1_SIZE)); + } + static void test_sha1(void **state){ + +@@ -73,7 +73,7 @@ static void test_sha1(void **state){ + memcpy(digest->Digest, "the magic words are:", TPM2_SHA1_DIGEST_SIZE); + + tpm2_eventlog_context ctx = {0}; +- assert_true(foreach_digest2(&ctx, pcr_index, digest, 1, TCG_DIGEST2_SHA1_SIZE)); ++ assert_true(foreach_digest2(&ctx, 0, pcr_index, digest, 1, TCG_DIGEST2_SHA1_SIZE)); + assert_memory_equal(ctx.sha1_pcrs[pcr_index], sha1sum, sizeof(sha1sum)); + } + static void test_sha256(void **state){ +@@ -93,7 +93,7 @@ static void test_sha256(void **state){ + memcpy(digest->Digest, "The Magic Words are Squeamish Ossifrage, for RSA-129 (from 1977)", TPM2_SHA256_DIGEST_SIZE); + + tpm2_eventlog_context ctx = {0}; +- assert_true(foreach_digest2(&ctx, pcr_index, digest, 1, TCG_DIGEST2_SHA256_SIZE)); ++ assert_true(foreach_digest2(&ctx, 0, pcr_index, digest, 1, TCG_DIGEST2_SHA256_SIZE)); + assert_memory_equal(ctx.sha256_pcrs[pcr_index], sha256sum, sizeof(sha256sum)); + } + static void test_foreach_digest2_cbfail(void **state){ +@@ -105,7 +105,7 @@ static void test_foreach_digest2_cbfail(void **state){ + will_return(foreach_digest2_test_callback, false); + + tpm2_eventlog_context ctx = { .digest2_cb = foreach_digest2_test_callback }; +- assert_false(foreach_digest2(&ctx, 0, digest, 1, TCG_DIGEST2_SHA1_SIZE)); ++ assert_false(foreach_digest2(&ctx, 0, 0, digest, 1, TCG_DIGEST2_SHA1_SIZE)); + } + static void test_digest2_accumulator_callback(void **state) { + +@@ -292,6 +292,7 @@ static void test_foreach_event2_parse_event2body_fail(void **state){ + + eventhdr->DigestCount = 1; + eventhdr->EventType = EV_EFI_VARIABLE_BOOT; ++ eventhdr->PCRIndex = 0; + digest->AlgorithmId = TPM2_ALG_SHA1; + event->EventSize = 1; + +-- +2.40.1 + diff --git a/SOURCES/0017-kdfa.c-Fix-problem-with-FORTIFY_SOURCE-on-Fedora.patch b/SOURCES/0017-kdfa.c-Fix-problem-with-FORTIFY_SOURCE-on-Fedora.patch new file mode 100644 index 0000000..ae7b17e --- /dev/null +++ b/SOURCES/0017-kdfa.c-Fix-problem-with-FORTIFY_SOURCE-on-Fedora.patch @@ -0,0 +1,52 @@ +From 72b6a5497df8757987dfedd6263346154adb921e Mon Sep 17 00:00:00 2001 +From: Juergen Repp +Date: Mon, 6 Mar 2023 12:16:05 +0100 +Subject: [PATCH 17/17] kdfa.c Fix problem with FORTIFY_SOURCE on Fedora + +The original kdfa implementation did produce an error caused by the flags +-flto -_FORTIFY_SOURCE=3 on Fedora rawhide. +This error can be avoided by switching off the optimization with pragma. +Fixes: #3210. + +Signed-off-by: Juergen Repp +--- + lib/tpm2_kdfa.c | 19 +++++++++++++++++++ + 1 file changed, 19 insertions(+) + +diff --git a/lib/tpm2_kdfa.c b/lib/tpm2_kdfa.c +index 5eb8d558..e97c06f6 100644 +--- a/lib/tpm2_kdfa.c ++++ b/lib/tpm2_kdfa.c +@@ -13,6 +13,15 @@ + #include "tpm2_kdfa.h" + #include "tpm2_openssl.h" + ++/* ++ * Disable optimization because of an error in FORTIFY_SOURCE ++ */ ++ ++#ifdef _FORTIFY_SOURCE ++#pragma GCC push_options ++#pragma GCC optimize ("O0") ++#endif ++ + TSS2_RC tpm2_kdfa(TPMI_ALG_HASH hash_alg, TPM2B *key, char *label, + TPM2B *context_u, TPM2B *context_v, UINT16 bits, + TPM2B_MAX_BUFFER *result_key) { +@@ -139,3 +148,13 @@ err: + + return rval; + } ++#ifdef _FORTIFY_SOURCE ++ ++#endif ++ ++#ifdef _FORTIFY_SOURCE ++#pragma GCC pop_options ++#endif ++ ++ ++ +-- +2.40.1 + diff --git a/SOURCES/0019-build-Use-hardcoded-version-variable.patch b/SOURCES/0019-build-Use-hardcoded-version-variable.patch new file mode 100644 index 0000000..85c0976 --- /dev/null +++ b/SOURCES/0019-build-Use-hardcoded-version-variable.patch @@ -0,0 +1,32 @@ +From 395651f059ceb21d56c44cddda05e055caa0fd19 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?=C5=A0t=C4=9Bp=C3=A1n=20Hor=C3=A1=C4=8Dek?= + +Date: Mon, 18 Oct 2021 19:04:54 +0200 +Subject: [PATCH] build: Use hardcoded version variable +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Before this commit the version was generated from git tag/commit hash. +This caused problems with having empty version variable while building +outside of git. Fix this by hardcoding the variable. + +Signed-off-by: Štěpán Horáček +--- + configure.ac | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 9561fa86..2bf3a790 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1,5 +1,4 @@ +-AC_INIT([tpm2-tools], +- [m4_esyscmd_s([git describe --tags --always --dirty])]) ++AC_INIT([tpm2-tools], [5.2]) + AC_CONFIG_MACRO_DIR([m4]) + + AX_IS_RELEASE([dash-version]) +-- +2.31.1 + diff --git a/SOURCES/add_pregenerated_doc.patch b/SOURCES/add_pregenerated_doc.patch new file mode 100644 index 0000000..a5755fb --- /dev/null +++ b/SOURCES/add_pregenerated_doc.patch @@ -0,0 +1,434 @@ +diff --git a/man/man1/tpm2_encodeobject.1 b/man/man1/tpm2_encodeobject.1 +new file mode 100644 +index 00000000..9b616bb0 +--- /dev/null ++++ b/man/man1/tpm2_encodeobject.1 +@@ -0,0 +1,428 @@ ++.\" Automatically generated by Pandoc 2.5 ++.\" ++.TH "tpm2_encodeobject" "1" "" "tpm2\-tools" "General Commands Manual" ++.hy ++.SH NAME ++.PP ++\f[B]tpm2_encodeobject\f[R](1) \- Encode an object into a combined PEM ++format. ++.SH SYNOPSIS ++.PP ++\f[B]tpm2_encodeobject\f[R] [\f[I]OPTIONS\f[R]] ++.SH DESCRIPTION ++.PP ++\f[B]tpm2_encodeobject\f[R](1) \- Encode both the private and public ++portions of an object into a combined PEM format used by ++tpm2\-tss\-engine. ++.PP ++The tool reads private and public portions of an object and encodes it ++into a combined PEM format used by tpm2\-tss\-engine and other ++applications. ++.PP ++\f[B]NOTE\f[R]: Both private and public portions of the tpm key must be ++specified. ++.SH OPTIONS ++.IP \[bu] 2 ++\f[B]\-C\f[R], \f[B]\-\-parent\-context\f[R]=\f[I]OBJECT\f[R]: ++.RS 2 ++.PP ++The parent object. ++.RE ++.IP \[bu] 2 ++\f[B]\-P\f[R], \f[B]\-\-auth\f[R]=\f[I]AUTH\f[R]: ++.RS 2 ++.PP ++The authorization value of the parent object specified by \f[B]\-C\f[R]. ++.RE ++.IP \[bu] 2 ++\f[B]\-u\f[R], \f[B]\-\-public\f[R]=\f[I]FILE\f[R]: ++.RS 2 ++.PP ++A file containing the public portion of the object. ++.RE ++.IP \[bu] 2 ++\f[B]\-r\f[R], \f[B]\-\-private\f[R]=\f[I]FILE\f[R]: ++.RS 2 ++.PP ++A file containing the sensitive portion of the object. ++.RE ++.IP \[bu] 2 ++\f[B]\-p\f[R], \f[B]\-\-key\-auth\f[R]: ++.RS 2 ++.PP ++Indicates if an authorization value is needed for the object specified ++by \f[B]\-r\f[R] and \f[B]\-u\f[R]. ++.RE ++.IP \[bu] 2 ++\f[B]\-o\f[R], \f[B]\-\-output\f[R]=\f[I]FILE\f[R]: ++.RS 2 ++.PP ++The output file path, recording the public portion of the object. ++.RE ++.SS References ++.SH Context Object Format ++.PP ++The type of a context object, whether it is a handle or file name, is ++determined according to the following logic \f[I]in\-order\f[R]: ++.IP \[bu] 2 ++If the argument is a file path, then the file is loaded as a restored ++TPM transient object. ++.IP \[bu] 2 ++If the argument is a \f[I]prefix\f[R] match on one of: ++.RS 2 ++.IP \[bu] 2 ++owner: the owner hierarchy ++.IP \[bu] 2 ++platform: the platform hierarchy ++.IP \[bu] 2 ++endorsement: the endorsement hierarchy ++.IP \[bu] 2 ++lockout: the lockout control persistent object ++.RE ++.IP \[bu] 2 ++If the argument argument can be loaded as a number it will be treat as a ++handle, e.g.\ 0x81010013 and used directly._OBJECT_. ++.SH Authorization Formatting ++.PP ++Authorization for use of an object in TPM2.0 can come in 3 different ++forms: 1. ++Password 2. ++HMAC 3. ++Sessions ++.PP ++\f[B]NOTE:\f[R] \[lq]Authorizations default to the \f[B]EMPTY ++PASSWORD\f[R] when not specified\[rq]. ++.SS Passwords ++.PP ++Passwords are interpreted in the following forms below using prefix ++identifiers. ++.PP ++\f[B]Note\f[R]: By default passwords are assumed to be in the string ++form when they do not have a prefix. ++.SS String ++.PP ++A string password, specified by prefix \[lq]str:\[rq] or it\[cq]s ++absence (raw string without prefix) is not interpreted, and is directly ++used for authorization. ++.SS Examples ++.IP ++.nf ++\f[C] ++foobar ++str:foobar ++\f[R] ++.fi ++.SS Hex\-string ++.PP ++A hex\-string password, specified by prefix \[lq]hex:\[rq] is converted ++from a hexidecimal form into a byte array form, thus allowing passwords ++with non\-printable and/or terminal un\-friendly characters. ++.SS Example ++.IP ++.nf ++\f[C] ++hex:1122334455667788 ++\f[R] ++.fi ++.SS File ++.PP ++A file based password, specified be prefix \[lq]file:\[rq] should be the ++path of a file containing the password to be read by the tool or a ++\[lq]\-\[rq] to use stdin. ++Storing passwords in files prevents information leakage, passwords ++passed as options can be read from the process list or common shell ++history features. ++.SS Examples ++.IP ++.nf ++\f[C] ++# to use stdin and be prompted ++file:\- ++ ++# to use a file from a path ++file:path/to/password/file ++ ++# to echo a password via stdin: ++echo foobar | tpm2_tool \-p file:\- ++ ++# to use a bash here\-string via stdin: ++ ++tpm2_tool \-p file:\- <<< foobar ++\f[R] ++.fi ++.SS Sessions ++.PP ++When using a policy session to authorize the use of an object, prefix ++the option argument with the \f[I]session\f[R] keyword. ++Then indicate a path to a session file that was created with ++tpm2_startauthsession(1). ++Optionally, if the session requires an auth value to be sent with the ++session handle (eg policy password), then append a + and a string as ++described in the \f[B]Passwords\f[R] section. ++.SS Examples ++.PP ++To use a session context file called \f[I]session.ctx\f[R]. ++.IP ++.nf ++\f[C] ++session:session.ctx ++\f[R] ++.fi ++.PP ++To use a session context file called \f[I]session.ctx\f[R] \f[B]AND\f[R] ++send the authvalue mypassword. ++.IP ++.nf ++\f[C] ++session:session.ctx+mypassword ++\f[R] ++.fi ++.PP ++To use a session context file called \f[I]session.ctx\f[R] \f[B]AND\f[R] ++send the \f[I]HEX\f[R] authvalue 0x11223344. ++.IP ++.nf ++\f[C] ++session:session.ctx+hex:11223344 ++\f[R] ++.fi ++.SS PCR Authorizations ++.PP ++You can satisfy a PCR policy using the \[lq]pcr:\[rq] prefix and the PCR ++minilanguage. ++The PCR minilanguage is as follows: ++\f[C]=\f[R] ++.PP ++The PCR spec is documented in in the section \[lq]PCR bank ++specifiers\[rq]. ++.PP ++The \f[C]raw\-pcr\-file\f[R] is an \f[B]optional\f[R] argument that ++contains the output of the raw PCR contents as returned by ++\f[I]tpm2_pcrread(1)\f[R]. ++.PP ++PCR bank specifiers (pcr.md) ++.SS Examples ++.PP ++To satisfy a PCR policy of sha256 on banks 0, 1, 2 and 3 use a specifier ++of: ++.IP ++.nf ++\f[C] ++pcr:sha256:0,1,2,3 ++\f[R] ++.fi ++.PP ++specifying \f[I]AUTH\f[R]. ++.SH COMMON OPTIONS ++.PP ++This collection of options are common to many programs and provide ++information that many users may expect. ++.IP \[bu] 2 ++\f[B]\-h\f[R], \f[B]\-\-help=[man|no\-man]\f[R]: Display the tools ++manpage. ++By default, it attempts to invoke the manpager for the tool, however, on ++failure will output a short tool summary. ++This is the same behavior if the \[lq]man\[rq] option argument is ++specified, however if explicit \[lq]man\[rq] is requested, the tool will ++provide errors from man on stderr. ++If the \[lq]no\-man\[rq] option if specified, or the manpager fails, the ++short options will be output to stdout. ++.RS 2 ++.PP ++To successfully use the manpages feature requires the manpages to be ++installed or on \f[I]MANPATH\f[R], See man(1) for more details. ++.RE ++.IP \[bu] 2 ++\f[B]\-v\f[R], \f[B]\-\-version\f[R]: Display version information for ++this tool, supported tctis and exit. ++.IP \[bu] 2 ++\f[B]\-V\f[R], \f[B]\-\-verbose\f[R]: Increase the information that the ++tool prints to the console during its execution. ++When using this option the file and line number are printed. ++.IP \[bu] 2 ++\f[B]\-Q\f[R], \f[B]\-\-quiet\f[R]: Silence normal tool output to ++stdout. ++.IP \[bu] 2 ++\f[B]\-Z\f[R], \f[B]\-\-enable\-errata\f[R]: Enable the application of ++errata fixups. ++Useful if an errata fixup needs to be applied to commands sent to the ++TPM. ++Defining the environment TPM2TOOLS_ENABLE_ERRATA is equivalent. ++information many users may expect. ++.SH TCTI Configuration ++.PP ++The TCTI or \[lq]Transmission Interface\[rq] is the communication ++mechanism with the TPM. ++TCTIs can be changed for communication with TPMs across different ++mediums. ++.PP ++To control the TCTI, the tools respect: ++.IP "1." 3 ++The command line option \f[B]\-T\f[R] or \f[B]\-\-tcti\f[R] ++.IP "2." 3 ++The environment variable: \f[I]TPM2TOOLS_TCTI\f[R]. ++.PP ++\f[B]Note:\f[R] The command line option always overrides the environment ++variable. ++.PP ++The current known TCTIs are: ++.IP \[bu] 2 ++tabrmd \- The resource manager, called ++tabrmd (https://github.com/tpm2-software/tpm2-abrmd). ++Note that tabrmd and abrmd as a tcti name are synonymous. ++.IP \[bu] 2 ++mssim \- Typically used for communicating to the TPM software simulator. ++.IP \[bu] 2 ++device \- Used when talking directly to a TPM device file. ++.IP \[bu] 2 ++none \- Do not initalize a connection with the TPM. ++Some tools allow for off\-tpm options and thus support not using a TCTI. ++Tools that do not support it will error when attempted to be used ++without a TCTI connection. ++Does not support \f[I]ANY\f[R] options and \f[I]MUST BE\f[R] presented ++as the exact text of \[lq]none\[rq]. ++.PP ++The arguments to either the command line option or the environment ++variable are in the form: ++.PP ++\f[C]:\f[R] ++.PP ++Specifying an empty string for either the \f[C]\f[R] or ++\f[C]\f[R] results in the default being used for ++that portion respectively. ++.SS TCTI Defaults ++.PP ++When a TCTI is not specified, the default TCTI is searched for using ++\f[I]dlopen(3)\f[R] semantics. ++The tools will search for \f[I]tabrmd\f[R], \f[I]device\f[R] and ++\f[I]mssim\f[R] TCTIs \f[B]IN THAT ORDER\f[R] and \f[B]USE THE FIRST ONE ++FOUND\f[R]. ++You can query what TCTI will be chosen as the default by using the ++\f[B]\-v\f[R] option to print the version information. ++The \[lq]default\-tcti\[rq] key\-value pair will indicate which of the ++aforementioned TCTIs is the default. ++.SS Custom TCTIs ++.PP ++Any TCTI that implements the dynamic TCTI interface can be loaded. ++The tools internally use \f[I]dlopen(3)\f[R], and the raw ++\f[I]tcti\-name\f[R] value is used for the lookup. ++Thus, this could be a path to the shared library, or a library name as ++understood by \f[I]dlopen(3)\f[R] semantics. ++.SH TCTI OPTIONS ++.PP ++This collection of options are used to configure the various known TCTI ++modules available: ++.IP \[bu] 2 ++\f[B]device\f[R]: For the device TCTI, the TPM character device file for ++use by the device TCTI can be specified. ++The default is \f[I]/dev/tpm0\f[R]. ++.RS 2 ++.PP ++Example: \f[B]\-T device:/dev/tpm0\f[R] or \f[B]export ++\f[BI]TPM2TOOLS_TCTI\f[B]=\[lq]device:/dev/tpm0\[rq]\f[R] ++.RE ++.IP \[bu] 2 ++\f[B]mssim\f[R]: For the mssim TCTI, the domain name or IP address and ++port number used by the simulator can be specified. ++The default are 127.0.0.1 and 2321. ++.RS 2 ++.PP ++Example: \f[B]\-T mssim:host=localhost,port=2321\f[R] or \f[B]export ++\f[BI]TPM2TOOLS_TCTI\f[B]=\[lq]mssim:host=localhost,port=2321\[rq]\f[R] ++.RE ++.IP \[bu] 2 ++\f[B]abrmd\f[R]: For the abrmd TCTI, the configuration string format is ++a series of simple key value pairs separated by a `,' character. ++Each key and value string are separated by a `=' character. ++.RS 2 ++.IP \[bu] 2 ++TCTI abrmd supports two keys: ++.RS 2 ++.IP "1." 3 ++`bus_name' : The name of the tabrmd service on the bus (a string). ++.IP "2." 3 ++`bus_type' : The type of the dbus instance (a string) limited to ++`session' and `system'. ++.RE ++.PP ++Specify the tabrmd tcti name and a config string of ++\f[C]bus_name=com.example.FooBar\f[R]: ++.IP ++.nf ++\f[C] ++\[rs]\-\-tcti=tabrmd:bus_name=com.example.FooBar ++\f[R] ++.fi ++.PP ++Specify the default (abrmd) tcti and a config string of ++\f[C]bus_type=session\f[R]: ++.IP ++.nf ++\f[C] ++\[rs]\-\-tcti:bus_type=session ++\f[R] ++.fi ++.PP ++\f[B]NOTE\f[R]: abrmd and tabrmd are synonymous. ++the various known TCTI modules. ++.RE ++.SH EXAMPLES ++.SS Setup ++.PP ++To load an object you first must create an object under a primary ++object. ++So the first step is to create the primary object. ++.IP ++.nf ++\f[C] ++tpm2_createprimary \-c primary.ctx ++\f[R] ++.fi ++.PP ++Step 2 is to create an object under the primary object. ++.IP ++.nf ++\f[C] ++tpm2_create \-C primary.ctx \-u key.pub \-r key.priv \-f pem \-o pub.pem ++\f[R] ++.fi ++.PP ++This creates the private and public portions of the TPM object. ++With these object portions, it is now possible to load that object into ++the TPM for subsequent use. ++.SS Encoding an Object into a combined PEM format ++.PP ++The final step, is encoding the public and private portions of the ++object into a PEM format. ++.IP ++.nf ++\f[C] ++tpm2_encodeobject \-C primary.ctx \-u key.pub \-r key.priv \-o priv.pem ++\f[R] ++.fi ++.PP ++The generated \f[C]priv.pem\f[R] can be used together with ++\f[C]pub.pem\f[R] created in the step 2 of Setup section. ++.SH Returns ++.PP ++Tools can return any of the following codes: ++.IP \[bu] 2 ++0 \- Success. ++.IP \[bu] 2 ++1 \- General non\-specific error. ++.IP \[bu] 2 ++2 \- Options handling error. ++.IP \[bu] 2 ++3 \- Authentication error. ++.IP \[bu] 2 ++4 \- TCTI related error. ++.IP \[bu] 2 ++5 \- Non supported scheme. ++Applicable to tpm2_testparams. ++.SH BUGS ++.PP ++Github Issues (https://github.com/tpm2-software/tpm2-tools/issues) ++.SH HELP ++.PP ++See the Mailing ++List (https://lists.linuxfoundation.org/mailman/listinfo/tpm2) diff --git a/SOURCES/test-fixup.patch b/SOURCES/test-fixup.patch new file mode 100644 index 0000000..9610d4c --- /dev/null +++ b/SOURCES/test-fixup.patch @@ -0,0 +1,12 @@ +diff -ur tpm2-tools-5.2/test/integration/helpers.sh tpm2-tools-5.2-new/test/integration/helpers.sh +--- tpm2-tools-5.2/test/integration/helpers.sh 2021-08-23 09:47:20.000000000 -0700 ++++ tpm2-tools-5.2-new/test/integration/helpers.sh 2022-05-31 16:06:07.939025537 -0700 +@@ -409,7 +409,7 @@ + echo "Starting tpm2-abrmd" + # Start tpm2-abrmd + start_abrmd || exit 1 +- run_startup=false ++ # run_startup=false + else + echo "not starting abrmd" + fi diff --git a/SPECS/tpm2-tools.spec b/SPECS/tpm2-tools.spec new file mode 100644 index 0000000..46abe13 --- /dev/null +++ b/SPECS/tpm2-tools.spec @@ -0,0 +1,327 @@ +#global candidate rc2 + +Name: tpm2-tools +Version: 5.2 +Release: 3%{?candidate:.%{candidate}}%{?dist} +Summary: A bunch of TPM testing toolS build upon tpm2-tss + +License: BSD +URL: https://github.com/tpm2-software/tpm2-tools +Source0: https://github.com/tpm2-software/tpm2-tools/releases/download/%{version}%{?candidate:-%{candidate}}/%{name}-%{version}%{?candidate:-%{candidate}}.tar.gz +Patch0: 0019-build-Use-hardcoded-version-variable.patch +Patch1: test-fixup.patch +Patch2: 0001-testparms-fix-condition-for-negative-test.patch +Patch3: 0001-lib-tpm2_eventlog_yaml-use-char16_t-for-UEFI-charact.patch +Patch4: 0002-Patch-set-for-handling-of-new-event-types-in-tpm2_ev.patch +Patch5: 0003-Code-clarity-fix-for-calculation-of-data-member-addr.patch +Patch6: 0004-tpm2_eventlog-clean-up-some-magic-numbers.patch +Patch7: 0005-tpm2_eventlog_yaml-fix-malformed-YAML-for-EV_IPL-dat.patch +Patch8: 0006-test-track-expected-YAML-output-for-eventlog.patch +Patch9: 0007-tpm2_eventlog_yaml-fix-parsing-for-MokListTrusted.patch +Patch10: 0008-tests-add-eventlog-for-parsing-MokListTrusted.patch +Patch11: 0009-tpm2_eventlog_yaml-use-defines-for-Unicode-variables.patch +Patch101: 0001-Fix-nv_readpublic.patch +Patch102: 0002-tpm2_encodeobject-New-tool-to-encode-TPM2-object.patch +Patch103: 0003-tools-tpm2_evictconrol-fix-for-call-to-Esys_TR_Close.patch +Patch104: 0004-Fix-argument-parsing-in-tpm2_policylocality.patch +Patch105: 0005-tools-tpm2_tool.c-Fix-an-issue-where-LOG_WARN-is-alw.patch +Patch106: 0006-import-fix-bug-on-using-scheme.patch +Patch107: 0007-tpm2_policyor-fix-unallocated-policy-list.patch +Patch108: 0008-lib-tpm2_alg_util.c-Fix-potential-null-pointer-deref.patch +Patch109: 0009-tss2_provision-fix-usage-of-L-parameter.patch +Patch110: 0010-tpm2_encodeobject-fix-formatting.patch +Patch111: 0011-tpm2_encodeobject-fix-auth-boolean-flag.patch +Patch112: 0012-bugfix-fix-convert-sm2-public-key-in-openssl3.patch +Patch113: 0013-readpublic-fix-reading-and-writing-serialized-trs.patch +Patch114: 0014-fix-wrong-function-name-of-Esys_Load.patch +Patch115: 0015-tpm-errata-switch-to-twos-complement.patch +Patch116: 0016-tpm2_eventlog.c-Fix-pcr-extension-for-EV_NO_ACTION.patch +Patch117: 0017-kdfa.c-Fix-problem-with-FORTIFY_SOURCE-on-Fedora.patch +Patch118: add_pregenerated_doc.patch + +BuildRequires: git +BuildRequires: make +BuildRequires: gcc-c++ +BuildRequires: libtool +BuildRequires: autoconf-archive +BuildRequires: pkgconfig(cmocka) +BuildRequires: pkgconfig(libcurl) +BuildRequires: pkgconfig(openssl) +# tpm2-tss-devel provides tss2-mu/sys/esys package config +BuildRequires: pkgconfig(tss2-mu) +BuildRequires: pkgconfig(tss2-sys) +BuildRequires: pkgconfig(tss2-esys) +BuildRequires: pkgconfig(uuid) + +# tpm2-tools is heavily depending on TPM2.0-TSS project, matched tss is required +Requires: tpm2-tss%{?_isa} >= 2.3.1 + +%description +tpm2-tools is a batch of tools for tpm2.0. It is based on tpm2-tss. + +%prep +%autosetup -S git -p1 -n %{name}-%{version}%{?candidate:-%{candidate}} + +%build +autoreconf -i +# LTO exposes a latent uninitialized variable "value" in the function # "nt". +# This has been reported to the maintainer (Yunying), but they have not +# responded and I am not comfortable enough with the code to know if a trivial +# initialization to zero is appropriate/safe. So LTO is disabled for now. +%define _lto_cflags %{nil} +%configure --prefix=/usr --disable-static --disable-silent-rules CFLAGS="%{optflags} -Wno-error=deprecated-declarations" +%make_build + +%install +%make_install + +%files +%license doc/LICENSE +%doc doc/README.md doc/CHANGELOG.md +%{_bindir}/tpm2 +%{_bindir}/tpm2_* +%{_bindir}/tss2 +%{_bindir}/tss2_* +%{_datadir}/bash-completion/completions/tpm2* +%{_datadir}/bash-completion/completions/tss2* +%{_mandir}/man1/tpm2_*.1.gz +%{_mandir}/man1/tpm2.1.gz +%{_mandir}/man1/tss2_*.1.gz + +%changelog +* Fri Sep 22 2023 MSVSphere Packaging Team - 5.2-3 +- Rebuilt for MSVSphere 9.3 beta + +* Wed May 24 2023 Štěpán Horáček - 5.2-3 +- Backport fixes. +- Add tpm2_encodeobject tool. + Resolves: rhbz#2160304 + Resolves: rhbz#2047342 + +* Wed Oct 19 2022 Štěpán Horáček - 5.2-2 +- Fix eventlog output. + Resolves: rhbz#2136215 + +* Tue May 31 2022 Jerry Snitselaar - 5.2-1 +- Rebase to 5.2 release. +Resolves: rhbz#2090748 + +* Mon Oct 25 2021 Štěpán Horáček - 5.0-10 +- Fix the version not being reported + Resolves: rhbz#2015941 + +* Fri Oct 1 2021 Štěpán Horáček - 5.0-9 +- Fix a segfault on ppc64le and add support for OpenSSL 3 + Resolves: rhbz#1989617 + +* Tue Aug 10 2021 Mohan Boddu - 5.0-8 +- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags + Related: rhbz#1991688 + +* Mon Jun 28 2021 Jerry Snitselaar - 5.0-7 +- Fix for CVE-2021-3565 +Resolves: rhbz#1965982 + +* Wed Jun 16 2021 Mohan Boddu - 5.0-6 +- Rebuilt for RHEL 9 BETA for openssl 3.0 + Related: rhbz#1971065 + +* Mon May 24 2021 Jerry Snitselaar - 5.0-5 +- Remove pandoc dependency. Related: rhbz#1943528 + +* Wed May 19 2021 Jerry Snitselaar - 5.0-4 +- Work around for openssl 3.0 update. Related: rhbz#1958029 + +* Fri Apr 16 2021 Mohan Boddu - 5.0-3 +- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937 + +* Wed Jan 27 2021 Fedora Release Engineering - 5.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Mon Nov 23 2020 Peter Robinson - 5.0-1 +- Update tp tpm2-tools 5.0 + +* Sat Aug 29 2020 Peter Robinson - 4.3.0-1 +- Update to 4.3.0 + +* Mon Aug 10 2020 Peter Robinson - 4.2.1-4 +- Rebuild for tpm2-tss 3.0 + +* Wed Jul 29 2020 Fedora Release Engineering - 4.2.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Tue Jun 30 2020 Jeff Law - 4.2.1-2 +- Disable LTO due to latent uninitialized variable exposed by LTO + +* Wed May 27 2020 Peter Robinson - 4.2.1-1 +- Update to 4.2.1 + +* Tue Apr 14 2020 Peter Robinson - 4.2-1 +- Update to 4.2 + +* Fri Jan 31 2020 Fedora Release Engineering - 4.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Thu Nov 28 2019 Yunying Sun - 4.1-1 +- Update to 4.1 release + +* Tue Oct 29 2019 Yunying Sun - 4.0.1-1 +- Update to 4.0.1 release + +* Tue Sep 10 2019 Peter Robinson 4.0-1 +- Update to 4.0 + +* Fri Sep 6 2019 Javier Martinez Canillas 4.0-0.4-rc2 +- Use a release tarball instead of a source code tarball + +* Fri Sep 6 2019 Peter Robinson 4.0-0.3-rc2 +- Update to 4.0 RC2 + +* Tue Aug 27 2019 Peter Robinson 4.0-0.2-rc1 +- Update to 4.0 RC1 + +* Tue Aug 20 2019 Peter Robinson 4.0-0.1-rc0 +- Update to 4.0 RC0 + +* Thu Aug 1 2019 Peter Robinson 3.2.0-3 +- Fix for crash for max PCRs available + +* Sat Jul 27 2019 Fedora Release Engineering - 3.2.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Fri Jun 21 2019 Yunying Sun - 3.2.0-1 +- Update to 3.2.0 release +- Removed patches since all have been included in 3.2.0 release + +* Fri May 10 2019 Javier Martinez Canillas - 3.1.4-2 +- Allow tpm2_makecredential to run without a TPM (jetwhiz) +- Add tpm2_pcrreset and tpm2_checkquote tools (jetwhiz) + +* Fri Mar 15 2019 Yunying Sun - 3.1.4-1 +- Update to 3.1.4 release +- Removed the 4 patches since all have been included in 3.1.4 release + +* Sun Feb 03 2019 Fedora Release Engineering - 3.1.3-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Mon Jan 7 2019 Javier Martinez Canillas - 3.1.3-3 +- Fix broken -T option when passing additional arguments + +* Mon Jan 7 2019 Javier Martinez Canillas - 3.1.3-2 +- Fix broken -T option and a couple of minor fixes +- Add pandoc BuildRequires + +* Wed Nov 7 2018 Yunying Sun - 3.1.3-1 +- Update to 3.1.3 release + +* Wed Sep 12 2018 Javier Martinez Canillas - 3.1.2-1 +- Update to 3.1.2 release +- Restore TCTI configuration environment for tools +- Restore tpm2_getcap tool properties output + Resolves: rhbz#1625647 + +* Sat Jul 14 2018 Javier Martinez Canillas - 3.1.1-3 +- Revert backward incompatible change that removes default object attributes + +* Sat Jul 14 2018 Fedora Release Engineering - 3.1.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Thu Jul 12 2018 Yunying Sun - 3.1.1-1 +- Update to 3.1.1 release + +* Thu Jul 5 2018 Yunying Sun - 3.1.0-1 +- Update Requires version of tpm2-tss to 2.0.0 +- Remove BuildRequires for tcti-abrmd since it is optional +- Remove BuildRequires for tcti-{device,mssim} as it is now dynamically loaded +- Update to 3.1.0 release + +* Mon Apr 30 2018 Javier Martinez Canillas - 3.0.4-1 +- Update URLs to point to the new project location +- Update to 3.0.4 release + +* Wed Feb 21 2018 Javier Martinez Canillas - 3.0.3-3 +- Remove ExclusiveArch: x86_64 directive + +* Fri Feb 09 2018 Fedora Release Engineering - 3.0.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Tue Jan 16 2018 Javier Martinez Canillas - 3.0.3-1 +- Update to 3.0.3 release + +* Mon Dec 18 2017 Javier Martinez Canillas - 3.0.2-1 +- Update to 3.0.2 release + +* Tue Dec 12 2017 Javier Martinez Canillas - 3.0.1-1 +- Update to 3.0.1 release (RHBZ#1512743) +- Download the generated tarball provided instead of the source code tarball + +* Fri Dec 08 2017 Javier Martinez Canillas - 3.0-1 +- Update to 3.0 release + +* Wed Nov 29 2017 Javier Martinez Canillas - 3.0-0.1.rc1 +- Update to 3.0 release candidate 1 +- Update URLs to point to the new project location +- Make the package to obsolete version 2.1.1 + +* Wed Nov 01 2017 Javier Martinez Canillas - 2.1.1-1 +- Rename remaining tpm2.0-tools prefixes to tpm2-tools +- Remove global pkg_prefix since now the upstream repo and package names match +- Remove downstream patches since now these are in the latest upstream release +- Update to 2.1.1 release (RHBZ#1504438) + +* Thu Oct 19 2017 Jerry Snitselaar - 2.1.0-7 +- Clean up potential memleak (RHBZ#1503959) + +* Thu Oct 05 2017 Javier Martinez Canillas - 2.1.0-6 +- Add tpm2-abrmd-devel BuildRequires so tools have abrmd support (RHBZ#1498909) + +* Fri Aug 18 2017 Javier Martinez Canillas - 2.1.0-5 +- Remove unneeded source tarballs (RHBZ#1482830) + +* Tue Aug 15 2017 Sun Yunying - 2.1.0-4 +- Add patch to fix build error when openssl-devel is installed(RHBZ#1481236) + +* Thu Aug 03 2017 Fedora Release Engineering - 2.1.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Mon Jul 31 2017 Sun Yunying - 2.1.0-2 +- Add patch to fix gcc7 complaining about implicit-fallthrough cases + +* Fri Jul 28 2017 Sun Yunying - 2.1.0-1 +- Update to latest upstream release 2.1.0 + +* Fri Jul 28 2017 Sun Yunying - 1.1.0-9 +- Update Requires dependency so that tpm2-tss update won't break tpm2-tools + +* Thu Jul 27 2017 Fedora Release Engineering - 1.1.0-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Wed May 10 2017 Sun Yunying - 1.1.0-7 +- Only update release version to make fedpkg build works for f26 + +* Wed Mar 1 2017 Sun Yunying - 1.1.0-6 +- Update tpm2-tss version to 1.0-3 to fix broken dependency on f26 + +* Sat Feb 11 2017 Fedora Release Engineering - 1.1.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Fri Jan 20 2017 Sun Yunying - 1.1.0-4 +- Dependency check failed for Requires again, here to fix this +- Update release version and changelog + +* Thu Jan 19 2017 Sun Yunying - 1.1.0-3 +- Change spec file permission to 644 to avoid rpmlint complain +- Update Requires to fix dependency check error reported in Bodhi +- Remove tpm2-tss-devel version in BuildRequires comment +- Update release version and changelog + +* Wed Dec 21 2016 Sun Yunying - 1.1.0-2 +- Remove pkg_version to avoid dupliate use of version +- Remove redundant BuildRequires for autoconf/automake/pkgconfig +- Add comments for BuildRequires of sapi/tcti-device/tcti-socket +- Use ExclusiveArch instead of ExcludeArch +- Requires tpm2-tss version updated to 1.0-2 +- Updated release version and changelog + +* Fri Dec 2 2016 Sun Yunying - 1.1.0-1 +- Initial version of the package