From e02af1e06bb7e1c8b0f5094850fb8ea934f259a5 Mon Sep 17 00:00:00 2001 From: Stefan Berger Date: Tue, 19 Mar 2024 19:59:47 -0400 Subject: [PATCH] tpm2: Use ANY_OBJECT_Marshal for OBJECTs is StateFormatLevel >=2 For profiles that work for libtpms v0.10 or later, so for StatFormatLevel >=2, use ANY_MARSHAL_Object to write OBJECTS into the NVRAM. This way OBJECTS are written in a more compact format. Signed-off-by: Stefan Berger --- src/tpm2/NVDynamic.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/tpm2/NVDynamic.c b/src/tpm2/NVDynamic.c index 334ff2d9..a16ed0b5 100644 --- a/src/tpm2/NVDynamic.c +++ b/src/tpm2/NVDynamic.c @@ -589,7 +589,8 @@ void NvReadNvIndexInfo(NV_REF ref, // IN: points to NV where index is loc // Convert an OBJECT into a buffer to store in NVRAM // libtpms added begin UINT32 NvObjectToBuffer(OBJECT* object, BYTE* buffer, UINT32 size) { - BOOL marshalAnyObject = false; + // always use ANY_OBJECT_Marshal if StateFormatLevel >=2 (v0.10) + BOOL marshalAnyObject = g_RuntimeProfile.stateFormatLevel >= 2; pAssert(size >= MAX_MARSHALLED_OBJECT_SIZE);