| 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 * Common functions used by tests. | 5 * Common functions used by tests. |
| 6 */ | 6 */ |
| 7 | 7 |
| 8 #include "test_common.h" | 8 #include "test_common.h" |
| 9 | 9 |
| 10 #include <stdio.h> | 10 #include <stdio.h> |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 73 } | 73 } |
| 74 | 74 |
| 75 if (!AddFirmwareSignature(image, firmware_key_file)) { | 75 if (!AddFirmwareSignature(image, firmware_key_file)) { |
| 76 debug("Couldn't create firmware and preamble signature.\n"); | 76 debug("Couldn't create firmware and preamble signature.\n"); |
| 77 FirmwareImageFree(image); | 77 FirmwareImageFree(image); |
| 78 return NULL; | 78 return NULL; |
| 79 } | 79 } |
| 80 return image; | 80 return image; |
| 81 } | 81 } |
| 82 | 82 |
| 83 uint8_t* GenerateTestFirmwareBlob(int algorithm, | 83 uint8_t* GenerateTestVerificationBlob(int algorithm, |
| 84 const uint8_t* firmware_sign_key, | 84 const uint8_t* firmware_sign_key, |
| 85 int firmware_key_version, | 85 int firmware_key_version, |
| 86 int firmware_version, | 86 int firmware_version, |
| 87 uint64_t firmware_len, | 87 uint64_t firmware_len, |
| 88 const char* root_key_file, | 88 const char* root_key_file, |
| 89 const char* firmware_key_file) { | 89 const char* firmware_key_file) { |
| 90 FirmwareImage* image = NULL; | 90 FirmwareImage* image = NULL; |
| 91 uint8_t* firmware_blob = NULL; | 91 uint8_t* firmware_blob = NULL; |
| 92 uint64_t firmware_blob_len = 0; | 92 uint64_t firmware_blob_len = 0; |
| 93 | 93 |
| 94 image = GenerateTestFirmwareImage(algorithm, | 94 image = GenerateTestFirmwareImage(algorithm, |
| 95 firmware_sign_key, | 95 firmware_sign_key, |
| 96 firmware_key_version, | 96 firmware_key_version, |
| 97 firmware_version, | 97 firmware_version, |
| 98 firmware_len, | 98 firmware_len, |
| 99 root_key_file, | 99 root_key_file, |
| 100 firmware_key_file, | 100 firmware_key_file, |
| 101 'F'); | 101 'F'); |
| 102 firmware_blob = GetFirmwareBlob(image, &firmware_blob_len); | 102 firmware_blob = GetFirmwareBlob(image, &firmware_blob_len); |
| 103 FirmwareImageFree(image); | 103 FirmwareImageFree(image); |
| 104 return firmware_blob; | 104 return firmware_blob; |
| 105 } | 105 } |
| 106 | 106 |
| 107 uint8_t* GenerateRollbackTestFirmwareBlob(int firmware_key_version, | 107 uint8_t* GenerateRollbackTestVerificationBlob(int firmware_key_version, |
| 108 int firmware_version, | 108 int firmware_version) { |
| 109 int is_corrupt) { | |
| 110 FirmwareImage* image = NULL; | 109 FirmwareImage* image = NULL; |
| 111 uint64_t len; | 110 uint64_t len; |
| 112 uint8_t* firmware_blob = NULL; | 111 uint8_t* verification_blob = NULL; |
| 113 uint8_t* firmware_sign_key = NULL; | 112 uint8_t* firmware_sign_key = NULL; |
| 114 | 113 |
| 115 firmware_sign_key = BufferFromFile("testkeys/key_rsa1024.keyb", | 114 firmware_sign_key = BufferFromFile("testkeys/key_rsa1024.keyb", |
| 116 &len); | 115 &len); |
| 117 if (!firmware_sign_key) | 116 if (!firmware_sign_key) |
| 118 return NULL; | 117 return NULL; |
| 119 image = GenerateTestFirmwareImage(0, /* RSA1024/SHA1 */ | 118 image = GenerateTestFirmwareImage(0, /* RSA1024/SHA1 */ |
| 120 firmware_sign_key, | 119 firmware_sign_key, |
| 121 firmware_key_version, | 120 firmware_key_version, |
| 122 firmware_version, | 121 firmware_version, |
| 123 1, /* Firmware length. */ | 122 1, /* Firmware length. */ |
| 124 "testkeys/key_rsa8192.pem", | 123 "testkeys/key_rsa8192.pem", |
| 125 "testkeys/key_rsa1024.pem", | 124 "testkeys/key_rsa1024.pem", |
| 126 'F'); | 125 'F'); |
| 127 if (!image) | 126 if (!image) |
| 128 return NULL; | 127 return NULL; |
| 129 if (is_corrupt) { | 128 verification_blob = GetFirmwareBlob(image, &len); |
| 130 /* Invalidate image. */ | |
| 131 Memset(image->firmware_data, 'X', image->firmware_len); | |
| 132 } | |
| 133 | |
| 134 firmware_blob = GetFirmwareBlob(image, &len); | |
| 135 FirmwareImageFree(image); | 129 FirmwareImageFree(image); |
| 136 return firmware_blob; | 130 return verification_blob; |
| 137 } | 131 } |
| 138 | 132 |
| 139 | 133 |
| 140 KernelImage* GenerateTestKernelImage(int firmware_sign_algorithm, | 134 KernelImage* GenerateTestKernelImage(int firmware_sign_algorithm, |
| 141 int kernel_sign_algorithm, | 135 int kernel_sign_algorithm, |
| 142 const uint8_t* kernel_sign_key, | 136 const uint8_t* kernel_sign_key, |
| 143 int kernel_key_version, | 137 int kernel_key_version, |
| 144 int kernel_version, | 138 int kernel_version, |
| 145 uint64_t kernel_len, | 139 uint64_t kernel_len, |
| 146 const char* firmware_key_file, | 140 const char* firmware_key_file, |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 242 if (!image) | 236 if (!image) |
| 243 return NULL; | 237 return NULL; |
| 244 if (is_corrupt) { | 238 if (is_corrupt) { |
| 245 /* Invalidate image. */ | 239 /* Invalidate image. */ |
| 246 Memset(image->kernel_data, 'X', image->options.kernel_len); | 240 Memset(image->kernel_data, 'X', image->options.kernel_len); |
| 247 } | 241 } |
| 248 kernel_blob = GetKernelBlob(image, &len); | 242 kernel_blob = GetKernelBlob(image, &len); |
| 249 KernelImageFree(image); | 243 KernelImageFree(image); |
| 250 return kernel_blob; | 244 return kernel_blob; |
| 251 } | 245 } |
| OLD | NEW |