| 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 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 144 success = 0; | 144 success = 0; |
| 145 | 145 |
| 146 return success; | 146 return success; |
| 147 } | 147 } |
| 148 | 148 |
| 149 int main(int argc, char* argv[]) { | 149 int main(int argc, char* argv[]) { |
| 150 uint64_t len; | 150 uint64_t len; |
| 151 uint8_t* kernel_sign_key_buf = NULL; | 151 uint8_t* kernel_sign_key_buf = NULL; |
| 152 uint8_t* firmware_key_blob = NULL; | 152 uint8_t* firmware_key_blob = NULL; |
| 153 uint8_t* kernel_blob = NULL; | 153 uint8_t* kernel_blob = NULL; |
| 154 int kernel_blob_len = 0; | 154 uint64_t kernel_blob_len = 0; |
| 155 KernelImage* image = NULL; | 155 KernelImage* image = NULL; |
| 156 RSAPublicKey* firmware_key = NULL; | 156 RSAPublicKey* firmware_key = NULL; |
| 157 int error_code = 1; | 157 int error_code = 1; |
| 158 | 158 |
| 159 if(argc != 7) { | 159 if(argc != 7) { |
| 160 fprintf(stderr, "Usage: %s <firmware signing algorithm> " /* argv[1] */ | 160 fprintf(stderr, "Usage: %s <firmware signing algorithm> " /* argv[1] */ |
| 161 "<kernel signing algorithm> " /* argv[2] */ | 161 "<kernel signing algorithm> " /* argv[2] */ |
| 162 "<firmware key> " /* argv[3] */ | 162 "<firmware key> " /* argv[3] */ |
| 163 "<processed firmware pubkey> " /* argv[4] */ | 163 "<processed firmware pubkey> " /* argv[4] */ |
| 164 "<kernel signing key> " /* argv[5] */ | 164 "<kernel signing key> " /* argv[5] */ |
| (...skipping 23 matching lines...) Expand all Loading... |
| 188 } | 188 } |
| 189 | 189 |
| 190 /* Generate and populate signatures. */ | 190 /* Generate and populate signatures. */ |
| 191 if (!AddKernelKeySignature(image, argv[3])) { | 191 if (!AddKernelKeySignature(image, argv[3])) { |
| 192 fprintf(stderr, "Couldn't create key signature.\n"); | 192 fprintf(stderr, "Couldn't create key signature.\n"); |
| 193 error_code = 1; | 193 error_code = 1; |
| 194 goto failure; | 194 goto failure; |
| 195 } | 195 } |
| 196 | 196 |
| 197 if (!AddKernelSignature(image, argv[5])) { | 197 if (!AddKernelSignature(image, argv[5])) { |
| 198 fprintf(stderr, "Couldn't create firmware and preamble signature.\n"); | 198 fprintf(stderr, "Couldn't create kernel option and kernel signature.\n"); |
| 199 error_code = 1; | 199 error_code = 1; |
| 200 goto failure; | 200 goto failure; |
| 201 } | 201 } |
| 202 | 202 |
| 203 kernel_blob = GetKernelBlob(image, &kernel_blob_len); | 203 kernel_blob = GetKernelBlob(image, &kernel_blob_len); |
| 204 | 204 |
| 205 /* Test Kernel blob verify operations. */ | 205 /* Test Kernel blob verify operations. */ |
| 206 if (!VerifyKernelTest(kernel_blob, firmware_key_blob)) | 206 if (!VerifyKernelTest(kernel_blob, firmware_key_blob)) |
| 207 error_code = 255; | 207 error_code = 255; |
| 208 | 208 |
| 209 /* Test KernelImage verify operations. */ | 209 /* Test KernelImage verify operations. */ |
| 210 if (!VerifyKernelImageTest(image, firmware_key)) | 210 if (!VerifyKernelImageTest(image, firmware_key)) |
| 211 error_code = 255; | 211 error_code = 255; |
| 212 if (!VerifyKernelImageTamperTest(image, firmware_key)) | 212 if (!VerifyKernelImageTamperTest(image, firmware_key)) |
| 213 error_code = 255; | 213 error_code = 255; |
| 214 | 214 |
| 215 failure: | 215 failure: |
| 216 Free(kernel_blob); | 216 Free(kernel_blob); |
| 217 KernelImageFree(image); | 217 KernelImageFree(image); |
| 218 Free(kernel_sign_key_buf); | 218 Free(kernel_sign_key_buf); |
| 219 Free(firmware_key_blob); | 219 Free(firmware_key_blob); |
| 220 RSAPublicKeyFree(firmware_key); | 220 RSAPublicKeyFree(firmware_key); |
| 221 | 221 |
| 222 return error_code; | 222 return error_code; |
| 223 } | 223 } |
| OLD | NEW |