From 229ad66260fe34db94acaae5128d61f05951f218 Mon Sep 17 00:00:00 2001 From: Nick Bofferding Date: Wed, 13 Sep 2017 20:32:31 -0500 Subject: Secure Boot: Support reading component ID from container's SW header - Repurposed container SW header reserved field for component ID - Parse component ID when reading container header - Implement user API to read component ID Change-Id: I005f0e1cb20d4022333d05bfe86d88bf706f60de Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/46173 Tested-by: Jenkins Server Tested-by: Jenkins OP Build CI Tested-by: Jenkins OP HW Tested-by: FSP CI Jenkins Reviewed-by: Michael Baiocchi Reviewed-by: Stephen M. Cprek Reviewed-by: Daniel M. Crowell --- src/include/usr/secureboot/containerheader.H | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'src/include/usr/secureboot/containerheader.H') diff --git a/src/include/usr/secureboot/containerheader.H b/src/include/usr/secureboot/containerheader.H index 5a554f0fc..49ecc9223 100644 --- a/src/include/usr/secureboot/containerheader.H +++ b/src/include/usr/secureboot/containerheader.H @@ -58,6 +58,7 @@ class ContainerHeader iv_pHdrStart = reinterpret_cast(i_header); memset(&iv_headerInfo, 0x00, sizeof(iv_headerInfo)); memset(iv_hwKeyHash, 0, sizeof(SHA512_t)); + memset(iv_componentId,0x00,sizeof(iv_componentId)); parse_header(i_header); }; @@ -142,6 +143,14 @@ class ContainerHeader */ bool isValid() const; + /** + * @brief Returns the container's component ID as an invariant + * character string, or an empty string if none provided. + * + * @return const char* Component ID string + */ + const char* componentId() const; + private: /** * @brief Default Constructor in private to prevent being instantiated @@ -161,6 +170,13 @@ class ContainerHeader ROM_sw_sig_raw sw_sig; }; + /** + * @brief Container's component ID (one byte larger than associated + * container header field to allow for a NULL terminator) + */ + char iv_componentId[ sizeof(ROM_sw_header_raw::component_id) + + sizeof(uint8_t) ]; + // Entire cached container header content SecureHeaderInfo iv_headerInfo; -- cgit v1.2.1