diff --git a/sw/device/rom_exts/manifest.hjson b/sw/device/rom_exts/manifest.hjson
index 13b41ee..74a7100 100644
--- a/sw/device/rom_exts/manifest.hjson
+++ b/sw/device/rom_exts/manifest.hjson
@@ -68,8 +68,8 @@
       size: 32,
     },
     {
-      name: "exponent",
-      desc: '''ROM_EXT Manifest exponent.
+      name: "signature_key_public_exponent",
+      desc: '''ROM_EXT Manifest Signature Key Public Exponent.
 
             TODO
             ''',
@@ -95,8 +95,8 @@
       size: 128,
     },
     {
-      name: "signature_public_key",
-      desc: '''ROM_EXT Manifest sifnature public key.
+      name: "signature_key_modulus",
+      desc: '''ROM_EXT Manifest Signature Key Modulus.
 
             TODO
             ''',
diff --git a/sw/device/rom_exts/rom_ext_manifest_parser.c b/sw/device/rom_exts/rom_ext_manifest_parser.c
index 9224c6f..ed0de90 100644
--- a/sw/device/rom_exts/rom_ext_manifest_parser.c
+++ b/sw/device/rom_exts/rom_ext_manifest_parser.c
@@ -84,8 +84,9 @@
                             ROM_EXT_SIGNATURE_ALGORITHM_IDENTIFIER_OFFSET);
 }
 
-uint32_t rom_ext_get_exponent(rom_ext_manifest_t params) {
-  return mmio_region_read32(params.base_addr, ROM_EXT_EXPONENT_OFFSET);
+uint32_t rom_ext_get_signature_key_public_exponent(rom_ext_manifest_t params) {
+  return mmio_region_read32(params.base_addr,
+                            ROM_EXT_SIGNATURE_KEY_PUBLIC_EXPONENT_OFFSET);
 }
 
 uint32_t rom_ext_get_usage_constraints(rom_ext_manifest_t params) {
@@ -105,15 +106,15 @@
   return true;
 }
 
-bool rom_ext_get_public_key(rom_ext_manifest_t params,
-                            rom_ext_public_key_t *dst) {
+bool rom_ext_get_signature_key_modulus(rom_ext_manifest_t params,
+                                       rom_ext_signature_key_modulus_t *dst) {
   if (dst == NULL) {
     return false;
   }
 
   mmio_region_memcpy_from_mmio32(
-      params.base_addr, ROM_EXT_SIGNATURE_PUBLIC_KEY_OFFSET, &dst->data[0],
-      ROM_EXT_SIGNATURE_PUBLIC_KEY_SIZE_BYTES);
+      params.base_addr, ROM_EXT_SIGNATURE_KEY_MODULUS_OFFSET, &dst->data[0],
+      ROM_EXT_SIGNATURE_KEY_MODULUS_SIZE_BYTES);
 
   return true;
 }
diff --git a/sw/device/rom_exts/rom_ext_manifest_parser.h b/sw/device/rom_exts/rom_ext_manifest_parser.h
index 59e2967..3d8e172 100644
--- a/sw/device/rom_exts/rom_ext_manifest_parser.h
+++ b/sw/device/rom_exts/rom_ext_manifest_parser.h
@@ -100,11 +100,11 @@
 } rom_ext_lockdown_info_t;
 
 /**
- * ROM Extension public key.
+ * ROM Extension Signature Key Modulus.
  */
-typedef struct rom_ext_public_key {
-  uint32_t data[ROM_EXT_SIGNATURE_PUBLIC_KEY_SIZE_WORDS];
-} rom_ext_public_key_t;
+typedef struct rom_ext_signature_key_modulus {
+  uint32_t data[ROM_EXT_SIGNATURE_KEY_MODULUS_SIZE_WORDS];
+} rom_ext_signature_key_modulus_t;
 
 /**
  * ROM Extension image extension IDs.
@@ -220,14 +220,14 @@
 uint32_t rom_ext_get_algorithm_id(rom_ext_manifest_t params);
 
 /**
- * Retrieves the ROM_EXT exponent.
+ * Retrieves the ROM_EXT Signature Key Public Exponent.
  *
  * The memory address where ROM_EXT exponent field resides, is relative.
  *
  * @param params Parameters required for manifest parsing.
- * @return ROM_EXT exponent.
+ * @return ROM_EXT Signature Key Public Exponent.
  */
