diff options
author | Randall Spangler <rspangler@chromium.org> | 2016-10-18 15:09:21 -0700 |
---|---|---|
committer | Randall Spangler <rspangler@chromium.org> | 2016-11-06 02:34:03 +0000 |
commit | 6e3931d1f609fc23b3ca8c7f6e563926e4f38b69 (patch) | |
tree | a026366a822ad7300b2b76a14c8e5df77305e564 /tests | |
parent | 559a110f33b7ebe8d950f1c2de6b3b89791f862b (diff) | |
download | vboot-6e3931d1f609fc23b3ca8c7f6e563926e4f38b69.tar.gz |
vboot: Add vb2_unpack_key_buffer
Previously, vb2_unpack_key() actually unpacked a key buffer. Callers
that had a vb2_packed_key had to typecast it back to a uint8_t buffer to
unpack it. Rename vb2_unpack_key() to vb2_unpack_key_buffer(), and make
vb2_unpack_key() unpack a vb2_packed_key.
BUG=chromium:611535
BRANCH=none
TEST=make runtests; emerge-kevin coreboot depthcharge;
emerge-samus and boot it
Change-Id: I9ee38a819c59cc58a72ead78cf5ddf3d0f301ae7
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/400906
Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/vb20_api_kernel_tests.c | 2 | ||||
-rw-r--r-- | tests/vb20_api_tests.c | 2 | ||||
-rw-r--r-- | tests/vb20_common2_tests.c | 35 | ||||
-rw-r--r-- | tests/vb20_common3_tests.c | 8 | ||||
-rw-r--r-- | tests/vb20_kernel_tests.c | 2 | ||||
-rw-r--r-- | tests/vb20_misc_tests.c | 2 | ||||
-rw-r--r-- | tests/vb20_rsa_padding_tests.c | 4 | ||||
-rw-r--r-- | tests/vboot_api_kernel5_tests.c | 2 | ||||
-rw-r--r-- | tests/vboot_kernel_tests.c | 2 |
9 files changed, 29 insertions, 30 deletions
diff --git a/tests/vb20_api_kernel_tests.c b/tests/vb20_api_kernel_tests.c index 0c8cb59a..212ad931 100644 --- a/tests/vb20_api_kernel_tests.c +++ b/tests/vb20_api_kernel_tests.c @@ -194,7 +194,7 @@ int vb2_load_kernel_preamble(struct vb2_context *ctx) return mock_load_kernel_preamble_retval; } -int vb2_unpack_key(struct vb2_public_key *key, +int vb2_unpack_key_buffer(struct vb2_public_key *key, const uint8_t *buf, uint32_t size) { diff --git a/tests/vb20_api_tests.c b/tests/vb20_api_tests.c index f0bc98bf..a7efca9b 100644 --- a/tests/vb20_api_tests.c +++ b/tests/vb20_api_tests.c @@ -117,7 +117,7 @@ int vb2_load_fw_preamble(struct vb2_context *ctx) return retval_vb2_load_fw_preamble; } -int vb2_unpack_key(struct vb2_public_key *key, +int vb2_unpack_key_buffer(struct vb2_public_key *key, const uint8_t *buf, uint32_t size) { diff --git a/tests/vb20_common2_tests.c b/tests/vb20_common2_tests.c index 00861e58..61e28d1a 100644 --- a/tests/vb20_common2_tests.c +++ b/tests/vb20_common2_tests.c @@ -35,44 +35,49 @@ static void test_unpack_key(const struct vb2_packed_key *key1) struct vb2_packed_key *key = (struct vb2_packed_key *)buf; memcpy(key, key1, size); - TEST_SUCC(vb2_unpack_key(&pubk, buf, size), "vb2_unpack_key() ok"); + TEST_SUCC(vb2_unpack_key_buffer(&pubk, buf, size), + "vb2_unpack_key_buffer() ok"); TEST_EQ(pubk.sig_alg, vb2_crypto_to_signature(key->algorithm), - "vb2_unpack_key() sig_alg"); + "vb2_unpack_key_buffer() sig_alg"); TEST_EQ(pubk.hash_alg, vb2_crypto_to_hash(key->algorithm), - "vb2_unpack_key() hash_alg"); + "vb2_unpack_key_buffer() hash_alg"); memcpy(key, key1, size); key->algorithm = VB2_ALG_COUNT; - TEST_EQ(vb2_unpack_key(&pubk, buf, size), + TEST_EQ(vb2_unpack_key_buffer(&pubk, buf, size), VB2_ERROR_UNPACK_KEY_SIG_ALGORITHM, - "vb2_unpack_key() invalid algorithm"); + "vb2_unpack_key_buffer() invalid algorithm"); memcpy(key, key1, size); key->key_size--; - TEST_EQ(vb2_unpack_key(&pubk, buf, size), + TEST_EQ(vb2_unpack_key_buffer(&pubk, buf, size), VB2_ERROR_UNPACK_KEY_SIZE, - "vb2_unpack_key() invalid size"); + "vb2_unpack_key_buffer() invalid size"); memcpy(key, key1, size); key->key_offset++; - TEST_EQ(vb2_unpack_key(&pubk, buf, size + 1), + TEST_EQ(vb2_unpack_key_buffer(&pubk, buf, size + 1), VB2_ERROR_UNPACK_KEY_ALIGN, - "vb2_unpack_key() unaligned data"); + "vb2_unpack_key_buffer() unaligned data"); memcpy(key, key1, size); *(uint32_t *)(buf + key->key_offset) /= 2; - TEST_EQ(vb2_unpack_key(&pubk, buf, size), + TEST_EQ(vb2_unpack_key_buffer(&pubk, buf, size), VB2_ERROR_UNPACK_KEY_ARRAY_SIZE, - "vb2_unpack_key() invalid key array size"); + "vb2_unpack_key_buffer() invalid key array size"); memcpy(key, key1, size); - TEST_EQ(vb2_unpack_key(&pubk, buf, size - 1), + TEST_EQ(vb2_unpack_key_buffer(&pubk, buf, size - 1), VB2_ERROR_INSIDE_DATA_OUTSIDE, - "vb2_unpack_key() buffer too small"); + "vb2_unpack_key_buffer() buffer too small"); free(key); + + TEST_EQ(vb2_unpack_key(&pubk, NULL), + VB2_ERROR_UNPACK_KEY_BUFFER, + "vb2_unpack_key_() buffer NULL"); } static void test_verify_data(const struct vb2_packed_key *key1, @@ -82,7 +87,6 @@ static void test_verify_data(const struct vb2_packed_key *key1, __attribute__ ((aligned (VB2_WORKBUF_ALIGN))); struct vb2_workbuf wb; - uint32_t pubkey_size = key1->key_offset + key1->key_size; struct vb2_public_key pubk, pubk_orig; uint32_t sig_total_size = sig->sig_offset + sig->sig_size; struct vb2_signature *sig2; @@ -92,8 +96,7 @@ static void test_verify_data(const struct vb2_packed_key *key1, /* Allocate signature copy for tests */ sig2 = (struct vb2_signature *)malloc(sig_total_size); - TEST_EQ(vb2_unpack_key(&pubk, (uint8_t *)key1, pubkey_size), - 0, "vb2_verify_data() unpack key"); + TEST_SUCC(vb2_unpack_key(&pubk, key1), "vb2_verify_data() unpack key"); pubk_orig = pubk; memcpy(sig2, sig, sig_total_size); diff --git a/tests/vb20_common3_tests.c b/tests/vb20_common3_tests.c index e5538673..b5ad1ebe 100644 --- a/tests/vb20_common3_tests.c +++ b/tests/vb20_common3_tests.c @@ -216,8 +216,7 @@ static void test_verify_fw_preamble(struct vb2_packed_key *public_key, /* Create a dummy signature */ struct vb2_signature *body_sig = vb2_alloc_signature(56, 78); - TEST_SUCC(vb2_unpack_key(&rsa, (uint8_t *)public_key, - public_key->key_offset + public_key->key_size), + TEST_SUCC(vb2_unpack_key(&rsa, public_key), "vb2_verify_fw_preamble() prereq key"); hdr = vb2_create_fw_preamble(0x1234, kernel_subkey, body_sig, @@ -359,8 +358,7 @@ static void test_verify_kernel_preamble( /* Create a dummy signature */ struct vb2_signature *body_sig = vb2_alloc_signature(56, 0x214000); - TEST_SUCC(vb2_unpack_key(&rsa, (uint8_t *)public_key, - public_key->key_offset + public_key->key_size), + TEST_SUCC(vb2_unpack_key(&rsa, public_key), "vb2_verify_kernel_preamble() prereq key"); struct vb2_kernel_preamble *hdr = @@ -563,7 +561,7 @@ int test_permutation(int signing_key_algorithm, int data_key_algorithm, /* Unpack public key */ struct vb2_public_key signing_public_key2; if (VB2_SUCCESS != - vb2_unpack_key(&signing_public_key2, + vb2_unpack_key_buffer(&signing_public_key2, (uint8_t *)signing_public_key, signing_public_key->key_offset + signing_public_key->key_size)) { diff --git a/tests/vb20_kernel_tests.c b/tests/vb20_kernel_tests.c index 2304b321..2823050e 100644 --- a/tests/vb20_kernel_tests.c +++ b/tests/vb20_kernel_tests.c @@ -167,7 +167,7 @@ int vb2ex_read_resource(struct vb2_context *ctx, return VB2_SUCCESS; } -int vb2_unpack_key(struct vb2_public_key *key, +int vb2_unpack_key_buffer(struct vb2_public_key *key, const uint8_t *buf, uint32_t size) { diff --git a/tests/vb20_misc_tests.c b/tests/vb20_misc_tests.c index e3a5123f..2156e919 100644 --- a/tests/vb20_misc_tests.c +++ b/tests/vb20_misc_tests.c @@ -146,7 +146,7 @@ int vb2ex_read_resource(struct vb2_context *ctx, return VB2_SUCCESS; } -int vb2_unpack_key(struct vb2_public_key *key, +int vb2_unpack_key_buffer(struct vb2_public_key *key, const uint8_t *buf, uint32_t size) { diff --git a/tests/vb20_rsa_padding_tests.c b/tests/vb20_rsa_padding_tests.c index dbfdc38f..7c1df6a5 100644 --- a/tests/vb20_rsa_padding_tests.c +++ b/tests/vb20_rsa_padding_tests.c @@ -114,9 +114,7 @@ int main(int argc, char *argv[]) fprintf(stderr, "Couldn't read RSA public key for the test.\n"); return 1; } - - if (VB2_SUCCESS != vb2_unpack_key(&k2, (const uint8_t *)pk, - pk->key_offset + pk->key_size)) { + if (VB2_SUCCESS != vb2_unpack_key(&k2, pk)) { fprintf(stderr, "Couldn't unpack RSA public key.\n"); free(pk); return 1; diff --git a/tests/vboot_api_kernel5_tests.c b/tests/vboot_api_kernel5_tests.c index 8633f7e7..077c07a4 100644 --- a/tests/vboot_api_kernel5_tests.c +++ b/tests/vboot_api_kernel5_tests.c @@ -96,7 +96,7 @@ static void copy_kbh(void) } /* Mocks */ -int vb2_unpack_key(struct vb2_public_key *key, +int vb2_unpack_key_buffer(struct vb2_public_key *key, const uint8_t *buf, uint32_t size) { diff --git a/tests/vboot_kernel_tests.c b/tests/vboot_kernel_tests.c index 057e2dd3..21ee895b 100644 --- a/tests/vboot_kernel_tests.c +++ b/tests/vboot_kernel_tests.c @@ -243,7 +243,7 @@ void GetCurrentKernelUniqueGuid(GptData *gpt, void *dest) memcpy(dest, fake_guid, sizeof(fake_guid)); } -int vb2_unpack_key(struct vb2_public_key *key, +int vb2_unpack_key_buffer(struct vb2_public_key *key, const uint8_t *buf, uint32_t size) { |