summaryrefslogtreecommitdiff
path: root/firmware
diff options
context:
space:
mode:
authorJoel Kitching <kitching@google.com>2019-06-25 16:21:09 +0800
committerCommit Bot <commit-bot@chromium.org>2019-06-26 14:24:47 +0000
commit1851825b05d266509c4157d1413c0d853a9add28 (patch)
tree2c67473639889bf0a58520c587921cf973df1bf7 /firmware
parent98b00ae762cd99aec82757600185b2ae94cdb85f (diff)
downloadvboot-1851825b05d266509c4157d1413c0d853a9add28.tar.gz
vboot: remove VerifyMemberInside functionstabilize-12301.B
Use vboot2-style vb2_verify_member_inside instead. Correct some strings in vboot2 tests to refer to new vboot2 functions instead. BUG=b:124141368 TEST=make clean && make runtests BRANCH=none Change-Id: Idb3bcf1657c9d955acc6f93983c7b0c7f06427e3 Signed-off-by: Joel Kitching <kitching@google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/1675870 Tested-by: Joel Kitching <kitching@chromium.org> Commit-Queue: Joel Kitching <kitching@chromium.org> Reviewed-by: Julius Werner <jwerner@chromium.org>
Diffstat (limited to 'firmware')
-rw-r--r--firmware/lib/include/vboot_common.h5
-rw-r--r--firmware/lib/vboot_common.c43
-rw-r--r--firmware/linktest/main.c1
3 files changed, 7 insertions, 42 deletions
diff --git a/firmware/lib/include/vboot_common.h b/firmware/lib/include/vboot_common.h
index b01ed3b2..9bf9f0e5 100644
--- a/firmware/lib/include/vboot_common.h
+++ b/firmware/lib/include/vboot_common.h
@@ -57,11 +57,6 @@ const uint8_t *GetSignatureDataC(const VbSignature *sig);
* parent data. Returns 0 if inside, 1 if error.
*/
-int VerifyMemberInside(const void *parent, uint64_t parent_size,
- const void *member, uint64_t member_size,
- uint64_t member_data_offset,
- uint64_t member_data_size);
-
int VerifyPublicKeyInside(const void *parent, uint64_t parent_size,
const VbPublicKey *key);
diff --git a/firmware/lib/vboot_common.c b/firmware/lib/vboot_common.c
index ea44588c..3238fd5c 100644
--- a/firmware/lib/vboot_common.c
+++ b/firmware/lib/vboot_common.c
@@ -52,52 +52,23 @@ const uint8_t *GetSignatureDataC(const VbSignature *sig)
/*
* Helper functions to verify the data pointed to by a subfield is inside
- * the parent data. Returns 0 if inside, 1 if error.
+ * the parent data.
*/
-int VerifyMemberInside(const void *parent, uint64_t parent_size,
- const void *member, uint64_t member_size,
- uint64_t member_data_offset,
- uint64_t member_data_size)
-{
- uint64_t end = vb2_offset_of(parent, member);
-
- if (end > parent_size)
- return 1;
-
- if (UINT64_MAX - end < member_size)
- return 1; /* Detect wraparound in integer math */
- if (end + member_size > parent_size)
- return 1;
-
- if (UINT64_MAX - end < member_data_offset)
- return 1;
- end += member_data_offset;
- if (end > parent_size)
- return 1;
-
- if (UINT64_MAX - end < member_data_size)
- return 1;
- if (end + member_data_size > parent_size)
- return 1;
-
- return 0;
-}
-
int VerifyPublicKeyInside(const void *parent, uint64_t parent_size,
const VbPublicKey *key)
{
- return VerifyMemberInside(parent, parent_size,
- key, sizeof(VbPublicKey),
- key->key_offset, key->key_size);
+ return vb2_verify_member_inside(parent, parent_size,
+ key, sizeof(VbPublicKey),
+ key->key_offset, key->key_size);
}
int VerifySignatureInside(const void *parent, uint64_t parent_size,
const VbSignature *sig)
{
- return VerifyMemberInside(parent, parent_size,
- sig, sizeof(VbSignature),
- sig->sig_offset, sig->sig_size);
+ return vb2_verify_member_inside(parent, parent_size,
+ sig, sizeof(VbSignature),
+ sig->sig_offset, sig->sig_size);
}
void PublicKeyInit(VbPublicKey *key, uint8_t *key_data, uint64_t key_size)
diff --git a/firmware/linktest/main.c b/firmware/linktest/main.c
index 6877bfad..03195ed2 100644
--- a/firmware/linktest/main.c
+++ b/firmware/linktest/main.c
@@ -62,7 +62,6 @@ int main(void)
GetPublicKeyDataC(0);
GetSignatureData(0);
GetSignatureDataC(0);
- VerifyMemberInside(0, 0, 0, 0, 0, 0);
VerifyPublicKeyInside(0, 0, 0);
VerifySignatureInside(0, 0, 0);
PublicKeyInit(0, 0, 0);