| Index: tests/vboot_common3_tests.c
|
| diff --git a/tests/vboot_common3_tests.c b/tests/vboot_common3_tests.c
|
| index ba0e058c93418160e22c0fffad737b8fd5d290c5..714d255e260658b0964c5a14e5d5b6faca8addc0 100644
|
| --- a/tests/vboot_common3_tests.c
|
| +++ b/tests/vboot_common3_tests.c
|
| @@ -40,73 +40,77 @@ static void KeyBlockVerifyTest(const VbPublicKey* public_key,
|
| hsize = (unsigned) hdr->key_block_size;
|
| h = (VbKeyBlockHeader*)Malloc(hsize + 1024);
|
|
|
| - TEST_EQ(KeyBlockVerify(hdr, hsize, NULL), 0,
|
| + TEST_EQ(KeyBlockVerify(hdr, hsize, NULL, 1), 0,
|
| "KeyBlockVerify() ok using checksum");
|
| - TEST_EQ(KeyBlockVerify(hdr, hsize, public_key), 0,
|
| + TEST_EQ(KeyBlockVerify(hdr, hsize, public_key, 0), 0,
|
| "KeyBlockVerify() ok using key");
|
| + TEST_NEQ(KeyBlockVerify(hdr, hsize, NULL, 0), 0,
|
| + "KeyBlockVerify() missing key");
|
|
|
| - TEST_NEQ(KeyBlockVerify(hdr, hsize - 1, NULL), 0, "KeyBlockVerify() size--");
|
| - TEST_EQ(KeyBlockVerify(hdr, hsize + 1, NULL), 0, "KeyBlockVerify() size++");
|
| + TEST_NEQ(KeyBlockVerify(hdr, hsize - 1, NULL, 1), 0,
|
| + "KeyBlockVerify() size--");
|
| + TEST_EQ(KeyBlockVerify(hdr, hsize + 1, NULL, 1), 0,
|
| + "KeyBlockVerify() size++");
|
|
|
| Memcpy(h, hdr, hsize);
|
| h->magic[0] &= 0x12;
|
| - TEST_NEQ(KeyBlockVerify(h, hsize, NULL), 0, "KeyBlockVerify() magic");
|
| + TEST_NEQ(KeyBlockVerify(h, hsize, NULL, 1), 0, "KeyBlockVerify() magic");
|
|
|
| /* Care about major version but not minor */
|
| Memcpy(h, hdr, hsize);
|
| h->header_version_major++;
|
| ReChecksumKeyBlock(h);
|
| - TEST_NEQ(KeyBlockVerify(h, hsize, NULL), 0, "KeyBlockVerify() major++");
|
| + TEST_NEQ(KeyBlockVerify(h, hsize, NULL, 1), 0, "KeyBlockVerify() major++");
|
|
|
| Memcpy(h, hdr, hsize);
|
| h->header_version_major--;
|
| ReChecksumKeyBlock(h);
|
| - TEST_NEQ(KeyBlockVerify(h, hsize, NULL), 0, "KeyBlockVerify() major--");
|
| + TEST_NEQ(KeyBlockVerify(h, hsize, NULL, 1), 0, "KeyBlockVerify() major--");
|
|
|
| Memcpy(h, hdr, hsize);
|
| h->header_version_minor++;
|
| ReChecksumKeyBlock(h);
|
| - TEST_EQ(KeyBlockVerify(h, hsize, NULL), 0, "KeyBlockVerify() minor++");
|
| + TEST_EQ(KeyBlockVerify(h, hsize, NULL, 1), 0, "KeyBlockVerify() minor++");
|
|
|
| Memcpy(h, hdr, hsize);
|
| h->header_version_minor--;
|
| ReChecksumKeyBlock(h);
|
| - TEST_EQ(KeyBlockVerify(h, hsize, NULL), 0, "KeyBlockVerify() minor--");
|
| + TEST_EQ(KeyBlockVerify(h, hsize, NULL, 1), 0, "KeyBlockVerify() minor--");
|
|
|
| /* Check hash */
|
| Memcpy(h, hdr, hsize);
|
| h->key_block_checksum.sig_offset = hsize;
|
| ReChecksumKeyBlock(h);
|
| - TEST_NEQ(KeyBlockVerify(h, hsize, NULL), 0,
|
| + TEST_NEQ(KeyBlockVerify(h, hsize, NULL, 1), 0,
|
| "KeyBlockVerify() checksum off end");
|
|
|
| Memcpy(h, hdr, hsize);
|
| h->key_block_checksum.sig_size /= 2;
|
| ReChecksumKeyBlock(h);
|
| - TEST_NEQ(KeyBlockVerify(h, hsize, NULL), 0,
|
| + TEST_NEQ(KeyBlockVerify(h, hsize, NULL, 1), 0,
|
| "KeyBlockVerify() checksum too small");
|
|
|
| Memcpy(h, hdr, hsize);
|
| GetPublicKeyData(&h->data_key)[0] ^= 0x34;
|
| - TEST_NEQ(KeyBlockVerify(h, hsize, NULL), 0,
|
| + TEST_NEQ(KeyBlockVerify(h, hsize, NULL, 1), 0,
|
| "KeyBlockVerify() checksum mismatch");
|
|
|
| /* Check signature */
|
| Memcpy(h, hdr, hsize);
|
| h->key_block_signature.sig_offset = hsize;
|
| ReChecksumKeyBlock(h);
|
| - TEST_NEQ(KeyBlockVerify(h, hsize, public_key), 0,
|
| + TEST_NEQ(KeyBlockVerify(h, hsize, public_key, 0), 0,
|
| "KeyBlockVerify() sig off end");
|
|
|
| Memcpy(h, hdr, hsize);
|
| h->key_block_signature.sig_size--;
|
| ReChecksumKeyBlock(h);
|
| - TEST_NEQ(KeyBlockVerify(h, hsize, public_key), 0,
|
| + TEST_NEQ(KeyBlockVerify(h, hsize, public_key, 0), 0,
|
| "KeyBlockVerify() sig too small");
|
|
|
| Memcpy(h, hdr, hsize);
|
| GetPublicKeyData(&h->data_key)[0] ^= 0x34;
|
| - TEST_NEQ(KeyBlockVerify(h, hsize, public_key), 0,
|
| + TEST_NEQ(KeyBlockVerify(h, hsize, public_key, 0), 0,
|
| "KeyBlockVerify() sig mismatch");
|
|
|
| /* Check that we signed header and data key */
|
| @@ -115,13 +119,13 @@ static void KeyBlockVerifyTest(const VbPublicKey* public_key,
|
| h->data_key.key_offset = 0;
|
| h->data_key.key_size = 0;
|
| ReChecksumKeyBlock(h);
|
| - TEST_NEQ(KeyBlockVerify(h, hsize, NULL), 0,
|
| + TEST_NEQ(KeyBlockVerify(h, hsize, NULL, 1), 0,
|
| "KeyBlockVerify() didn't sign header");
|
|
|
| Memcpy(h, hdr, hsize);
|
| h->data_key.key_offset = hsize;
|
| ReChecksumKeyBlock(h);
|
| - TEST_NEQ(KeyBlockVerify(h, hsize, NULL), 0,
|
| + TEST_NEQ(KeyBlockVerify(h, hsize, NULL, 1), 0,
|
| "KeyBlockVerify() data key off end");
|
|
|
| /* TODO: verify parser can support a bigger header (i.e., one where
|
|
|