From ef4af2f0de753fae4ceba123aed199a462ebe8dc Mon Sep 17 00:00:00 2001 From: Stefan Berger Date: Wed, 24 Jul 2024 11:40:23 -0400 Subject: [PATCH] tpm2: Move code to determine OBJECT hierarchy by its attribute flags Move code that determines an OBJECT's hierarchy by its attribute flags into BackwardsCompatibilityObject.c since it will soon only serve the purpose of backwards compatibility. Signed-off-by: Stefan Berger --- src/tpm2/BackwardsCompatibilityObject.c | 14 ++++++++++++++ src/tpm2/BackwardsCompatibilityObject.h | 2 ++ src/tpm2/Object.c | 17 +---------------- 3 files changed, 17 insertions(+), 16 deletions(-) diff --git a/src/tpm2/BackwardsCompatibilityObject.c b/src/tpm2/BackwardsCompatibilityObject.c index 63b6319c..411245b0 100644 --- a/src/tpm2/BackwardsCompatibilityObject.c +++ b/src/tpm2/BackwardsCompatibilityObject.c @@ -151,6 +151,20 @@ typedef struct RSA2048_OBJECT MUST_BE(sizeof(RSA2048_OBJECT) == 1896); +TPMI_RH_HIERARCHY ObjectGetHierarchyFromAttributes(OBJECT* object) +{ + if(object->attributes.spsHierarchy) + return TPM_RH_OWNER; + + if(object->attributes.epsHierarchy) + return TPM_RH_ENDORSEMENT; + + if(object->attributes.ppsHierarchy) + return TPM_RH_PLATFORM; + + return TPM_RH_NULL; +} + static void RSA2048_OBJECT_To_OBJECT(OBJECT* dest, const RSA2048_OBJECT* src) { dest->attributes = src->attributes; diff --git a/src/tpm2/BackwardsCompatibilityObject.h b/src/tpm2/BackwardsCompatibilityObject.h index c25b3167..098d7746 100644 --- a/src/tpm2/BackwardsCompatibilityObject.h +++ b/src/tpm2/BackwardsCompatibilityObject.h @@ -46,4 +46,6 @@ TPM_RC RSA2048_OBJECT_Buffer_To_OBJECT(OBJECT* object, BYTE* buffer, INT32 size) TPM_RC RSA3072_OBJECT_Buffer_To_OBJECT(OBJECT* object, BYTE* buffer, INT32 size); UINT32 OBJECT_To_Buffer_As_RSA3072_OBJECT(OBJECT* object, BYTE* buffer, UINT32 size); +TPMI_RH_HIERARCHY ObjectGetHierarchyFromAttributes(OBJECT* object); + #endif /* BACKWARDS_COMPATIBILITY_OBJECT_H */ diff --git a/src/tpm2/Object.c b/src/tpm2/Object.c index 27d2b5d0..89d101b5 100644 --- a/src/tpm2/Object.c +++ b/src/tpm2/Object.c @@ -224,22 +224,7 @@ ObjectGetHierarchy( OBJECT *object // IN :object ) { - if(object->attributes.spsHierarchy) - { - return TPM_RH_OWNER; - } - else if(object->attributes.epsHierarchy) - { - return TPM_RH_ENDORSEMENT; - } - else if(object->attributes.ppsHierarchy) - { - return TPM_RH_PLATFORM; - } - else - { - return TPM_RH_NULL; - } + return ObjectGetHierarchyFromAttributes(object); } /* 8.6.3.11 GetHierarchy() */ /* This function returns the handle of the hierarchy to which a handle belongs. This function is