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

Unified Diff: src/platform/vboot_reference/tests/firmware_image_tests.c

Issue 1280002: Move test utility functions to a common place. (Closed)
Patch Set: . Created 10 years, 9 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 side-by-side diff with in-line comments
Download patch
Index: src/platform/vboot_reference/tests/firmware_image_tests.c
diff --git a/src/platform/vboot_reference/tests/firmware_image_tests.c b/src/platform/vboot_reference/tests/firmware_image_tests.c
index b252735dec2576f3cbe0fe3041841f220d7f5de4..627b6349a3f2c10840cfc0e3e526d4dba16d9bea 100644
--- a/src/platform/vboot_reference/tests/firmware_image_tests.c
+++ b/src/platform/vboot_reference/tests/firmware_image_tests.c
@@ -11,146 +11,44 @@
#include "file_keys.h"
#include "firmware_image.h"
#include "rsa_utility.h"
+#include "test_common.h"
#include "utility.h"
-#include "rollback_index.h"
-
-/* ANSI Color coding sequences. */
-#define COL_GREEN "\e[1;32m"
-#define COL_RED "\e[0;31m"
-#define COL_STOP "\e[m"
-
-int TEST_EQ(int result, int expected_result, char* testname) {
- if (result == expected_result) {
- fprintf(stderr, "%s Test " COL_GREEN " PASSED\n" COL_STOP, testname);
- return 1;
- } else {
- fprintf(stderr, "%s Test " COL_RED " FAILED\n" COL_STOP, testname);
- return 0;
- }
-}
-
-FirmwareImage* GenerateTestFirmwareImage(int algorithm,
- uint8_t* firmware_sign_key,
- int firmware_key_version,
- int firmware_version,
- int firmware_len,
- const char* root_key_file,
- const char* firmware_key_file) {
- FirmwareImage* image = FirmwareImageNew();
-
- Memcpy(image->magic, FIRMWARE_MAGIC, FIRMWARE_MAGIC_SIZE);
- image->firmware_sign_algorithm = algorithm;
- image->firmware_sign_key = (uint8_t*) Malloc(
- RSAProcessedKeySize(image->firmware_sign_algorithm));
- Memcpy(image->firmware_sign_key, firmware_sign_key,
- RSAProcessedKeySize(image->firmware_sign_algorithm));
- image->firmware_key_version = firmware_key_version;
-
- /* Update correct header length. */
- image->header_len = GetFirmwareHeaderLen(image);
-
- /* Calculate SHA-512 digest on header and populate header_checksum. */
- CalculateFirmwareHeaderChecksum(image, image->header_checksum);
-
- /* Populate firmware and preamble with dummy data. */
- image->firmware_version = firmware_version;
- image->firmware_len = firmware_len;
- image->preamble_signature = image->firmware_signature = NULL;
- Memset(image->preamble, 'P', FIRMWARE_PREAMBLE_SIZE);
- image->firmware_data = Malloc(image->firmware_len);
- Memset(image->firmware_data, 'F', image->firmware_len);
-
- /* Generate and populate signatures. */
- if (!AddFirmwareKeySignature(image, root_key_file)) {
- fprintf(stderr, "Couldn't create key signature.\n");
- FirmwareImageFree(image);
- return NULL;
- }
-
- if (!AddFirmwareSignature(image, firmware_key_file)) {
- fprintf(stderr, "Couldn't create firmware and preamble signature.\n");
- FirmwareImageFree(image);
- return NULL;
- }
- return image;
-}
-
-#define DEV_MODE_ENABLED 1
-#define DEV_MODE_DISABLED 0
/* Normal Firmware Blob Verification Tests. */
-int VerifyFirmwareTest(uint8_t* firmware_blob, uint8_t* root_key_blob) {
- int success = 1;
- if (!TEST_EQ(VerifyFirmware(root_key_blob, firmware_blob, DEV_MODE_ENABLED),
- VERIFY_FIRMWARE_SUCCESS,
- "Normal Firmware Blob Verification (Dev Mode)"))
- success = 0;
-
- if (!TEST_EQ(VerifyFirmware(root_key_blob, firmware_blob, DEV_MODE_DISABLED),
- VERIFY_FIRMWARE_SUCCESS,
- "Normal Firmware Blob Verification (Trusted)"))
- success = 0;
- return success;
+void VerifyFirmwareTest(uint8_t* firmware_blob, uint8_t* root_key_blob) {
+ TEST_EQ(VerifyFirmware(root_key_blob, firmware_blob),
+ VERIFY_FIRMWARE_SUCCESS,
+ "Normal Firmware Blob Verification");
}
/* Normal FirmwareImage Verification Tests. */
-int VerifyFirmwareImageTest(FirmwareImage* image,
- RSAPublicKey* root_key) {
- int success = 1;
- if (!TEST_EQ(VerifyFirmwareImage(root_key, image, DEV_MODE_ENABLED),
- VERIFY_FIRMWARE_SUCCESS,
- "Normal FirmwareImage Verification (Dev Mode)"))
- success = 0;
-
- if (!TEST_EQ(VerifyFirmwareImage(root_key, image, DEV_MODE_DISABLED),
- VERIFY_FIRMWARE_SUCCESS,
- "Normal FirmwareImage Verification (Trusted)"))
- success = 0;
- return success;
+void VerifyFirmwareImageTest(FirmwareImage* image,
+ RSAPublicKey* root_key) {
+ TEST_EQ(VerifyFirmwareImage(root_key, image),
+ VERIFY_FIRMWARE_SUCCESS,
+ "Normal FirmwareImage Verification");
}
/* Tampered FirmwareImage Verification Tests. */
-int VerifyFirmwareImageTamperTest(FirmwareImage* image,
- RSAPublicKey* root_key) {
- int success = 1;
- fprintf(stderr, "[[Tampering with firmware preamble....]]\n");
+void VerifyFirmwareImageTamperTest(FirmwareImage* image,
+ RSAPublicKey* root_key) {
image->firmware_version = 0;
- if (!TEST_EQ(VerifyFirmwareImage(root_key, image, DEV_MODE_ENABLED),
- VERIFY_FIRMWARE_PREAMBLE_SIGNATURE_FAILED,
- "FirmwareImage Preamble Tamper Verification (Dev Mode)"))
- success = 0;
-
- if (!TEST_EQ(VerifyFirmwareImage(root_key, image, DEV_MODE_DISABLED),
- VERIFY_FIRMWARE_PREAMBLE_SIGNATURE_FAILED,
- "FirmwareImage Preamble Tamper Verification (Trusted)"))
- success = 0;
+ TEST_EQ(VerifyFirmwareImage(root_key, image),
+ VERIFY_FIRMWARE_PREAMBLE_SIGNATURE_FAILED,
+ "FirmwareImage Preamble Tamper Verification");
image->firmware_version = 1;
image->firmware_data[0] = 'T';
- if (!TEST_EQ(VerifyFirmwareImage(root_key, image, DEV_MODE_ENABLED),
- VERIFY_FIRMWARE_SIGNATURE_FAILED,
- "FirmwareImage Tamper Verification (Dev Mode)"))
- success = 0;
- if (!TEST_EQ(VerifyFirmwareImage(root_key, image, DEV_MODE_DISABLED),
- VERIFY_FIRMWARE_SIGNATURE_FAILED,
- "FirmwareImage Tamper Verification (Trusted)"))
- success = 0;
+ TEST_EQ(VerifyFirmwareImage(root_key, image),
+ VERIFY_FIRMWARE_SIGNATURE_FAILED,
+ "FirmwareImage Data Tamper Verification");
image->firmware_data[0] = 'F';
-
- fprintf(stderr, "[[Tampering with root key signature...]]\n");
image->firmware_key_signature[0] = 0xFF;
image->firmware_key_signature[1] = 0x00;
- if (!TEST_EQ(VerifyFirmwareImage(root_key, image, DEV_MODE_ENABLED),
- VERIFY_FIRMWARE_SUCCESS,
- "FirmwareImage Root Signature Tamper Verification (Dev Mode)"))
- success = 0;
- if (!TEST_EQ(VerifyFirmwareImage(root_key, image, DEV_MODE_DISABLED),
- VERIFY_FIRMWARE_ROOT_SIGNATURE_FAILED,
- "FirmwareImage Root Signature Tamper Verification (Trusted)"))
- success = 0;
-
- return success;
+ TEST_EQ(VerifyFirmwareImage(root_key, image),
+ VERIFY_FIRMWARE_ROOT_SIGNATURE_FAILED,
+ "FirmwareImage Root Signature Tamper Verification");
}
int main(int argc, char* argv[]) {
@@ -165,7 +63,6 @@ int main(int argc, char* argv[]) {
RSAPublicKey* root_key_pub = NULL;
int error_code = 0;
int algorithm;
- SetupTPM();
if(argc != 6) {
fprintf(stderr, "Usage: %s <algorithm> <root key> <processed root pubkey>"
" <signing key> <processed signing key>\n", argv[0]);
@@ -194,13 +91,13 @@ int main(int argc, char* argv[]) {
firmware_blob = GetFirmwareBlob(image, &firmware_blob_len);
/* Test Firmware blob verify operations. */
- if (!VerifyFirmwareTest(firmware_blob, root_key_blob))
- error_code = 255;
+ VerifyFirmwareTest(firmware_blob, root_key_blob);
/* Test FirmwareImage verify operations. */
- if (!VerifyFirmwareImageTest(image, root_key_pub))
- error_code = 255;
- if (!VerifyFirmwareImageTamperTest(image, root_key_pub))
+ VerifyFirmwareImageTest(image, root_key_pub);
+ VerifyFirmwareImageTamperTest(image, root_key_pub);
+
+ if (!gTestSuccess)
error_code = 255;
failure:
« no previous file with comments | « src/platform/vboot_reference/tests/Makefile ('k') | src/platform/vboot_reference/tests/firmware_rollback_tests.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698