summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRandall Spangler <rspangler@chromium.org>2013-01-25 10:14:10 -0800
committerChromeBot <chrome-bot@google.com>2013-01-25 17:24:57 -0800
commit8fd1aaf66e2b4796d3d0b117ac3aa7860c8de5fd (patch)
treeb402da24fa798f29d520e2177ebe9e62d085d407
parenta2db67d204c0dd3d152ff54958bf42c5dbe394ff (diff)
downloadvboot-8fd1aaf66e2b4796d3d0b117ac3aa7860c8de5fd.tar.gz
Remove dead ECPreamble code
BUG=none BRANCH=none TEST=make runtests Change-Id: I99d8124a7d5a3a644f0d8d64ad36f51e78d851e5 Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/42018 Reviewed-by: Bill Richardson <wfrichar@chromium.org>
-rw-r--r--firmware/include/vboot_struct.h46
-rw-r--r--host/include/host_common.h64
-rw-r--r--host/lib/host_common.c274
3 files changed, 140 insertions, 244 deletions
diff --git a/firmware/include/vboot_struct.h b/firmware/include/vboot_struct.h
index d98ba114..8023cdc9 100644
--- a/firmware/include/vboot_struct.h
+++ b/firmware/include/vboot_struct.h
@@ -94,52 +94,6 @@ typedef struct VbKeyBlockHeader {
/****************************************************************************/
-#define EC_PREAMBLE_HEADER_VERSION_MAJOR 1
-#define EC_PREAMBLE_HEADER_VERSION_MINOR 0
-
-/* Flags for VbECPreambleHeader.flags */
-
-/*
- * Use the normal boot path from the read-only firmware, instead of verifying
- * the body signature.
- */
-#define VB_EC_PREAMBLE_USE_RO_NORMAL 0x00000001
-
-/*
- * Premable block for EC rewritable firmware, version 1.0.
- *
- * The firmware preamble header should be followed by:
- * 1) The signature data for the firmware body, pointed to by
- * body_signature.sig_offset.
- * 2) The signature data for (header + body signature data), pointed
- * to by preamble_signature.sig_offset.
- */
-typedef struct VbECPreambleHeader {
- /*
- * Size of this preamble, including keys, signatures, and padding, in
- * bytes
- */
- uint64_t preamble_size;
- /* Signature for this preamble (header + * body signature) */
- VbSignature preamble_signature;
- /* Version of this header format */
- uint32_t header_version_major;
- /* Version of this header format */
- uint32_t header_version_minor;
- /* Firmware version */
- uint64_t firmware_version;
- /* Digest for the firmware body */
- VbSignature body_digest;
- /* Flags; see VB_EC_PREAMBLE_* */
- uint32_t flags;
- /* Human-readable ASCII, null-padded */
- char name[128];
-} __attribute__((packed)) VbECPreambleHeader;
-
-#define EXPECTED_VB_EC_PREAMBLE_HEADER1_0_SIZE 76
-
-/****************************************************************************/
-
#define FIRMWARE_PREAMBLE_HEADER_VERSION_MAJOR 2
#define FIRMWARE_PREAMBLE_HEADER_VERSION_MINOR 1
diff --git a/host/include/host_common.h b/host/include/host_common.h
index 6fa8b3e3..40ce212a 100644
--- a/host/include/host_common.h
+++ b/host/include/host_common.h
@@ -1,4 +1,4 @@
-/* Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
+/* Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
@@ -8,8 +8,10 @@
#ifndef VBOOT_REFERENCE_HOST_COMMON_H_
#define VBOOT_REFERENCE_HOST_COMMON_H_
-/* Host is allowed direct use of stdlib funcs such as malloc() and free(),
- * since it's using the stub implementation from firmware/lib/stub. */
+/*
+ * Host is allowed direct use of stdlib funcs such as malloc() and free(),
+ * since it's using the stub implementation from firmware/lib/stub.
+ */
#define _STUB_IMPLEMENTATION_
#include "cryptolib.h"
@@ -21,42 +23,34 @@
#include "vboot_api.h"
#include "vboot_struct.h"
-
-/* Creates an EC preamble, signed with [signing_key].
- * Caller owns the returned pointer, and must free it with Free().
+/**
+ * Create a firmware preamble, signed with [signing_key].
*
- * Returns NULL if error. */
-VbECPreambleHeader* CreateECPreamble(
- uint64_t firmware_version,
- const VbSignature* body_signature,
- const VbPrivateKey* signing_key,
- uint32_t flags,
- const char* name);
-
-
-/* Creates a firmware preamble, signed with [signing_key].
* Caller owns the returned pointer, and must free it with Free().
*
- * Returns NULL if error. */
-VbFirmwarePreambleHeader* CreateFirmwarePreamble(
- uint64_t firmware_version,
- const VbPublicKey* kernel_subkey,
- const VbSignature* body_signature,
- const VbPrivateKey* signing_key,
- uint32_t flags);
-
-
-/* Creates a kernel preamble, signed with [signing_key].
+ * Returns NULL if error.
+ */
+VbFirmwarePreambleHeader *CreateFirmwarePreamble(
+ uint64_t firmware_version,
+ const VbPublicKey *kernel_subkey,
+ const VbSignature *body_signature,
+ const VbPrivateKey *signing_key,
+ uint32_t flags);
+
+/**
+ * Create a kernel preamble, signed with [signing_key].
+ *
* Caller owns the returned pointer, and must free it with Free().
*
- * Returns NULL if error. */
-VbKernelPreambleHeader* CreateKernelPreamble(
- uint64_t kernel_version,
- uint64_t body_load_address,
- uint64_t bootloader_address,
- uint64_t bootloader_size,
- const VbSignature* body_signature,
- uint64_t desired_size,
- const VbPrivateKey* signing_key);
+ * Returns NULL if error.
+ */
+VbKernelPreambleHeader *CreateKernelPreamble(
+ uint64_t kernel_version,
+ uint64_t body_load_address,
+ uint64_t bootloader_address,
+ uint64_t bootloader_size,
+ const VbSignature *body_signature,
+ uint64_t desired_size,
+ const VbPrivateKey *signing_key);
#endif /* VBOOT_REFERENCE_HOST_COMMON_H_ */
diff --git a/host/lib/host_common.c b/host/lib/host_common.c
index 3aceddd6..9f6121de 100644
--- a/host/lib/host_common.c
+++ b/host/lib/host_common.c
@@ -1,179 +1,127 @@
-/* Copyright (c) 2011 The Chromium OS Authors. All rights reserved.
+/* Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
* Host functions for verified boot.
+ *
+ * TODO: change all 'return 0', 'return 1' into meaningful return codes.
*/
-/* TODO: change all 'return 0', 'return 1' into meaningful return codes */
#include <string.h>
#include "host_common.h"
-
#include "cryptolib.h"
#include "utility.h"
#include "vboot_common.h"
-VbECPreambleHeader* CreateECPreamble(
- uint64_t firmware_version,
- const VbSignature* body_digest,
- const VbPrivateKey* signing_key,
- uint32_t flags,
- const char* name) {
-
- VbECPreambleHeader* h;
- uint64_t signed_size = (sizeof(VbECPreambleHeader) + body_digest->sig_size);
- uint64_t block_size = signed_size + siglen_map[signing_key->algorithm];
- uint8_t* body_digest_dest;
- uint8_t* block_sig_dest;
- VbSignature *sigtmp;
-
- /* Allocate key block */
- h = (VbECPreambleHeader*)malloc(block_size);
- if (!h)
- return NULL;
- Memset(h, 0, block_size);
- body_digest_dest = (uint8_t*)(h + 1);
- block_sig_dest = body_digest_dest + body_digest->sig_size;
-
- h->header_version_major = EC_PREAMBLE_HEADER_VERSION_MAJOR;
- h->header_version_minor = EC_PREAMBLE_HEADER_VERSION_MINOR;
- h->preamble_size = block_size;
- h->firmware_version = firmware_version;
- h->flags = flags;
- if (name)
- strncpy(h->name, name, sizeof(h->name));
-
- /* Copy body hash */
- SignatureInit(&h->body_digest, body_digest_dest,
- body_digest->sig_size, 0);
- SignatureCopy(&h->body_digest, body_digest);
-
- /* Set up signature struct so we can calculate the signature */
- SignatureInit(&h->preamble_signature, block_sig_dest,
- siglen_map[signing_key->algorithm], signed_size);
-
- /* Calculate signature */
- sigtmp = CalculateSignature((uint8_t*)h, signed_size, signing_key);
- SignatureCopy(&h->preamble_signature, sigtmp);
- free(sigtmp);
-
- /* Return the header */
- return h;
-}
-
-VbFirmwarePreambleHeader* CreateFirmwarePreamble(
- uint64_t firmware_version,
- const VbPublicKey* kernel_subkey,
- const VbSignature* body_signature,
- const VbPrivateKey* signing_key,
- uint32_t flags) {
-
- VbFirmwarePreambleHeader* h;
- uint64_t signed_size = (sizeof(VbFirmwarePreambleHeader) +
- kernel_subkey->key_size +
- body_signature->sig_size);
- uint64_t block_size = signed_size + siglen_map[signing_key->algorithm];
- uint8_t* kernel_subkey_dest;
- uint8_t* body_sig_dest;
- uint8_t* block_sig_dest;
- VbSignature *sigtmp;
-
- /* Allocate key block */
- h = (VbFirmwarePreambleHeader*)malloc(block_size);
- if (!h)
- return NULL;
- Memset(h, 0, block_size);
- kernel_subkey_dest = (uint8_t*)(h + 1);
- body_sig_dest = kernel_subkey_dest + kernel_subkey->key_size;
- block_sig_dest = body_sig_dest + body_signature->sig_size;
-
- h->header_version_major = FIRMWARE_PREAMBLE_HEADER_VERSION_MAJOR;
- h->header_version_minor = FIRMWARE_PREAMBLE_HEADER_VERSION_MINOR;
- h->preamble_size = block_size;
- h->firmware_version = firmware_version;
- h->flags = flags;
-
- /* Copy data key */
- PublicKeyInit(&h->kernel_subkey, kernel_subkey_dest,
- kernel_subkey->key_size);
- PublicKeyCopy(&h->kernel_subkey, kernel_subkey);
-
- /* Copy body signature */
- SignatureInit(&h->body_signature, body_sig_dest,
- body_signature->sig_size, 0);
- SignatureCopy(&h->body_signature, body_signature);
-
- /* Set up signature struct so we can calculate the signature */
- SignatureInit(&h->preamble_signature, block_sig_dest,
- siglen_map[signing_key->algorithm], signed_size);
-
- /* Calculate signature */
- sigtmp = CalculateSignature((uint8_t*)h, signed_size, signing_key);
- SignatureCopy(&h->preamble_signature, sigtmp);
- free(sigtmp);
-
- /* Return the header */
- return h;
+VbFirmwarePreambleHeader *CreateFirmwarePreamble(
+ uint64_t firmware_version,
+ const VbPublicKey *kernel_subkey,
+ const VbSignature *body_signature,
+ const VbPrivateKey *signing_key,
+ uint32_t flags)
+{
+ VbFirmwarePreambleHeader *h;
+ uint64_t signed_size = (sizeof(VbFirmwarePreambleHeader) +
+ kernel_subkey->key_size +
+ body_signature->sig_size);
+ uint64_t block_size = signed_size + siglen_map[signing_key->algorithm];
+ uint8_t *kernel_subkey_dest;
+ uint8_t *body_sig_dest;
+ uint8_t *block_sig_dest;
+ VbSignature *sigtmp;
+
+ /* Allocate key block */
+ h = (VbFirmwarePreambleHeader *)malloc(block_size);
+ if (!h)
+ return NULL;
+
+ Memset(h, 0, block_size);
+ kernel_subkey_dest = (uint8_t *)(h + 1);
+ body_sig_dest = kernel_subkey_dest + kernel_subkey->key_size;
+ block_sig_dest = body_sig_dest + body_signature->sig_size;
+
+ h->header_version_major = FIRMWARE_PREAMBLE_HEADER_VERSION_MAJOR;
+ h->header_version_minor = FIRMWARE_PREAMBLE_HEADER_VERSION_MINOR;
+ h->preamble_size = block_size;
+ h->firmware_version = firmware_version;
+ h->flags = flags;
+
+ /* Copy data key */
+ PublicKeyInit(&h->kernel_subkey, kernel_subkey_dest,
+ kernel_subkey->key_size);
+ PublicKeyCopy(&h->kernel_subkey, kernel_subkey);
+
+ /* Copy body signature */
+ SignatureInit(&h->body_signature, body_sig_dest,
+ body_signature->sig_size, 0);
+ SignatureCopy(&h->body_signature, body_signature);
+
+ /* Set up signature struct so we can calculate the signature */
+ SignatureInit(&h->preamble_signature, block_sig_dest,
+ siglen_map[signing_key->algorithm], signed_size);
+
+ /* Calculate signature */
+ sigtmp = CalculateSignature((uint8_t *)h, signed_size, signing_key);
+ SignatureCopy(&h->preamble_signature, sigtmp);
+ free(sigtmp);
+
+ /* Return the header */
+ return h;
}
-
-/* Creates a kernel preamble, signed with [signing_key].
- * Caller owns the returned pointer, and must free it with free().
- *
- * Returns NULL if error. */
-VbKernelPreambleHeader* CreateKernelPreamble(
- uint64_t kernel_version,
- uint64_t body_load_address,
- uint64_t bootloader_address,
- uint64_t bootloader_size,
- const VbSignature* body_signature,
- uint64_t desired_size,
- const VbPrivateKey* signing_key) {
-
- VbKernelPreambleHeader* h;
- uint64_t signed_size = (sizeof(VbKernelPreambleHeader) +
- body_signature->sig_size);
- uint64_t block_size = signed_size + siglen_map[signing_key->algorithm];
- uint8_t* body_sig_dest;
- uint8_t* block_sig_dest;
- VbSignature *sigtmp;
-
- /* If the block size is smaller than the desired size, pad it */
- if (block_size < desired_size)
- block_size = desired_size;
-
- /* Allocate key block */
- h = (VbKernelPreambleHeader*)malloc(block_size);
- Memset(h, 0, block_size);
-
- if (!h)
- return NULL;
- body_sig_dest = (uint8_t*)(h + 1);
- block_sig_dest = body_sig_dest + body_signature->sig_size;
-
- h->header_version_major = KERNEL_PREAMBLE_HEADER_VERSION_MAJOR;
- h->header_version_minor = KERNEL_PREAMBLE_HEADER_VERSION_MINOR;
- h->preamble_size = block_size;
- h->kernel_version = kernel_version;
- h->body_load_address = body_load_address;
- h->bootloader_address = bootloader_address;
- h->bootloader_size = bootloader_size;
-
- /* Copy body signature */
- SignatureInit(&h->body_signature, body_sig_dest,
- body_signature->sig_size, 0);
- SignatureCopy(&h->body_signature, body_signature);
-
- /* Set up signature struct so we can calculate the signature */
- SignatureInit(&h->preamble_signature, block_sig_dest,
- siglen_map[signing_key->algorithm], signed_size);
-
- /* Calculate signature */
- sigtmp = CalculateSignature((uint8_t*)h, signed_size, signing_key);
- SignatureCopy(&h->preamble_signature, sigtmp);
- free(sigtmp);
-
- /* Return the header */
- return h;
+VbKernelPreambleHeader *CreateKernelPreamble(
+ uint64_t kernel_version,
+ uint64_t body_load_address,
+ uint64_t bootloader_address,
+ uint64_t bootloader_size,
+ const VbSignature *body_signature,
+ uint64_t desired_size,
+ const VbPrivateKey *signing_key)
+{
+ VbKernelPreambleHeader *h;
+ uint64_t signed_size = (sizeof(VbKernelPreambleHeader) +
+ body_signature->sig_size);
+ uint64_t block_size = signed_size + siglen_map[signing_key->algorithm];
+ uint8_t *body_sig_dest;
+ uint8_t *block_sig_dest;
+ VbSignature *sigtmp;
+
+ /* If the block size is smaller than the desired size, pad it */
+ if (block_size < desired_size)
+ block_size = desired_size;
+
+ /* Allocate key block */
+ h = (VbKernelPreambleHeader *)malloc(block_size);
+ if (!h)
+ return NULL;
+
+ Memset(h, 0, block_size);
+ body_sig_dest = (uint8_t *)(h + 1);
+ block_sig_dest = body_sig_dest + body_signature->sig_size;
+
+ h->header_version_major = KERNEL_PREAMBLE_HEADER_VERSION_MAJOR;
+ h->header_version_minor = KERNEL_PREAMBLE_HEADER_VERSION_MINOR;
+ h->preamble_size = block_size;
+ h->kernel_version = kernel_version;
+ h->body_load_address = body_load_address;
+ h->bootloader_address = bootloader_address;
+ h->bootloader_size = bootloader_size;
+
+ /* Copy body signature */
+ SignatureInit(&h->body_signature, body_sig_dest,
+ body_signature->sig_size, 0);
+ SignatureCopy(&h->body_signature, body_signature);
+
+ /* Set up signature struct so we can calculate the signature */
+ SignatureInit(&h->preamble_signature, block_sig_dest,
+ siglen_map[signing_key->algorithm], signed_size);
+
+ /* Calculate signature */
+ sigtmp = CalculateSignature((uint8_t *)h, signed_size, signing_key);
+ SignatureCopy(&h->preamble_signature, sigtmp);
+ free(sigtmp);
+
+ /* Return the header */
+ return h;
}