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 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
84 VbKernelPreambleHeader *hdr; | 84 VbKernelPreambleHeader *hdr; |
85 VbKernelPreambleHeader *h; | 85 VbKernelPreambleHeader *h; |
86 RSAPublicKey* rsa; | 86 RSAPublicKey* rsa; |
87 uint64_t hsize; | 87 uint64_t hsize; |
88 | 88 |
89 /* Create a dummy signature */ | 89 /* Create a dummy signature */ |
90 VbSignature *body_sig = SignatureAlloc(56, 78); | 90 VbSignature *body_sig = SignatureAlloc(56, 78); |
91 | 91 |
92 rsa = PublicKeyToRSA(public_key); | 92 rsa = PublicKeyToRSA(public_key); |
93 hdr = CreateKernelPreamble(0x1234, 0x100000, 0x300000, 0x4000, body_sig, | 93 hdr = CreateKernelPreamble(0x1234, 0x100000, 0x300000, 0x4000, body_sig, |
94 private_key); | 94 0, private_key); |
95 TEST_NEQ(hdr && rsa, 0, "VerifyKernelPreamble2() prerequisites"); | 95 TEST_NEQ(hdr && rsa, 0, "VerifyKernelPreamble2() prerequisites"); |
96 if (!hdr) | 96 if (!hdr) |
97 return; | 97 return; |
98 hsize = hdr->preamble_size; | 98 hsize = hdr->preamble_size; |
99 h = (VbKernelPreambleHeader*)Malloc(hsize + 16384); | 99 h = (VbKernelPreambleHeader*)Malloc(hsize + 16384); |
100 | 100 |
101 TEST_EQ(VerifyKernelPreamble2(hdr, hsize, rsa), 0, | 101 TEST_EQ(VerifyKernelPreamble2(hdr, hsize, rsa), 0, |
102 "VerifyKernelPreamble2() ok using key"); | 102 "VerifyKernelPreamble2() ok using key"); |
103 TEST_NEQ(VerifyKernelPreamble2(hdr, hsize-1, rsa), 0, | 103 TEST_NEQ(VerifyKernelPreamble2(hdr, hsize - 1, rsa), 0, |
104 "VerifyKernelPreamble2() size"); | 104 "VerifyKernelPreamble2() size--"); |
| 105 TEST_EQ(VerifyKernelPreamble2(hdr, hsize + 1, rsa), 0, |
| 106 "VerifyKernelPreamble2() size++"); |
105 | 107 |
106 /* Care about major version but not minor */ | 108 /* Care about major version but not minor */ |
107 Memcpy(h, hdr, hsize); | 109 Memcpy(h, hdr, hsize); |
108 h->header_version_major++; | 110 h->header_version_major++; |
109 ReSignKernelPreamble(h, private_key); | 111 ReSignKernelPreamble(h, private_key); |
110 TEST_NEQ(VerifyKernelPreamble2(h, hsize, rsa), 0, | 112 TEST_NEQ(VerifyKernelPreamble2(h, hsize, rsa), 0, |
111 "VerifyKernelPreamble2() major++"); | 113 "VerifyKernelPreamble2() major++"); |
112 | 114 |
113 Memcpy(h, hdr, hsize); | 115 Memcpy(h, hdr, hsize); |
114 h->header_version_major--; | 116 h->header_version_major--; |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
184 | 186 |
185 /* Read verification keys and create a test image. */ | 187 /* Read verification keys and create a test image. */ |
186 key_algorithm = atoi(argv[1]); | 188 key_algorithm = atoi(argv[1]); |
187 | 189 |
188 private_key = PrivateKeyRead(argv[2], key_algorithm); | 190 private_key = PrivateKeyRead(argv[2], key_algorithm); |
189 if (!private_key) { | 191 if (!private_key) { |
190 fprintf(stderr, "Error reading private_key"); | 192 fprintf(stderr, "Error reading private_key"); |
191 return 1; | 193 return 1; |
192 } | 194 } |
193 | 195 |
194 public_key = PublicKeyRead(argv[3], key_algorithm, 1); | 196 public_key = PublicKeyReadKeyb(argv[3], key_algorithm, 1); |
195 if (!public_key) { | 197 if (!public_key) { |
196 fprintf(stderr, "Error reading public_key"); | 198 fprintf(stderr, "Error reading public_key"); |
197 return 1; | 199 return 1; |
198 } | 200 } |
199 | 201 |
200 VerifyPublicKeyToRSA(public_key); | 202 VerifyPublicKeyToRSA(public_key); |
201 VerifyDataTest(public_key, private_key); | 203 VerifyDataTest(public_key, private_key); |
202 VerifyKernelPreambleTest(public_key, private_key); | 204 VerifyKernelPreambleTest(public_key, private_key); |
203 | 205 |
204 if (public_key) | 206 if (public_key) |
205 Free(public_key); | 207 Free(public_key); |
206 if (private_key) | 208 if (private_key) |
207 Free(private_key); | 209 Free(private_key); |
208 | 210 |
209 return error_code; | 211 return error_code; |
210 } | 212 } |
OLD | NEW |