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 |