OLD | NEW |
1 /* Copyright (c) 2010 The Chromium OS Authors. All rights reserved. | 1 /* Copyright (c) 2010 The Chromium OS Authors. All rights reserved. |
2 * Use of this source code is governed by a BSD-style license that can be | 2 * Use of this source code is governed by a BSD-style license that can be |
3 * found in the LICENSE file. | 3 * found in the LICENSE file. |
4 * | 4 * |
5 * Tests for kernel image library. | 5 * Tests for kernel image library. |
6 */ | 6 */ |
7 | 7 |
8 #include <stdio.h> | 8 #include <stdio.h> |
9 #include <stdlib.h> | 9 #include <stdlib.h> |
10 | 10 |
(...skipping 22 matching lines...) Expand all Loading... |
33 VERIFY_KERNEL_SUCCESS, | 33 VERIFY_KERNEL_SUCCESS, |
34 "Normal KernelImage Verification (Dev Mode)"); | 34 "Normal KernelImage Verification (Dev Mode)"); |
35 TEST_EQ(VerifyKernelImage(firmware_key, image, DEV_MODE_DISABLED), | 35 TEST_EQ(VerifyKernelImage(firmware_key, image, DEV_MODE_DISABLED), |
36 VERIFY_KERNEL_SUCCESS, | 36 VERIFY_KERNEL_SUCCESS, |
37 "Normal KernelImage Verification (Trusted)"); | 37 "Normal KernelImage Verification (Trusted)"); |
38 } | 38 } |
39 | 39 |
40 /* Tampered KernelImage Verification Tests. */ | 40 /* Tampered KernelImage Verification Tests. */ |
41 void VerifyKernelImageTamperTest(KernelImage* image, | 41 void VerifyKernelImageTamperTest(KernelImage* image, |
42 RSAPublicKey* firmware_key) { | 42 RSAPublicKey* firmware_key) { |
43 image->options.kernel_load_addr = 0xFFFF; | 43 image->kernel_config[0] ^= 0xFF; |
44 TEST_EQ(VerifyKernelImage(firmware_key, image, DEV_MODE_ENABLED), | 44 TEST_EQ(VerifyKernelImage(firmware_key, image, DEV_MODE_ENABLED), |
45 VERIFY_KERNEL_CONFIG_SIGNATURE_FAILED, | 45 VERIFY_KERNEL_CONFIG_SIGNATURE_FAILED, |
46 "KernelImage Config Tamper Verification (Dev Mode)"); | 46 "KernelImage Config Tamper Verification (Dev Mode)"); |
47 TEST_EQ(VerifyKernelImage(firmware_key, image, DEV_MODE_DISABLED), | 47 TEST_EQ(VerifyKernelImage(firmware_key, image, DEV_MODE_DISABLED), |
48 VERIFY_KERNEL_CONFIG_SIGNATURE_FAILED, | 48 VERIFY_KERNEL_CONFIG_SIGNATURE_FAILED, |
49 "KernelImage Config Tamper Verification (Trusted)"); | 49 "KernelImage Config Tamper Verification (Trusted)"); |
50 image->options.kernel_load_addr = 0; | 50 image->kernel_config[0] ^= 0xFF; |
51 | 51 |
52 image->kernel_data[0] = 'T'; | 52 image->kernel_data[0] = 'T'; |
53 TEST_EQ(VerifyKernelImage(firmware_key, image, DEV_MODE_ENABLED), | 53 TEST_EQ(VerifyKernelImage(firmware_key, image, DEV_MODE_ENABLED), |
54 VERIFY_KERNEL_SIGNATURE_FAILED, | 54 VERIFY_KERNEL_SIGNATURE_FAILED, |
55 "KernelImage Tamper Verification (Dev Mode)"); | 55 "KernelImage Tamper Verification (Dev Mode)"); |
56 TEST_EQ(VerifyKernelImage(firmware_key, image, DEV_MODE_DISABLED), | 56 TEST_EQ(VerifyKernelImage(firmware_key, image, DEV_MODE_DISABLED), |
57 VERIFY_KERNEL_SIGNATURE_FAILED, | 57 VERIFY_KERNEL_SIGNATURE_FAILED, |
58 "KernelImage Tamper Verification (Trusted)"); | 58 "KernelImage Tamper Verification (Trusted)"); |
59 image->kernel_data[0] = 'K'; | 59 image->kernel_data[0] = 'K'; |
60 | 60 |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
131 | 131 |
132 failure: | 132 failure: |
133 Free(kernel_blob); | 133 Free(kernel_blob); |
134 KernelImageFree(image); | 134 KernelImageFree(image); |
135 Free(kernel_sign_key_buf); | 135 Free(kernel_sign_key_buf); |
136 Free(firmware_key_blob); | 136 Free(firmware_key_blob); |
137 RSAPublicKeyFree(firmware_key); | 137 RSAPublicKeyFree(firmware_key); |
138 | 138 |
139 return error_code; | 139 return error_code; |
140 } | 140 } |
OLD | NEW |