Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(81)

Side by Side Diff: src/platform/vboot_reference/tests/test_common.c

Issue 1320010: VBoot Reference: Add kernel rollback prevention and choosing logic. (Closed)
Patch Set: fix priority in test case Created 10 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 * Common functions used by tests. 5 * Common functions used by tests.
6 */ 6 */
7 7
8 #include "test_common.h" 8 #include "test_common.h"
9 9
10 #include <stdio.h> 10 #include <stdio.h>
11 11
12 #include "file_keys.h" 12 #include "file_keys.h"
13 #include "rsa_utility.h" 13 #include "rsa_utility.h"
14 #include "utility.h" 14 #include "utility.h"
15 15
16 /* ANSI Color coding sequences. */ 16 /* ANSI Color coding sequences. */
17 #define COL_GREEN "\e[1;32m" 17 #define COL_GREEN "\e[1;32m"
18 #define COL_RED "\e[0;31m" 18 #define COL_RED "\e[0;31m"
19 #define COL_STOP "\e[m" 19 #define COL_STOP "\e[m"
20 20
21 /* Global test success flag. */ 21 /* Global test success flag. */
22 int gTestSuccess = 1; 22 int gTestSuccess = 1;
23 23
24 int TEST_EQ(int result, int expected_result, char* testname) { 24 int TEST_EQ(int result, int expected_result, char* testname) {
25 if (result == expected_result) { 25 if (result == expected_result) {
26 fprintf(stderr, "%s Test " COL_GREEN " PASSED\n" COL_STOP, testname); 26 fprintf(stderr, "%s Test " COL_GREEN "PASSED\n" COL_STOP, testname);
27 return 1; 27 return 1;
28 } 28 }
29 else { 29 else {
30 fprintf(stderr, "%s Test " COL_RED " FAILED\n" COL_STOP, testname); 30 fprintf(stderr, "%s Test " COL_RED "FAILED\n" COL_STOP, testname);
31 gTestSuccess = 0; 31 gTestSuccess = 0;
32 return 0; 32 return 0;
33 } 33 }
34 } 34 }
35 35
36 FirmwareImage* GenerateTestFirmwareImage(int algorithm, 36 FirmwareImage* GenerateTestFirmwareImage(int algorithm,
37 const uint8_t* firmware_sign_key, 37 const uint8_t* firmware_sign_key,
38 int firmware_key_version, 38 int firmware_key_version,
39 int firmware_version, 39 int firmware_version,
40 int firmware_len, 40 int firmware_len,
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
95 firmware_key_version, 95 firmware_key_version,
96 firmware_version, 96 firmware_version,
97 firmware_len, 97 firmware_len,
98 root_key_file, 98 root_key_file,
99 firmware_key_file); 99 firmware_key_file);
100 firmware_blob = GetFirmwareBlob(image, &firmware_blob_len); 100 firmware_blob = GetFirmwareBlob(image, &firmware_blob_len);
101 FirmwareImageFree(image); 101 FirmwareImageFree(image);
102 return firmware_blob; 102 return firmware_blob;
103 } 103 }
104 104
105 uint8_t* GenerateRollbackTestImage(int firmware_key_version, 105 uint8_t* GenerateRollbackTestFirmwareBlob(int firmware_key_version,
106 int firmware_version, 106 int firmware_version,
107 int is_corrupt) { 107 int is_corrupt) {
108 FirmwareImage* image = NULL; 108 FirmwareImage* image = NULL;
109 uint64_t len; 109 uint64_t len;
110 uint8_t* firmware_blob = NULL; 110 uint8_t* firmware_blob = NULL;
111 uint8_t* firmware_sign_key = NULL; 111 uint8_t* firmware_sign_key = NULL;
112 112
113 firmware_sign_key = BufferFromFile("testkeys/key_rsa1024.keyb", 113 firmware_sign_key = BufferFromFile("testkeys/key_rsa1024.keyb",
114 &len); 114 &len);
115 if (!firmware_sign_key) 115 if (!firmware_sign_key)
116 return NULL; 116 return NULL;
117 image = GenerateTestFirmwareImage(0, /* RSA1024/SHA1 */ 117 image = GenerateTestFirmwareImage(0, /* RSA1024/SHA1 */
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
206 kernel_key_version, 206 kernel_key_version,
207 kernel_version, 207 kernel_version,
208 kernel_len, 208 kernel_len,
209 firmware_key_file, 209 firmware_key_file,
210 kernel_key_file); 210 kernel_key_file);
211 211
212 kernel_blob = GetKernelBlob(image, &kernel_blob_len); 212 kernel_blob = GetKernelBlob(image, &kernel_blob_len);
213 KernelImageFree(image); 213 KernelImageFree(image);
214 return kernel_blob; 214 return kernel_blob;
215 } 215 }
216
217 uint8_t* GenerateRollbackTestKernelBlob(int kernel_key_version,
218 int kernel_version,
219 int is_corrupt) {
220 KernelImage* image = NULL;
221 uint64_t len;
222 uint8_t* kernel_blob = NULL;
223 uint8_t* kernel_sign_key = NULL;
224 kernel_sign_key = BufferFromFile("testkeys/key_rsa1024.keyb",
225 &len);
226 if (!kernel_sign_key)
227 return NULL;
228 image = GenerateTestKernelImage(0, /* Firmware algo: RSA1024/SHA1 */
229 0, /* Kernel algo: RSA1024/SHA1 */
230 kernel_sign_key,
231 kernel_key_version,
232 kernel_version,
233 1, /* kernel length. */
234 "testkeys/key_rsa1024.pem",
235 "testkeys/key_rsa1024.pem");
236 if (!image)
237 return NULL;
238 if (is_corrupt) {
239 /* Invalidate image. */
240 Memset(image->kernel_data, 'X', image->options.kernel_len);
241 }
242 kernel_blob = GetKernelBlob(image, &len);
243 KernelImageFree(image);
244 return kernel_blob;
245 }
OLDNEW
« no previous file with comments | « src/platform/vboot_reference/tests/test_common.h ('k') | src/platform/vboot_reference/utils/firmware_image.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698