-uint32_t rom_ext_get_exponent(rom_ext_manifest_t params);
+uint32_t rom_ext_get_signature_key_public_exponent(rom_ext_manifest_t params);
 
 /**
  * Retrieves the ROM_EXT usage constraints.
@@ -253,16 +253,16 @@
                                           rom_ext_lockdown_info_t *dst);
 
 /**
- * Retrieves the ROM_EXT public key.
+ * Retrieves the ROM_EXT Signature Key Modulus.
  *
- * The memory address where ROM_EXT public key field resides, is relative.
+ * The memory address where ROM_EXT key modulus field resides, is relative.
  *
  * @param params Parameters required for manifest parsing.
- * @param dst The destination address where the public key is copied to.
+ * @param dst The destination address where the key modulus is copied to.
  * @return `true` on success, `false` on failure.
  */
-bool rom_ext_get_public_key(rom_ext_manifest_t params,
-                            rom_ext_public_key_t *dst);
+bool rom_ext_get_signature_key_modulus(rom_ext_manifest_t params,
+                                       rom_ext_signature_key_modulus_t *dst);
 
 /**
  * Retrieves the ROM_EXT image extension specified in `id`.
diff --git a/sw/device/tests/rom_ext/rom_ext_parser_unittest.cc b/sw/device/tests/rom_ext/rom_ext_parser_unittest.cc
index e8349de..8a66bed 100644
--- a/sw/device/tests/rom_ext/rom_ext_parser_unittest.cc
+++ b/sw/device/tests/rom_ext/rom_ext_parser_unittest.cc
@@ -116,11 +116,11 @@
   EXPECT_EQ(rom_ext_get_algorithm_id(params_), 0xa5a5a5a5);
 }
 
-class ExponentGetTest : public ParserTest {};
+class SignatureKeyPublicExponentGetTest : public ParserTest {};
 
-TEST_F(ExponentGetTest, Success) {
-  EXPECT_READ32(ROM_EXT_EXPONENT_OFFSET, 0xa5a5a5a5);
-  EXPECT_EQ(rom_ext_get_exponent(params_), 0xa5a5a5a5);
+TEST_F(SignatureKeyPublicExponentGetTest, Success) {
+  EXPECT_READ32(ROM_EXT_SIGNATURE_KEY_PUBLIC_EXPONENT_OFFSET, 0xa5a5a5a5);
+  EXPECT_EQ(rom_ext_get_signature_key_public_exponent(params_), 0xa5a5a5a5);
 }
 
 class UsageConstraintsGetTest : public ParserTest {};
@@ -159,32 +159,32 @@
   EXPECT_THAT(src_.data, ElementsAreArray(dst.data));
 }
 
-class PublicKeyGetTest : public ParserTest {
+class SignatureKeyModulusGetTest : public ParserTest {
  protected:
-  PublicKeyGetTest() {
+  SignatureKeyModulusGetTest() {
     for (uint32_t i = 0; i < kSizeInWords_; ++i) {
       src_.data[i] = dev().GarbageMemory<uint32_t>();
     }
   }
 
-  const uint32_t kSizeInWords_ = ROM_EXT_SIGNATURE_PUBLIC_KEY_SIZE_WORDS;
-  rom_ext_public_key_t src_;
+  const uint32_t kSizeInWords_ = ROM_EXT_SIGNATURE_KEY_MODULUS_SIZE_WORDS;
+  rom_ext_signature_key_modulus_t src_;
 };
 
-TEST_F(PublicKeyGetTest, NullArgs) {
-  EXPECT_FALSE(rom_ext_get_public_key(params_, nullptr));
+TEST_F(SignatureKeyModulusGetTest, NullArgs) {
+  EXPECT_FALSE(rom_ext_get_signature_key_modulus(params_, nullptr));
 }
 
-TEST_F(PublicKeyGetTest, Success) {
-  rom_ext_public_key_t dst;
+TEST_F(SignatureKeyModulusGetTest, Success) {
+  rom_ext_signature_key_modulus_t dst;
 
-  auto offset_word_0 = ROM_EXT_SIGNATURE_PUBLIC_KEY_OFFSET;
+  auto offset_word_0 = ROM_EXT_SIGNATURE_KEY_MODULUS_OFFSET;
   for (size_t i = 0; i < kSizeInWords_; ++i) {
     auto offset = offset_word_0 + (i * sizeof(uint32_t));
     EXPECT_READ32(offset, src_.data[i]);
   }
 
-  EXPECT_TRUE(rom_ext_get_public_key(params_, &dst));
+  EXPECT_TRUE(rom_ext_get_signature_key_modulus(params_, &dst));
   EXPECT_THAT(src_.data, ElementsAreArray(dst.data));
 }
 
