summaryrefslogtreecommitdiff
path: root/tests/kernel_image_tests.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/kernel_image_tests.c')
-rw-r--r--tests/kernel_image_tests.c141
1 files changed, 0 insertions, 141 deletions
diff --git a/tests/kernel_image_tests.c b/tests/kernel_image_tests.c
deleted file mode 100644
index 8125e681..00000000
--- a/tests/kernel_image_tests.c
+++ /dev/null
@@ -1,141 +0,0 @@
-/* Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- *
- * Tests for kernel image library.
- */
-
-#include <stdint.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-#include "cryptolib.h"
-#include "file_keys.h"
-#include "kernel_image.h"
-#include "test_common.h"
-#include "utility.h"
-
-/* Normal Kernel Blob Verification Tests. */
-void VerifyKernelTest(uint8_t* kernel_blob, uint8_t* firmware_key_blob) {
- TEST_EQ(VerifyKernel(firmware_key_blob, kernel_blob, DEV_MODE_ENABLED),
- VERIFY_KERNEL_SUCCESS,
- "Normal Kernel Blob Verification (Dev Mode)");
-
- TEST_EQ(VerifyKernel(firmware_key_blob, kernel_blob, DEV_MODE_DISABLED),
- VERIFY_KERNEL_SUCCESS,
- "Normal Kernel Blob Verification (Trusted)");
-}
-
-
-/* Normal KernelImage Verification Tests. */
-void VerifyKernelImageTest(KernelImage* image,
- RSAPublicKey* firmware_key) {
- TEST_EQ(VerifyKernelImage(firmware_key, image, DEV_MODE_ENABLED),
- VERIFY_KERNEL_SUCCESS,
- "Normal KernelImage Verification (Dev Mode)");
- TEST_EQ(VerifyKernelImage(firmware_key, image, DEV_MODE_DISABLED),
- VERIFY_KERNEL_SUCCESS,
- "Normal KernelImage Verification (Trusted)");
-}
-
-/* Tampered KernelImage Verification Tests. */
-void VerifyKernelImageTamperTest(KernelImage* image,
- RSAPublicKey* firmware_key) {
- image->bootloader_offset ^= 0xFF;
- TEST_EQ(VerifyKernelImage(firmware_key, image, DEV_MODE_ENABLED),
- VERIFY_KERNEL_PREAMBLE_SIGNATURE_FAILED,
- "KernelImage Config Tamper Verification (Dev Mode)");
- TEST_EQ(VerifyKernelImage(firmware_key, image, DEV_MODE_DISABLED),
- VERIFY_KERNEL_PREAMBLE_SIGNATURE_FAILED,
- "KernelImage Config Tamper Verification (Trusted)");
- image->bootloader_offset ^= 0xFF;
-
- image->kernel_data[0] = 'T';
- TEST_EQ(VerifyKernelImage(firmware_key, image, DEV_MODE_ENABLED),
- VERIFY_KERNEL_SIGNATURE_FAILED,
- "KernelImage Tamper Verification (Dev Mode)");
- TEST_EQ(VerifyKernelImage(firmware_key, image, DEV_MODE_DISABLED),
- VERIFY_KERNEL_SIGNATURE_FAILED,
- "KernelImage Tamper Verification (Trusted)");
- image->kernel_data[0] = 'K';
-
- image->kernel_key_signature[0] = 0xFF;
- image->kernel_key_signature[1] = 0x00;
- TEST_EQ(VerifyKernelImage(firmware_key, image, DEV_MODE_ENABLED),
- VERIFY_KERNEL_SUCCESS,
- "KernelImage Key Signature Tamper Verification (Dev Mode)");
- TEST_EQ(VerifyKernelImage(firmware_key, image, DEV_MODE_DISABLED),
- VERIFY_KERNEL_KEY_SIGNATURE_FAILED,
- "KernelImage Key Signature Tamper Verification (Trusted)");
-}
-
-int main(int argc, char* argv[]) {
- uint64_t len;
- const char* firmware_key_file = NULL;
- const char* kernel_key_file = NULL;
- uint8_t* kernel_sign_key_buf = NULL;
- uint8_t* firmware_key_blob = NULL;
- uint8_t* kernel_blob = NULL;
- uint64_t kernel_blob_len = 0;
- KernelImage* image = NULL;
- RSAPublicKey* firmware_key = NULL;
- int error_code = 0;
-
- if(argc != 7) {
- fprintf(stderr, "Usage: %s <firmware signing algorithm> " /* argv[1] */
- "<kernel signing algorithm> " /* argv[2] */
- "<firmware key> " /* argv[3] */
- "<processed firmware pubkey> " /* argv[4] */
- "<kernel signing key> " /* argv[5] */
- "<processed kernel signing key>\n", /* argv[6] */
- argv[0]);
- return -1;
- }
-
- /* Read verification keys and create a test image. */
- firmware_key = RSAPublicKeyFromFile(argv[4]);
- firmware_key_blob = BufferFromFile(argv[4], &len);
- kernel_sign_key_buf = BufferFromFile(argv[6], &len);
- firmware_key_file = argv[3];
- kernel_key_file = argv[5];
-
- if (!firmware_key || !kernel_sign_key_buf || !kernel_sign_key_buf) {
- error_code = 1;
- goto failure;
- }
-
- image = GenerateTestKernelImage(atoi(argv[1]),
- atoi(argv[2]),
- kernel_sign_key_buf,
- 1, /* Kernel Key Version */
- 1, /* Kernel Version */
- 1000, /* Kernel Size */
- firmware_key_file,
- kernel_key_file,
- 'K');
- if (!image) {
- error_code = 1;
- goto failure;
- }
-
- kernel_blob = GetKernelBlob(image, &kernel_blob_len);
-
- /* Test Kernel blob verify operations. */
- VerifyKernelTest(kernel_blob, firmware_key_blob);
-
- /* Test KernelImage verify operations. */
- VerifyKernelImageTest(image, firmware_key);
- VerifyKernelImageTamperTest(image, firmware_key);
-
- if (!gTestSuccess)
- error_code = 255;
-
-failure:
- Free(kernel_blob);
- KernelImageFree(image);
- Free(kernel_sign_key_buf);
- Free(firmware_key_blob);
- RSAPublicKeyFree(firmware_key);
-
- return error_code;
-}