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

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

Issue 661353: Vboot Reference: Refactor Code. (Closed)
Patch Set: Review Fixes. 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 * 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 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
167 success = 0; 167 success = 0;
168 168
169 return success; 169 return success;
170 } 170 }
171 171
172 int main(int argc, char* argv[]) { 172 int main(int argc, char* argv[]) {
173 uint32_t len; 173 uint32_t len;
174 uint8_t* kernel_sign_key_buf = NULL; 174 uint8_t* kernel_sign_key_buf = NULL;
175 uint8_t* firmware_key_blob = NULL; 175 uint8_t* firmware_key_blob = NULL;
176 uint8_t* kernel_blob = NULL; 176 uint8_t* kernel_blob = NULL;
177 int kernel_blob_len = 0;
177 KernelImage* image = NULL; 178 KernelImage* image = NULL;
178 RSAPublicKey* firmware_key = NULL; 179 RSAPublicKey* firmware_key = NULL;
179 int error_code = 1; 180 int error_code = 1;
180 char* tmp_kernelblob_file = ".tmpKernelBlob";
181 181
182 if(argc != 7) { 182 if(argc != 7) {
183 fprintf(stderr, "Usage: %s <firmware signing algorithm> " /* argv[1] */ 183 fprintf(stderr, "Usage: %s <firmware signing algorithm> " /* argv[1] */
184 "<kernel signing algorithm> " /* argv[2] */ 184 "<kernel signing algorithm> " /* argv[2] */
185 "<firmware key> " /* argv[3] */ 185 "<firmware key> " /* argv[3] */
186 "<processed firmware pubkey> " /* argv[4] */ 186 "<processed firmware pubkey> " /* argv[4] */
187 "<kernel signing key> " /* argv[5] */ 187 "<kernel signing key> " /* argv[5] */
188 "<processed kernel signing key>\n", /* argv[6] */ 188 "<processed kernel signing key>\n", /* argv[6] */
189 argv[0]); 189 argv[0]);
190 return -1; 190 return -1;
(...skipping 19 matching lines...) Expand all
210 goto failure; 210 goto failure;
211 } 211 }
212 212
213 /* Generate and populate signatures. */ 213 /* Generate and populate signatures. */
214 if (!AddKernelKeySignature(image, argv[3])) { 214 if (!AddKernelKeySignature(image, argv[3])) {
215 fprintf(stderr, "Couldn't create key signature.\n"); 215 fprintf(stderr, "Couldn't create key signature.\n");
216 error_code = 1; 216 error_code = 1;
217 goto failure; 217 goto failure;
218 } 218 }
219 219
220 if (!AddKernelSignature(image, argv[5], image->kernel_sign_algorithm)) { 220 if (!AddKernelSignature(image, argv[5])) {
221 fprintf(stderr, "Couldn't create firmware and preamble signature.\n"); 221 fprintf(stderr, "Couldn't create firmware and preamble signature.\n");
222 error_code = 1; 222 error_code = 1;
223 goto failure; 223 goto failure;
224 } 224 }
225 225
226 /* Generate a firmware binary blob from image. 226 kernel_blob = GetKernelBlob(image, &kernel_blob_len);
227 *
228 * TODO(gauravsh): Add a function to directly generate a binary
229 * blob buffer from a KernelImage instead of indirectly writing to a file
230 * and reading it into a buffer.
231 */
232 if (!WriteKernelImage(tmp_kernelblob_file, image)) {
233 fprintf(stderr, "Couldn't create a temporary kernel blob file.\n");
234 error_code = 1;
235 goto failure;
236 }
237 kernel_blob = BufferFromFile(tmp_kernelblob_file, &len);
238 227
239 /* Test Kernel blob verify operations. */ 228 /* Test Kernel blob verify operations. */
240 if (!VerifyKernelTest(kernel_blob, firmware_key_blob)) 229 if (!VerifyKernelTest(kernel_blob, firmware_key_blob))
241 error_code = 255; 230 error_code = 255;
242 231
243 /* Test KernelImage verify operations. */ 232 /* Test KernelImage verify operations. */
244 if (!VerifyKernelImageTest(image, firmware_key)) 233 if (!VerifyKernelImageTest(image, firmware_key))
245 error_code = 255; 234 error_code = 255;
246 if (!VerifyKernelImageTamperTest(image, firmware_key)) 235 if (!VerifyKernelImageTamperTest(image, firmware_key))
247 error_code = 255; 236 error_code = 255;
248 237
249 failure: 238 failure:
250 Free(kernel_blob); 239 Free(kernel_blob);
251 KernelImageFree(image); 240 KernelImageFree(image);
252 Free(kernel_sign_key_buf); 241 Free(kernel_sign_key_buf);
253 Free(firmware_key_blob); 242 Free(firmware_key_blob);
254 Free(firmware_key); 243 Free(firmware_key);
255 244
256 return error_code; 245 return error_code;
257 } 246 }
OLDNEW
« no previous file with comments | « src/platform/vboot_reference/tests/firmware_image_tests.c ('k') | src/platform/vboot_reference/tests/rsa_padding_test.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698