summaryrefslogtreecommitdiffstats
path: root/src/usr/secureboot
diff options
context:
space:
mode:
Diffstat (limited to 'src/usr/secureboot')
-rw-r--r--src/usr/secureboot/base/test/securerommgrtest.H14
-rw-r--r--src/usr/secureboot/common/containerheader.C6
2 files changed, 13 insertions, 7 deletions
diff --git a/src/usr/secureboot/base/test/securerommgrtest.H b/src/usr/secureboot/base/test/securerommgrtest.H
index 115813d3d..3dee8952e 100644
--- a/src/usr/secureboot/base/test/securerommgrtest.H
+++ b/src/usr/secureboot/base/test/securerommgrtest.H
@@ -555,7 +555,7 @@ class SecureRomManagerTest : public CxxTest::TestSuite
{
TRACFCOMP(g_trac_secure,"SecureRomManagerTest::test_fakeHeader");
- const size_t l_totalContainerSize = 0x10000;
+ const size_t l_payloadSize = 0x10000;
// Purposely make a comp id larger than SW_HDR_COMP_ID_SIZE_BYTES
// otherwise strncmp below needs a different size
const char* l_compId = "FAKEHEADERTEST";
@@ -564,7 +564,7 @@ class SecureRomManagerTest : public CxxTest::TestSuite
// Simple call constructor to create fake header and make sure it
// does not cause an error
SECUREBOOT::ContainerHeader l_fakeHdr;
- errlHndl_t l_errl = l_fakeHdr.setFakeHeader(l_totalContainerSize,
+ errlHndl_t l_errl = l_fakeHdr.setFakeHeader(l_payloadSize,
l_compId);
if (l_errl)
{
@@ -573,8 +573,14 @@ class SecureRomManagerTest : public CxxTest::TestSuite
break;
}
- // Payload Text Size should be the total container size minus the header
- if(l_fakeHdr.payloadTextSize() != (l_totalContainerSize - PAGE_SIZE))
+ // Total Container size should be payload size + PAGE_SIZE(header size)
+ if(l_fakeHdr.totalContainerSize() != (l_payloadSize + PAGE_SIZE))
+ {
+ TS_FAIL("SecureRomManagerTest::test_fakeHeader: total container size was not parsed correctly");
+ }
+
+ // Check that payload text size was assigned correctly.
+ if(l_fakeHdr.payloadTextSize() != (l_payloadSize))
{
TS_FAIL("SecureRomManagerTest::test_fakeHeader: payload text size was not parsed correctly");
break;
diff --git a/src/usr/secureboot/common/containerheader.C b/src/usr/secureboot/common/containerheader.C
index 47ccfebea..e01b09b8b 100644
--- a/src/usr/secureboot/common/containerheader.C
+++ b/src/usr/secureboot/common/containerheader.C
@@ -171,7 +171,7 @@ void ContainerHeader::initVars()
memset(iv_componentId,0x00,sizeof(iv_componentId));
}
-void ContainerHeader::genFakeHeader(const size_t i_totalSize,
+void ContainerHeader::genFakeHeader(const size_t i_size,
const char* const i_compId)
{
SecureHeaderInfo info {};
@@ -182,7 +182,7 @@ void ContainerHeader::genFakeHeader(const size_t i_totalSize,
/*---- ROM_container_raw ----*/
info.hw_hdr.magic_number = ROM_MAGIC_NUMBER;
info.hw_hdr.version = CONTAINER_VERSION;
- info.hw_hdr.container_size = i_totalSize;
+ info.hw_hdr.container_size = i_size + PAGE_SIZE;
// The rom code has a placeholder for the prefix in the first struct so
// skip it
size_t l_size = offsetof(ROM_container_raw, prefix);
@@ -212,7 +212,7 @@ void ContainerHeader::genFakeHeader(const size_t i_totalSize,
strncpy(info.sw_hdr.component_id, i_compId,SW_HDR_COMP_ID_SIZE_BYTES);
info.sw_hdr.ver_alg.hash_alg = HASH_ALG_SHA512;
info.sw_hdr.ver_alg.sig_alg = SIG_ALG_ECDSA521;
- info.sw_hdr.payload_size = i_totalSize - PAGE_SIZE;
+ info.sw_hdr.payload_size = i_size;
l_size = offsetof(ROM_sw_header_raw, ecid);
l_size += info.hw_prefix_hdr.ecid_count * ECID_SIZE;
OpenPOWER on IntegriCloud