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

Side by Side Diff: tests/kernel_rollback_tests.c

Issue 2871033: Switch to using .vbprivk for signing everything now. (Closed) Base URL: ssh://git@chromiumos-git//vboot_reference.git
Patch Set: Okay, now tests pass again. Created 10 years, 5 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 * Tests for checking kernel rollback-prevention logic. 5 * Tests for checking kernel rollback-prevention logic.
6 */ 6 */
7 7
8 #include <stdio.h> 8 #include <stdio.h>
9 #include <stdlib.h> 9 #include <stdlib.h>
10 10
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
54 }; 54 };
55 55
56 /* Initialize rollback index state. */ 56 /* Initialize rollback index state. */
57 g_kernel_key_version = 1; 57 g_kernel_key_version = 1;
58 g_kernel_version = 1; 58 g_kernel_version = 1;
59 59
60 /* Note: This test just checks the rollback prevention mechanism and not 60 /* Note: This test just checks the rollback prevention mechanism and not
61 * the full blown kernel boot logic. Updates to the kernel attributes 61 * the full blown kernel boot logic. Updates to the kernel attributes
62 * in the paritition table are not tested. 62 * in the paritition table are not tested.
63 */ 63 */
64 debug("Kernel A boot priority(15) > Kernel B boot priority(1)\n"); 64 VBDEBUG(("Kernel A boot priority(15) > Kernel B boot priority(1)\n"));
65 TEST_EQ(VerifyKernelDriver_f(firmware_key_pub, 65 TEST_EQ(VerifyKernelDriver_f(firmware_key_pub,
66 &valid_kernelA, &valid_kernelB, 66 &valid_kernelA, &valid_kernelB,
67 DEV_MODE_DISABLED), 67 DEV_MODE_DISABLED),
68 BOOT_KERNEL_A_CONTINUE, 68 BOOT_KERNEL_A_CONTINUE,
69 "(Valid Kernel A (current version)\n" 69 "(Valid Kernel A (current version)\n"
70 " Valid Kernel B (current version) runs A):"); 70 " Valid Kernel B (current version) runs A):");
71 TEST_EQ(VerifyKernelDriver_f(firmware_key_pub, 71 TEST_EQ(VerifyKernelDriver_f(firmware_key_pub,
72 &corrupt_kernelA, &valid_kernelB, 72 &corrupt_kernelA, &valid_kernelB,
73 DEV_MODE_DISABLED), 73 DEV_MODE_DISABLED),
74 BOOT_KERNEL_B_CONTINUE, 74 BOOT_KERNEL_B_CONTINUE,
75 "(Corrupt Kernel A (current version)\n" 75 "(Corrupt Kernel A (current version)\n"
76 " Valid Kernel B (current version) runs B):"); 76 " Valid Kernel B (current version) runs B):");
77 TEST_EQ(VerifyKernelDriver_f(firmware_key_pub, 77 TEST_EQ(VerifyKernelDriver_f(firmware_key_pub,
78 &valid_kernelA, &corrupt_kernelB, 78 &valid_kernelA, &corrupt_kernelB,
79 DEV_MODE_DISABLED), 79 DEV_MODE_DISABLED),
80 BOOT_KERNEL_A_CONTINUE, 80 BOOT_KERNEL_A_CONTINUE,
81 "(Valid Kernel A (current version)\n" 81 "(Valid Kernel A (current version)\n"
82 " Corrupt Kernel B (current version) runs A):"); 82 " Corrupt Kernel B (current version) runs A):");
83 TEST_EQ(VerifyKernelDriver_f(firmware_key_pub, 83 TEST_EQ(VerifyKernelDriver_f(firmware_key_pub,
84 &corrupt_kernelA, &corrupt_kernelB, 84 &corrupt_kernelA, &corrupt_kernelB,
85 DEV_MODE_DISABLED), 85 DEV_MODE_DISABLED),
86 BOOT_KERNEL_RECOVERY_CONTINUE, 86 BOOT_KERNEL_RECOVERY_CONTINUE,
87 "(Corrupt Kernel A (current version)\n" 87 "(Corrupt Kernel A (current version)\n"
88 " Corrupt Kernel B (current version) runs Recovery):"); 88 " Corrupt Kernel B (current version) runs Recovery):");
89 89
90 debug("\nSwapping boot priorities...\n" 90 VBDEBUG(("\nSwapping boot priorities...\n"
91 "Kernel B boot priority(15) > Kernel A boot priority(1)\n"); 91 "Kernel B boot priority(15) > Kernel A boot priority(1)\n"));
92 valid_kernelA.boot_priority = corrupt_kernelA.boot_priority = 1; 92 valid_kernelA.boot_priority = corrupt_kernelA.boot_priority = 1;
93 valid_kernelB.boot_priority = corrupt_kernelB.boot_priority = 15; 93 valid_kernelB.boot_priority = corrupt_kernelB.boot_priority = 15;
94 TEST_EQ(VerifyKernelDriver_f(firmware_key_pub, 94 TEST_EQ(VerifyKernelDriver_f(firmware_key_pub,
95 &valid_kernelA, &valid_kernelB, 95 &valid_kernelA, &valid_kernelB,
96 DEV_MODE_DISABLED), 96 DEV_MODE_DISABLED),
97 BOOT_KERNEL_B_CONTINUE, 97 BOOT_KERNEL_B_CONTINUE,
98 "(Valid Kernel A (current version)\n" 98 "(Valid Kernel A (current version)\n"
99 " Valid Kernel B (current version) runs B):"); 99 " Valid Kernel B (current version) runs B):");
100 TEST_EQ(VerifyKernelDriver_f(firmware_key_pub, 100 TEST_EQ(VerifyKernelDriver_f(firmware_key_pub,
101 &corrupt_kernelA, &valid_kernelB, 101 &corrupt_kernelA, &valid_kernelB,
102 DEV_MODE_DISABLED), 102 DEV_MODE_DISABLED),
103 BOOT_KERNEL_B_CONTINUE, 103 BOOT_KERNEL_B_CONTINUE,
104 "(Corrupt Kernel A (current version)\n" 104 "(Corrupt Kernel A (current version)\n"
105 " Valid Kernel B (current version) runs B):"); 105 " Valid Kernel B (current version) runs B):");
106 TEST_EQ(VerifyKernelDriver_f(firmware_key_pub, 106 TEST_EQ(VerifyKernelDriver_f(firmware_key_pub,
107 &valid_kernelA, &corrupt_kernelB, 107 &valid_kernelA, &corrupt_kernelB,
108 DEV_MODE_DISABLED), 108 DEV_MODE_DISABLED),
109 BOOT_KERNEL_A_CONTINUE, 109 BOOT_KERNEL_A_CONTINUE,
110 "(Valid Kernel A (current version)\n" 110 "(Valid Kernel A (current version)\n"
111 " Corrupt Kernel B (current version) runs A):"); 111 " Corrupt Kernel B (current version) runs A):");
112 TEST_EQ(VerifyKernelDriver_f(firmware_key_pub, 112 TEST_EQ(VerifyKernelDriver_f(firmware_key_pub,
113 &corrupt_kernelA, &corrupt_kernelB, 113 &corrupt_kernelA, &corrupt_kernelB,
114 DEV_MODE_DISABLED), 114 DEV_MODE_DISABLED),
115 BOOT_KERNEL_RECOVERY_CONTINUE, 115 BOOT_KERNEL_RECOVERY_CONTINUE,
116 "(Corrupt Kernel A (current version)\n" 116 "(Corrupt Kernel A (current version)\n"
117 " Corrupt Kernel B (current version) runs Recovery):"); 117 " Corrupt Kernel B (current version) runs Recovery):");
118 118
119 debug("\nUpdating stored version information. Obsoleting " 119 VBDEBUG(("\nUpdating stored version information. Obsoleting "
120 "exiting kernel images.\n"); 120 "exiting kernel images.\n"));
121 g_kernel_key_version = 2; 121 g_kernel_key_version = 2;
122 g_kernel_version = 2; 122 g_kernel_version = 2;
123 TEST_EQ(VerifyKernelDriver_f(firmware_key_pub, 123 TEST_EQ(VerifyKernelDriver_f(firmware_key_pub,
124 &valid_kernelA, &valid_kernelB, 124 &valid_kernelA, &valid_kernelB,
125 DEV_MODE_DISABLED), 125 DEV_MODE_DISABLED),
126 BOOT_KERNEL_RECOVERY_CONTINUE, 126 BOOT_KERNEL_RECOVERY_CONTINUE,
127 "(Valid Kernel A (old version)\n" 127 "(Valid Kernel A (old version)\n"
128 " Valid Kernel B (old version) runs Recovery):"); 128 " Valid Kernel B (old version) runs Recovery):");
129 129
130 debug("\nGenerating updated Kernel A blob with " 130 VBDEBUG(("\nGenerating updated Kernel A blob with "
131 "new version.\n"); 131 "new version.\n"));
132 Free(valid_kernelA.kernel_blob); 132 Free(valid_kernelA.kernel_blob);
133 valid_kernelA.kernel_blob = GenerateRollbackTestKernelBlob(3, 3, 0); 133 valid_kernelA.kernel_blob = GenerateRollbackTestKernelBlob(3, 3, 0);
134 TEST_EQ(VerifyKernelDriver_f(firmware_key_pub, 134 TEST_EQ(VerifyKernelDriver_f(firmware_key_pub,
135 &valid_kernelA, &valid_kernelB, 135 &valid_kernelA, &valid_kernelB,
136 DEV_MODE_DISABLED), 136 DEV_MODE_DISABLED),
137 BOOT_KERNEL_A_CONTINUE, 137 BOOT_KERNEL_A_CONTINUE,
138 "(Valid Kernel A (new version)\n" 138 "(Valid Kernel A (new version)\n"
139 " Valid Kernel B (old version) runs A):"); 139 " Valid Kernel B (old version) runs A):");
140 Free(valid_kernelA.kernel_blob); 140 Free(valid_kernelA.kernel_blob);
141 Free(valid_kernelB.kernel_blob); 141 Free(valid_kernelB.kernel_blob);
142 Free(corrupt_kernelA.kernel_blob); 142 Free(corrupt_kernelA.kernel_blob);
143 Free(corrupt_kernelB.kernel_blob); 143 Free(corrupt_kernelB.kernel_blob);
144 #endif 144 #endif
145 145
146 Free(firmware_key_pub); 146 Free(firmware_key_pub);
147 } 147 }
148 148
149 int main(int argc, char* argv[]) { 149 int main(int argc, char* argv[]) {
150 int error_code = 0; 150 int error_code = 0;
151 VerifyKernelDriverTest(); 151 VerifyKernelDriverTest();
152 if (!gTestSuccess) 152 if (!gTestSuccess)
153 error_code = 255; 153 error_code = 255;
154 return error_code; 154 return error_code;
155 } 155 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698