summaryrefslogtreecommitdiff
path: root/tests/vb2_sha_tests.c
diff options
context:
space:
mode:
authorRandall Spangler <rspangler@chromium.org>2015-05-05 16:06:50 -0700
committerChromeOS Commit Bot <chromeos-commit-bot@chromium.org>2015-05-07 00:00:36 +0000
commitf81fce91bf885293f1447c1197bb0c4143d8fced (patch)
treef2cd42b1d7c0ccd1b5bdf0349610d34a20edee4d /tests/vb2_sha_tests.c
parent7dd3bd0fcf565901aacc512cd29cefe19291c2e7 (diff)
downloadvboot-f81fce91bf885293f1447c1197bb0c4143d8fced.tar.gz
Make SHA library accessible to calling firmware
And add a vb2_digest_buffer() call which produces the hash of a buffer all in a single function call. That function actually already existed, but was in a unit test file rather than in the library itself. It's a small function, so adding it won't increase the size of the library significantly - or at all, on platforms which compile with -ffunction-sections. This allows coreboot to reuse this SHA library for hashing CBFS entries and file data. All it has to do is #define NEED_VB2_SHA_LIBRARY and then #include "vb2_api.h". BUG=chromium:482652 BRANCH=none TEST=make -j runtests Change-Id: Ice2d0929324b58b2665f3989b5b887225f6ef61e Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/269523 Reviewed-by: Julius Werner <jwerner@chromium.org>
Diffstat (limited to 'tests/vb2_sha_tests.c')
-rw-r--r--tests/vb2_sha_tests.c78
1 files changed, 33 insertions, 45 deletions
diff --git a/tests/vb2_sha_tests.c b/tests/vb2_sha_tests.c
index 501f90ee..0919ff9c 100644
--- a/tests/vb2_sha_tests.c
+++ b/tests/vb2_sha_tests.c
@@ -13,26 +13,6 @@
#include "sha_test_vectors.h"
#include "test_common.h"
-static int vb2_digest(const uint8_t *buf,
- uint32_t size,
- enum vb2_hash_algorithm hash_alg,
- uint8_t *digest,
- uint32_t digest_size)
-{
- struct vb2_digest_context dc;
- int rv;
-
- rv = vb2_digest_init(&dc, hash_alg);
- if (rv)
- return rv;
-
- rv = vb2_digest_extend(&dc, buf, size);
- if (rv)
- return rv;
-
- return vb2_digest_finalize(&dc, digest, digest_size);
-}
-
void sha1_tests(void)
{
uint8_t digest[VB2_SHA1_DIGEST_SIZE];
@@ -44,17 +24,20 @@ void sha1_tests(void)
test_inputs[2] = (uint8_t *) long_msg;
for (i = 0; i < 3; i++) {
- TEST_SUCC(vb2_digest(test_inputs[i],
- strlen((char *)test_inputs[i]),
- VB2_HASH_SHA1, digest, sizeof(digest)),
- "vb2_digest() SHA1");
+ TEST_SUCC(vb2_digest_buffer(test_inputs[i],
+ strlen((char *)test_inputs[i]),
+ VB2_HASH_SHA1,
+ digest, sizeof(digest)),
+ "vb2_digest_buffer() SHA1");
TEST_EQ(memcmp(digest, sha1_results[i], sizeof(digest)),
0, "SHA1 digest");
}
- TEST_EQ(vb2_digest(test_inputs[0], strlen((char *)test_inputs[0]),
- VB2_HASH_SHA1, digest, sizeof(digest) - 1),
- VB2_ERROR_SHA_FINALIZE_DIGEST_SIZE, "vb2_digest() too small");
+ TEST_EQ(vb2_digest_buffer(test_inputs[0],
+ strlen((char *)test_inputs[0]),
+ VB2_HASH_SHA1, digest, sizeof(digest) - 1),
+ VB2_ERROR_SHA_FINALIZE_DIGEST_SIZE,
+ "vb2_digest_buffer() too small");
}
void sha256_tests(void)
@@ -68,17 +51,20 @@ void sha256_tests(void)
test_inputs[2] = (uint8_t *) long_msg;
for (i = 0; i < 3; i++) {
- TEST_SUCC(vb2_digest(test_inputs[i],
- strlen((char *)test_inputs[i]),
- VB2_HASH_SHA256, digest, sizeof(digest)),
- "vb2_digest() SHA256");
+ TEST_SUCC(vb2_digest_buffer(test_inputs[i],
+ strlen((char *)test_inputs[i]),
+ VB2_HASH_SHA256,
+ digest, sizeof(digest)),
+ "vb2_digest_buffer() SHA256");
TEST_EQ(memcmp(digest, sha256_results[i], sizeof(digest)),
0, "SHA-256 digest");
}
- TEST_EQ(vb2_digest(test_inputs[0], strlen((char *)test_inputs[0]),
- VB2_HASH_SHA256, digest, sizeof(digest) - 1),
- VB2_ERROR_SHA_FINALIZE_DIGEST_SIZE, "vb2_digest() too small");
+ TEST_EQ(vb2_digest_buffer(test_inputs[0],
+ strlen((char *)test_inputs[0]),
+ VB2_HASH_SHA256, digest, sizeof(digest) - 1),
+ VB2_ERROR_SHA_FINALIZE_DIGEST_SIZE,
+ "vb2_digest_buffer() too small");
}
void sha512_tests(void)
@@ -92,18 +78,20 @@ void sha512_tests(void)
test_inputs[2] = (uint8_t *) long_msg;
for (i = 0; i < 3; i++) {
- TEST_SUCC(vb2_digest(test_inputs[i],
- strlen((char *)test_inputs[i]),
- VB2_HASH_SHA512, digest,
- sizeof(digest)),
- "vb2_digest() SHA512");
+ TEST_SUCC(vb2_digest_buffer(test_inputs[i],
+ strlen((char *)test_inputs[i]),
+ VB2_HASH_SHA512,
+ digest, sizeof(digest)),
+ "vb2_digest_buffer() SHA512");
TEST_EQ(memcmp(digest, sha512_results[i], sizeof(digest)),
0, "SHA-512 digest");
}
- TEST_EQ(vb2_digest(test_inputs[0], strlen((char *)test_inputs[0]),
- VB2_HASH_SHA512, digest, sizeof(digest) - 1),
- VB2_ERROR_SHA_FINALIZE_DIGEST_SIZE, "vb2_digest() too small");
+ TEST_EQ(vb2_digest_buffer(test_inputs[0],
+ strlen((char *)test_inputs[0]),
+ VB2_HASH_SHA512, digest, sizeof(digest) - 1),
+ VB2_ERROR_SHA_FINALIZE_DIGEST_SIZE,
+ "vb2_digest_buffer() too small");
}
void misc_tests(void)
@@ -126,10 +114,10 @@ void misc_tests(void)
TEST_EQ(vb2_digest_size(VB2_HASH_INVALID), 0,
"digest size invalid alg");
- TEST_EQ(vb2_digest((uint8_t *)oneblock_msg, strlen(oneblock_msg),
- VB2_HASH_INVALID, digest, sizeof(digest)),
+ TEST_EQ(vb2_digest_buffer((uint8_t *)oneblock_msg, strlen(oneblock_msg),
+ VB2_HASH_INVALID, digest, sizeof(digest)),
VB2_ERROR_SHA_INIT_ALGORITHM,
- "vb2_digest() invalid alg");
+ "vb2_digest_buffer() invalid alg");
/* Test bad algorithm inside extend and finalize */
vb2_digest_init(&dc, VB2_HASH_SHA256);