Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(196)

Side by Side Diff: tests/vboot_common3_tests.c

Issue 3027009: Added size param to VerifyData() (Closed) Base URL: ssh://gitrw.chromium.org/vboot_reference.git
Patch Set: Created 10 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « tests/vboot_common2_tests.c ('k') | utility/vbutil_firmware.c » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
149 VbFirmwarePreambleHeader *hdr; 149 VbFirmwarePreambleHeader *hdr;
150 VbFirmwarePreambleHeader *h; 150 VbFirmwarePreambleHeader *h;
151 RSAPublicKey* rsa; 151 RSAPublicKey* rsa;
152 unsigned hsize; 152 unsigned hsize;
153 153
154 /* Create a dummy signature */ 154 /* Create a dummy signature */
155 VbSignature *body_sig = SignatureAlloc(56, 78); 155 VbSignature *body_sig = SignatureAlloc(56, 78);
156 156
157 rsa = PublicKeyToRSA(public_key); 157 rsa = PublicKeyToRSA(public_key);
158 hdr = CreateFirmwarePreamble(0x1234, kernel_subkey, body_sig, private_key); 158 hdr = CreateFirmwarePreamble(0x1234, kernel_subkey, body_sig, private_key);
159 TEST_NEQ(hdr && rsa, 0, "VerifyFirmwarePreamble2() prerequisites"); 159 TEST_NEQ(hdr && rsa, 0, "VerifyFirmwarePreamble() prerequisites");
160 if (!hdr) 160 if (!hdr)
161 return; 161 return;
162 hsize = (unsigned) hdr->preamble_size; 162 hsize = (unsigned) hdr->preamble_size;
163 h = (VbFirmwarePreambleHeader*)Malloc(hsize + 16384); 163 h = (VbFirmwarePreambleHeader*)Malloc(hsize + 16384);
164 164
165 TEST_EQ(VerifyFirmwarePreamble2(hdr, hsize, rsa), 0, 165 TEST_EQ(VerifyFirmwarePreamble(hdr, hsize, rsa), 0,
166 "VerifyFirmwarePreamble2() ok using key"); 166 "VerifyFirmwarePreamble() ok using key");
167 TEST_NEQ(VerifyFirmwarePreamble2(hdr, hsize - 1, rsa), 0, 167 TEST_NEQ(VerifyFirmwarePreamble(hdr, hsize - 1, rsa), 0,
168 "VerifyFirmwarePreamble2() size--"); 168 "VerifyFirmwarePreamble() size--");
169 TEST_EQ(VerifyFirmwarePreamble2(hdr, hsize + 1, rsa), 0, 169 TEST_EQ(VerifyFirmwarePreamble(hdr, hsize + 1, rsa), 0,
170 "VerifyFirmwarePreamble2() size++"); 170 "VerifyFirmwarePreamble() size++");
171 171
172 /* Care about major version but not minor */ 172 /* Care about major version but not minor */
173 Memcpy(h, hdr, hsize); 173 Memcpy(h, hdr, hsize);
174 h->header_version_major++; 174 h->header_version_major++;
175 ReSignFirmwarePreamble(h, private_key); 175 ReSignFirmwarePreamble(h, private_key);
176 TEST_NEQ(VerifyFirmwarePreamble2(h, hsize, rsa), 0, 176 TEST_NEQ(VerifyFirmwarePreamble(h, hsize, rsa), 0,
177 "VerifyFirmwarePreamble2() major++"); 177 "VerifyFirmwarePreamble() major++");
178 178
179 Memcpy(h, hdr, hsize); 179 Memcpy(h, hdr, hsize);
180 h->header_version_major--; 180 h->header_version_major--;
181 ReSignFirmwarePreamble(h, private_key); 181 ReSignFirmwarePreamble(h, private_key);
182 TEST_NEQ(VerifyFirmwarePreamble2(h, hsize, rsa), 0, 182 TEST_NEQ(VerifyFirmwarePreamble(h, hsize, rsa), 0,
183 "VerifyFirmwarePreamble2() major--"); 183 "VerifyFirmwarePreamble() major--");
184 184
185 Memcpy(h, hdr, hsize); 185 Memcpy(h, hdr, hsize);
186 h->header_version_minor++; 186 h->header_version_minor++;
187 ReSignFirmwarePreamble(h, private_key); 187 ReSignFirmwarePreamble(h, private_key);
188 TEST_EQ(VerifyFirmwarePreamble2(h, hsize, rsa), 0, 188 TEST_EQ(VerifyFirmwarePreamble(h, hsize, rsa), 0,
189 "VerifyFirmwarePreamble2() minor++"); 189 "VerifyFirmwarePreamble() minor++");
190 190
191 Memcpy(h, hdr, hsize); 191 Memcpy(h, hdr, hsize);
192 h->header_version_minor--; 192 h->header_version_minor--;
193 ReSignFirmwarePreamble(h, private_key); 193 ReSignFirmwarePreamble(h, private_key);
194 TEST_EQ(VerifyFirmwarePreamble2(h, hsize, rsa), 0, 194 TEST_EQ(VerifyFirmwarePreamble(h, hsize, rsa), 0,
195 "VerifyFirmwarePreamble2() minor--"); 195 "VerifyFirmwarePreamble() minor--");
196 196
197 /* Check signature */ 197 /* Check signature */
198 Memcpy(h, hdr, hsize); 198 Memcpy(h, hdr, hsize);
199 h->preamble_signature.sig_offset = hsize; 199 h->preamble_signature.sig_offset = hsize;
200 ReSignFirmwarePreamble(h, private_key); 200 ReSignFirmwarePreamble(h, private_key);
201 TEST_NEQ(VerifyFirmwarePreamble2(h, hsize, rsa), 0, 201 TEST_NEQ(VerifyFirmwarePreamble(h, hsize, rsa), 0,
202 "VerifyFirmwarePreamble2() sig off end"); 202 "VerifyFirmwarePreamble() sig off end");
203 203
204 Memcpy(h, hdr, hsize); 204 Memcpy(h, hdr, hsize);
205 h->preamble_signature.sig_size--; 205 h->preamble_signature.sig_size--;
206 ReSignFirmwarePreamble(h, private_key); 206 ReSignFirmwarePreamble(h, private_key);
207 TEST_NEQ(VerifyFirmwarePreamble2(h, hsize, rsa), 0, 207 TEST_NEQ(VerifyFirmwarePreamble(h, hsize, rsa), 0,
208 "VerifyFirmwarePreamble2() sig too small"); 208 "VerifyFirmwarePreamble() sig too small");
209 209
210 Memcpy(h, hdr, hsize); 210 Memcpy(h, hdr, hsize);
211 GetPublicKeyData(&h->kernel_subkey)[0] ^= 0x34; 211 GetPublicKeyData(&h->kernel_subkey)[0] ^= 0x34;
212 TEST_NEQ(VerifyFirmwarePreamble2(h, hsize, rsa), 0, 212 TEST_NEQ(VerifyFirmwarePreamble(h, hsize, rsa), 0,
213 "VerifyFirmwarePreamble2() sig mismatch"); 213 "VerifyFirmwarePreamble() sig mismatch");
214 214
215 /* Check that we signed header, kernel subkey, and body sig */ 215 /* Check that we signed header, kernel subkey, and body sig */
216 Memcpy(h, hdr, hsize); 216 Memcpy(h, hdr, hsize);
217 h->preamble_signature.data_size = 4; 217 h->preamble_signature.data_size = 4;
218 h->kernel_subkey.key_offset = 0; 218 h->kernel_subkey.key_offset = 0;
219 h->kernel_subkey.key_size = 0; 219 h->kernel_subkey.key_size = 0;
220 h->body_signature.sig_offset = 0; 220 h->body_signature.sig_offset = 0;
221 h->body_signature.sig_size = 0; 221 h->body_signature.sig_size = 0;
222 ReSignFirmwarePreamble(h, private_key); 222 ReSignFirmwarePreamble(h, private_key);
223 TEST_NEQ(VerifyFirmwarePreamble2(h, hsize, rsa), 0, 223 TEST_NEQ(VerifyFirmwarePreamble(h, hsize, rsa), 0,
224 "VerifyFirmwarePreamble2() didn't sign header"); 224 "VerifyFirmwarePreamble() didn't sign header");
225 225
226 Memcpy(h, hdr, hsize); 226 Memcpy(h, hdr, hsize);
227 h->kernel_subkey.key_offset = hsize; 227 h->kernel_subkey.key_offset = hsize;
228 ReSignFirmwarePreamble(h, private_key); 228 ReSignFirmwarePreamble(h, private_key);
229 TEST_NEQ(VerifyFirmwarePreamble2(h, hsize, rsa), 0, 229 TEST_NEQ(VerifyFirmwarePreamble(h, hsize, rsa), 0,
230 "VerifyFirmwarePreamble2() kernel subkey off end"); 230 "VerifyFirmwarePreamble() kernel subkey off end");
231 231
232 Memcpy(h, hdr, hsize); 232 Memcpy(h, hdr, hsize);
233 h->body_signature.sig_offset = hsize; 233 h->body_signature.sig_offset = hsize;
234 ReSignFirmwarePreamble(h, private_key); 234 ReSignFirmwarePreamble(h, private_key);
235 TEST_NEQ(VerifyFirmwarePreamble2(h, hsize, rsa), 0, 235 TEST_NEQ(VerifyFirmwarePreamble(h, hsize, rsa), 0,
236 "VerifyFirmwarePreamble2() body sig off end"); 236 "VerifyFirmwarePreamble() body sig off end");
237 237
238 /* TODO: verify parser can support a bigger header. */ 238 /* TODO: verify parser can support a bigger header. */
239 239
240 Free(h); 240 Free(h);
241 RSAPublicKeyFree(rsa); 241 RSAPublicKeyFree(rsa);
242 Free(hdr); 242 Free(hdr);
243 } 243 }
244 244
245 245
246 int main(int argc, char* argv[]) { 246 int main(int argc, char* argv[]) {
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
288 288
289 if (signing_public_key) 289 if (signing_public_key)
290 Free(signing_public_key); 290 Free(signing_public_key);
291 if (signing_private_key) 291 if (signing_private_key)
292 Free(signing_private_key); 292 Free(signing_private_key);
293 if (data_public_key) 293 if (data_public_key)
294 Free(data_public_key); 294 Free(data_public_key);
295 295
296 return error_code; 296 return error_code;
297 } 297 }
OLDNEW
« no previous file with comments | « tests/vboot_common2_tests.c ('k') | utility/vbutil_firmware.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698