| 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 |