summaryrefslogtreecommitdiff
path: root/tests/kernel_verify_benchmark.c
diff options
context:
space:
mode:
authorGaurav Shah <gauravsh@chromium.org>2010-03-25 13:04:45 -0700
committerGaurav Shah <gauravsh@chromium.org>2010-03-25 13:04:45 -0700
commit3199eed3d37fa028c1a5e32d6b61aea00d35bc0c (patch)
treec6b889a514d282dcd26b0e9ae98c5917acb45f28 /tests/kernel_verify_benchmark.c
parent785397136260359e47de94b16881fbab06a96b36 (diff)
downloadvboot-3199eed3d37fa028c1a5e32d6b61aea00d35bc0c.tar.gz
Move test utility functions to a common place.
Also removes the dev_mode flag from Firmware Image verification as key signature for the firmware should be checked whether or not dev mode is enabled. BUG=670 TEST=All tests still pass. Merge remote branch 'refs/remotes/origin/master' into fixtests Fix tests, remove dev mode. Move common code. Review URL: http://codereview.chromium.org/1280002
Diffstat (limited to 'tests/kernel_verify_benchmark.c')
-rw-r--r--tests/kernel_verify_benchmark.c62
1 files changed, 4 insertions, 58 deletions
diff --git a/tests/kernel_verify_benchmark.c b/tests/kernel_verify_benchmark.c
index 16453f0b..1460ef2e 100644
--- a/tests/kernel_verify_benchmark.c
+++ b/tests/kernel_verify_benchmark.c
@@ -12,6 +12,7 @@
#include "kernel_image.h"
#include "padding.h"
#include "rsa_utility.h"
+#include "test_common.h"
#include "timer_utils.h"
#include "utility.h"
@@ -40,63 +41,6 @@ const char* g_kernel_size_labels[] = {
#define NUM_SIZES_TO_TEST (sizeof(g_kernel_sizes_to_test) / \
sizeof(g_kernel_sizes_to_test[0]))
-uint8_t* GenerateTestKernelBlob(int firmware_sign_algorithm,
- int kernel_sign_algorithm,
- int kernel_len,
- const uint8_t* kernel_sign_key,
- const char* firmware_key_file,
- const char* kernel_key_file) {
- KernelImage* image = KernelImageNew();
- uint8_t* kernel_blob = NULL;
- uint64_t kernel_blob_len = 0;
-
- Memcpy(image->magic, KERNEL_MAGIC, KERNEL_MAGIC_SIZE);
- image->header_version = 1;
- image->firmware_sign_algorithm = firmware_sign_algorithm;
- image->kernel_sign_algorithm = kernel_sign_algorithm;
- image->kernel_key_version = 1;
- image->kernel_sign_key = (uint8_t*) Malloc(
- RSAProcessedKeySize(image->kernel_sign_algorithm));
- Memcpy(image->kernel_sign_key, kernel_sign_key,
- RSAProcessedKeySize(image->kernel_sign_algorithm));
-
- /* Update correct header length. */
- image->header_len = GetKernelHeaderLen(image);
-
- /* Calculate SHA-512 digest on header and populate header_checksum. */
- CalculateKernelHeaderChecksum(image, image->header_checksum);
-
- /* Populate kernel options and data with dummy data. */
- image->kernel_version = 1;
- image->options.version[0] = 1;
- image->options.version[1] = 0;
- Memset(image->options.cmd_line, 0, sizeof(image->options.cmd_line));
- image->options.kernel_len = kernel_len;
- image->options.kernel_load_addr = 0;
- image->options.kernel_entry_addr = 0;
- image->kernel_key_signature = image->kernel_signature = NULL;
- image->kernel_data = Malloc(kernel_len);
- /* TODO(gauravsh): Populate this with random data, to remove data-dependent
- * timing artificats. */
- Memset(image->kernel_data, 'K', kernel_len);
-
- if (!AddKernelKeySignature(image, firmware_key_file)) {
- fprintf(stderr, "Couldn't create key signature.\n");
- KernelImageFree(image);
- return NULL;
- }
-
- if (!AddKernelSignature(image, kernel_key_file)) {
- fprintf(stderr, "Couldn't create kernel option and kernel signature.\n");
- KernelImageFree(image);
- return NULL;
- }
-
- kernel_blob = GetKernelBlob(image, &kernel_blob_len);
- KernelImageFree(image);
- return kernel_blob;
-}
-
int SpeedTestAlgorithm(int firmware_sign_algorithm,
int kernel_sign_algorithm) {
int i, j, error_code = 0;
@@ -139,8 +83,10 @@ int SpeedTestAlgorithm(int firmware_sign_algorithm,
for (i = 0; i < NUM_SIZES_TO_TEST; ++i) {
kernel_blobs[i] = GenerateTestKernelBlob(firmware_sign_algorithm,
kernel_sign_algorithm,
- g_kernel_sizes_to_test[i],
kernel_sign_key,
+ 1, /* kernel key version. */
+ 1, /* kernel version. */
+ g_kernel_sizes_to_test[i],
firmware_sign_key_file,
kernel_sign_key_file);
if (!kernel_blobs[i]) {