summaryrefslogtreecommitdiff
path: root/bdb/bdb_struct.h
diff options
context:
space:
mode:
Diffstat (limited to 'bdb/bdb_struct.h')
-rw-r--r--bdb/bdb_struct.h268
1 files changed, 0 insertions, 268 deletions
diff --git a/bdb/bdb_struct.h b/bdb/bdb_struct.h
deleted file mode 100644
index b4ffb50d..00000000
--- a/bdb/bdb_struct.h
+++ /dev/null
@@ -1,268 +0,0 @@
-/* Copyright (c) 2015 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.
- *
- * Boot descriptor block structures
- */
-
-#ifndef VBOOT_REFERENCE_BDB_STRUCT_H_
-#define VBOOT_REFERENCE_BDB_STRUCT_H_
-
-#include <stdint.h>
-
-/* Size of SHA256 digest in bytes */
-#define BDB_SHA256_DIGEST_SIZE 32
-
-/* Size of RSA4096 key data in bytes */
-#define BDB_RSA4096_KEY_DATA_SIZE 1032
-
-/* Size of RSA4096 signature in bytes */
-#define BDB_RSA4096_SIG_SIZE 512
-
-/* Size of ECDSA521 key data in bytes = ceil(521/8) * 2 */
-#define BDB_ECDSA521_KEY_DATA_SIZE 132
-
-/* Size of ECDSA521 signature in bytes = ceil(521/8) * 2 */
-#define BDB_ECDSA521_SIG_SIZE 132
-
-/* Size of RSA3072B key data in bytes */
-#define BDB_RSA3072B_KEY_DATA_SIZE 776
-
-/* Size of RSA3072B signature in bytes */
-#define BDB_RSA3072B_SIG_SIZE 384
-
-/*****************************************************************************/
-/* Header for BDB */
-
-/* Magic number for bdb_header.struct_magic */
-#define BDB_HEADER_MAGIC 0x30426442
-
-/* Current version of bdb_header struct */
-#define BDB_HEADER_VERSION_MAJOR 1
-#define BDB_HEADER_VERSION_MINOR 0
-
-/* Expected size of bdb_header struct in bytes */
-#define BDB_HEADER_EXPECTED_SIZE 32
-
-struct bdb_header {
- /* Magic number to identify struct = BDB_HEADER_MAGIC. */
- uint32_t struct_magic;
-
- /* Structure version = BDB_HEADER_VERSION{MAJOR,MINOR} */
- uint8_t struct_major_version;
- uint8_t struct_minor_version;
-
- /* Size of structure in bytes */
- uint16_t struct_size;
-
- /* Recommended address in SP SRAM to load BDB. Set to -1 to use
- * default address. */
- uint64_t bdb_load_address;
-
- /* Size of the entire BDB in bytes */
- uint32_t bdb_size;
-
- /* Number of bytes following the BDB key which are signed by the BDB
- * header signature. */
- uint32_t signed_size;
-
- /* Size of OEM area 0 in bytes, or 0 if not present */
- uint32_t oem_area_0_size;
-
- /* Reserved; set 0 */
- uint8_t reserved0[8];
-} __attribute__((packed));
-
-/*****************************************************************************/
-/* Public key structure for BDB */
-
-/* Magic number for bdb_key.struct_magic */
-#define BDB_KEY_MAGIC 0x73334256
-
-/* Current version of bdb_key struct */
-#define BDB_KEY_VERSION_MAJOR 1
-#define BDB_KEY_VERSION_MINOR 0
-
-/* Supported hash algorithms */
-enum bdb_hash_alg {
- BDB_HASH_ALG_INVALID = 0, /* Not used; invalid */
- BDB_HASH_ALG_SHA256 = 2, /* SHA-256 */
-};
-
-/* Supported signature algorithms */
-enum bdb_sig_alg {
- BDB_SIG_ALG_INVALID = 0, /* Not used; invalid */
- BDB_SIG_ALG_RSA4096 = 3, /* RSA-4096, exponent 65537 */
- BDB_SIG_ALG_ECSDSA521 = 5, /* ECDSA-521 */
- BDB_SIG_ALG_RSA3072B = 7, /* RSA_3072, exponent 3 */
-};
-
-/*
- * Expected size of bdb_key struct in bytes, not counting variable-length key
- * data at end.
- */
-#define BDB_KEY_EXPECTED_SIZE 80
-
-struct bdb_key {
- /* Magic number to identify struct = BDB_KEY_MAGIC. */
- uint32_t struct_magic;
-
- /* Structure version = BDB_KEY_VERSION{MAJOR,MINOR} */
- uint8_t struct_major_version;
- uint8_t struct_minor_version;
-
- /* Size of structure in bytes, including variable-length key data */
- uint16_t struct_size;
-
- /* Hash algorithm (enum bdb_hash_alg) */
- uint8_t hash_alg;
-
- /* Signature algorithm (enum bdb_sig_alg) */
- uint8_t sig_alg;
-
- /* Reserved; set 0 */
- uint8_t reserved0[2];
-
- /* Key version */
- uint32_t key_version;
-
- /* Description; null-terminated ASCII */
- char description[128];
-
- /*
- * Key data. Variable-length; size is struct_size -
- * offset_of(bdb_key, key_data).
- */
- uint8_t key_data[0];
-} __attribute__((packed));
-
-/*****************************************************************************/
-/* Signature structure for BDB */
-
-/* Magic number for bdb_sig.struct_magic */
-#define BDB_SIG_MAGIC 0x6b334256
-
-/* Current version of bdb_sig struct */
-#define BDB_SIG_VERSION_MAJOR 1
-#define BDB_SIG_VERSION_MINOR 0
-
-struct bdb_sig {
- /* Magic number to identify struct = BDB_SIG_MAGIC. */
- uint32_t struct_magic;
-
- /* Structure version = BDB_SIG_VERSION{MAJOR,MINOR} */
- uint8_t struct_major_version;
- uint8_t struct_minor_version;
-
- /* Size of structure in bytes, including variable-length signature
- * data. */
- uint16_t struct_size;
-
- /* Hash algorithm used for this signature (enum bdb_hash_alg) */
- uint8_t hash_alg;
-
- /* Signature algorithm (enum bdb_sig_alg) */
- uint8_t sig_alg;
-
- /* Reserved; set 0 */
- uint8_t reserved0[2];
-
- /* Number of bytes of data signed by this signature */
- uint32_t signed_size;
-
- /* Description; null-terminated ASCII */
- char description[128];
-
- /* Signature data. Variable-length; size is struct_size -
- * offset_of(bdb_sig, sig_data). */
- uint8_t sig_data[0];
-} __attribute__((packed));
-
-/*****************************************************************************/
-/* Data structure for BDB */
-
-/* Magic number for bdb_data.struct_magic */
-#define BDB_DATA_MAGIC 0x31426442
-
-/* Current version of bdb_sig struct */
-#define BDB_DATA_VERSION_MAJOR 1
-#define BDB_DATA_VERSION_MINOR 0
-
-struct bdb_data {
- /* Magic number to identify struct = BDB_DATA_MAGIC. */
- uint32_t struct_magic;
-
- /* Structure version = BDB_DATA_VERSION{MAJOR,MINOR} */
- uint8_t struct_major_version;
- uint8_t struct_minor_version;
-
- /* Size of structure in bytes, NOT including hashes which follow. */
- uint16_t struct_size;
-
- /* Version of data (RW firmware) contained */
- uint32_t data_version;
-
- /* Size of OEM area 1 in bytes, or 0 if not present */
- uint32_t oem_area_1_size;
-
- /* Number of hashes which follow */
- uint8_t num_hashes;
-
- /* Size of each hash entry in bytes */
- uint8_t hash_entry_size;
-
- /* Reserved; set 0 */
- uint8_t reserved0[2];
-
- /* Number of bytes of data signed by the subkey, including this
- * header */
- uint32_t signed_size;
-
- /* Reserved; set 0 */
- uint8_t reserved1[8];
-
- /* Description; null-terminated ASCII */
- char description[128];
-} __attribute__((packed));
-
-/* Type of data for bdb_hash.type */
-enum bdb_data_type {
- /* Types of data for boot descriptor blocks */
- BDB_DATA_SP_RW = 1, /* SP-RW firmware */
- BDB_DATA_AP_RW = 2, /* AP-RW firmware */
- BDB_DATA_MCU = 3, /* MCU firmware */
-
- /* Types of data for kernel descriptor blocks */
- BDB_DATA_KERNEL = 128, /* Kernel */
- BDB_DATA_CMD_LINE = 129, /* Command line */
- BDB_DATA_HEADER16 = 130, /* 16-bit vmlinuz header */
-};
-
-/* Hash entries which follow the structure */
-struct bdb_hash {
- /* Offset of data from start of partition */
- uint64_t offset;
-
- /* Size of data in bytes */
- uint32_t size;
-
- /* Partition number containing data */
- uint8_t partition;
-
- /* Type of data; enum bdb_data_type */
- uint8_t type;
-
- /* Reserved; set 0 */
- uint8_t reserved0[2];
-
- /* Address in RAM to load data. -1 means use default. */
- uint64_t load_address;
-
- /* SHA-256 hash digest */
- uint8_t digest[BDB_SHA256_DIGEST_SIZE];
-} __attribute__((packed));
-
-/*****************************************************************************/
-
-#endif /* VBOOT_REFERENCE_BDB_STRUCT_H_ */
-