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 firmware image library. | 5 * Tests for firmware 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 28 matching lines...) Expand all Loading... |
39 if (!hdr) | 39 if (!hdr) |
40 return; | 40 return; |
41 hsize = hdr->key_block_size; | 41 hsize = hdr->key_block_size; |
42 h = (VbKeyBlockHeader*)Malloc(hsize + 1024); | 42 h = (VbKeyBlockHeader*)Malloc(hsize + 1024); |
43 | 43 |
44 TEST_EQ(VerifyKeyBlock(hdr, hsize, NULL), 0, | 44 TEST_EQ(VerifyKeyBlock(hdr, hsize, NULL), 0, |
45 "VerifyKeyBlock() ok using checksum"); | 45 "VerifyKeyBlock() ok using checksum"); |
46 TEST_EQ(VerifyKeyBlock(hdr, hsize, public_key), 0, | 46 TEST_EQ(VerifyKeyBlock(hdr, hsize, public_key), 0, |
47 "VerifyKeyBlock() ok using key"); | 47 "VerifyKeyBlock() ok using key"); |
48 | 48 |
49 TEST_NEQ(VerifyKeyBlock(hdr, hsize-1, NULL), 0, "VerifyKeyBlock() size"); | 49 TEST_NEQ(VerifyKeyBlock(hdr, hsize - 1, NULL), 0, "VerifyKeyBlock() size--"); |
| 50 TEST_EQ(VerifyKeyBlock(hdr, hsize + 1, NULL), 0, "VerifyKeyBlock() size++"); |
50 | 51 |
51 Memcpy(h, hdr, hsize); | 52 Memcpy(h, hdr, hsize); |
52 h->magic[0] &= 0x12; | 53 h->magic[0] &= 0x12; |
53 TEST_NEQ(VerifyKeyBlock(h, hsize, NULL), 0, "VerifyKeyBlock() magic"); | 54 TEST_NEQ(VerifyKeyBlock(h, hsize, NULL), 0, "VerifyKeyBlock() magic"); |
54 | 55 |
55 /* Care about major version but not minor */ | 56 /* Care about major version but not minor */ |
56 Memcpy(h, hdr, hsize); | 57 Memcpy(h, hdr, hsize); |
57 h->header_version_major++; | 58 h->header_version_major++; |
58 ReChecksumKeyBlock(h); | 59 ReChecksumKeyBlock(h); |
59 TEST_NEQ(VerifyKeyBlock(h, hsize, NULL), 0, "VerifyKeyBlock() major++"); | 60 TEST_NEQ(VerifyKeyBlock(h, hsize, NULL), 0, "VerifyKeyBlock() major++"); |
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
157 rsa = PublicKeyToRSA(public_key); | 158 rsa = PublicKeyToRSA(public_key); |
158 hdr = CreateFirmwarePreamble(0x1234, kernel_subkey, body_sig, private_key); | 159 hdr = CreateFirmwarePreamble(0x1234, kernel_subkey, body_sig, private_key); |
159 TEST_NEQ(hdr && rsa, 0, "VerifyFirmwarePreamble2() prerequisites"); | 160 TEST_NEQ(hdr && rsa, 0, "VerifyFirmwarePreamble2() prerequisites"); |
160 if (!hdr) | 161 if (!hdr) |
161 return; | 162 return; |
162 hsize = hdr->preamble_size; | 163 hsize = hdr->preamble_size; |
163 h = (VbFirmwarePreambleHeader*)Malloc(hsize + 16384); | 164 h = (VbFirmwarePreambleHeader*)Malloc(hsize + 16384); |
164 | 165 |
165 TEST_EQ(VerifyFirmwarePreamble2(hdr, hsize, rsa), 0, | 166 TEST_EQ(VerifyFirmwarePreamble2(hdr, hsize, rsa), 0, |
166 "VerifyFirmwarePreamble2() ok using key"); | 167 "VerifyFirmwarePreamble2() ok using key"); |
167 TEST_NEQ(VerifyFirmwarePreamble2(hdr, hsize-1, rsa), 0, | 168 TEST_NEQ(VerifyFirmwarePreamble2(hdr, hsize - 1, rsa), 0, |
168 "VerifyFirmwarePreamble2() size"); | 169 "VerifyFirmwarePreamble2() size--"); |
| 170 TEST_EQ(VerifyFirmwarePreamble2(hdr, hsize + 1, rsa), 0, |
| 171 "VerifyFirmwarePreamble2() size++"); |
169 | 172 |
170 /* Care about major version but not minor */ | 173 /* Care about major version but not minor */ |
171 Memcpy(h, hdr, hsize); | 174 Memcpy(h, hdr, hsize); |
172 h->header_version_major++; | 175 h->header_version_major++; |
173 ReSignFirmwarePreamble(h, private_key); | 176 ReSignFirmwarePreamble(h, private_key); |
174 TEST_NEQ(VerifyFirmwarePreamble2(h, hsize, rsa), 0, | 177 TEST_NEQ(VerifyFirmwarePreamble2(h, hsize, rsa), 0, |
175 "VerifyFirmwarePreamble2() major++"); | 178 "VerifyFirmwarePreamble2() major++"); |
176 | 179 |
177 Memcpy(h, hdr, hsize); | 180 Memcpy(h, hdr, hsize); |
178 h->header_version_major--; | 181 h->header_version_major--; |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
261 /* Read verification keys and create a test image. */ | 264 /* Read verification keys and create a test image. */ |
262 signing_key_algorithm = atoi(argv[1]); | 265 signing_key_algorithm = atoi(argv[1]); |
263 data_key_algorithm = atoi(argv[2]); | 266 data_key_algorithm = atoi(argv[2]); |
264 | 267 |
265 signing_private_key = PrivateKeyRead(argv[3], signing_key_algorithm); | 268 signing_private_key = PrivateKeyRead(argv[3], signing_key_algorithm); |
266 if (!signing_private_key) { | 269 if (!signing_private_key) { |
267 fprintf(stderr, "Error reading signing_private_key"); | 270 fprintf(stderr, "Error reading signing_private_key"); |
268 return 1; | 271 return 1; |
269 } | 272 } |
270 | 273 |
271 signing_public_key = PublicKeyRead(argv[4], signing_key_algorithm, 1); | 274 signing_public_key = PublicKeyReadKeyb(argv[4], signing_key_algorithm, 1); |
272 if (!signing_public_key) { | 275 if (!signing_public_key) { |
273 fprintf(stderr, "Error reading signing_public_key"); | 276 fprintf(stderr, "Error reading signing_public_key"); |
274 return 1; | 277 return 1; |
275 } | 278 } |
276 | 279 |
277 data_public_key = PublicKeyRead(argv[6], data_key_algorithm, 1); | 280 data_public_key = PublicKeyReadKeyb(argv[6], data_key_algorithm, 1); |
278 if (!data_public_key) { | 281 if (!data_public_key) { |
279 fprintf(stderr, "Error reading data_public_key"); | 282 fprintf(stderr, "Error reading data_public_key"); |
280 return 1; | 283 return 1; |
281 } | 284 } |
282 | 285 |
283 VerifyKeyBlockTest(signing_public_key, signing_private_key, data_public_key); | 286 VerifyKeyBlockTest(signing_public_key, signing_private_key, data_public_key); |
284 VerifyFirmwarePreambleTest(signing_public_key, signing_private_key, | 287 VerifyFirmwarePreambleTest(signing_public_key, signing_private_key, |
285 data_public_key); | 288 data_public_key); |
286 | 289 |
287 if (signing_public_key) | 290 if (signing_public_key) |
288 Free(signing_public_key); | 291 Free(signing_public_key); |
289 if (signing_private_key) | 292 if (signing_private_key) |
290 Free(signing_private_key); | 293 Free(signing_private_key); |
291 if (data_public_key) | 294 if (data_public_key) |
292 Free(data_public_key); | 295 Free(data_public_key); |
293 | 296 |
294 return error_code; | 297 return error_code; |
295 } | 298 } |
OLD | NEW |