mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-05-08 18:41:22 +00:00
TBB: Add an IO abstraction layer to load encrypted firmwares
TBBR spec advocates for optional encryption of firmwares (see optional requirement: R060_TBBR_FUNCTION). So add an IO abstaction layer to support firmware decryption that can be stacked above any underlying IO/ packaging layer like FIP etc. It aims to provide a framework to load any encrypted IO payload. Also, add plat_get_enc_key_info() to be implemented in a platform specific manner as handling of encryption key may vary from one platform to another. Signed-off-by: Sumit Garg <sumit.garg@linaro.org> Change-Id: I9892e0ddf00ebecb8981301dbfa41ea23e078b03
This commit is contained in:
parent
7cda17bb0f
commit
2be57b8658
7 changed files with 338 additions and 2 deletions
42
include/tools_share/firmware_encrypted.h
Normal file
42
include/tools_share/firmware_encrypted.h
Normal file
|
@ -0,0 +1,42 @@
|
|||
/*
|
||||
* Copyright (c) 2020, Linaro Limited. All rights reserved.
|
||||
* Author: Sumit Garg <sumit.garg@linaro.org>
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
||||
#ifndef FIRMWARE_ENCRYPTED_H
|
||||
#define FIRMWARE_ENCRYPTED_H
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
/* This is used as a signature to validate the encryption header */
|
||||
#define ENC_HEADER_MAGIC 0xAA640001U
|
||||
|
||||
/* Firmware encryption status flag mask */
|
||||
#define FW_ENC_STATUS_FLAG_MASK 0x1
|
||||
|
||||
/*
|
||||
* SSK: Secret Symmetric Key
|
||||
* BSSK: Binding Secret Symmetric Key
|
||||
*/
|
||||
enum fw_enc_status_t {
|
||||
FW_ENC_WITH_SSK = 0,
|
||||
FW_ENC_WITH_BSSK = 1,
|
||||
};
|
||||
|
||||
#define ENC_MAX_IV_SIZE 16U
|
||||
#define ENC_MAX_TAG_SIZE 16U
|
||||
#define ENC_MAX_KEY_SIZE 32U
|
||||
|
||||
struct fw_enc_hdr {
|
||||
uint32_t magic;
|
||||
uint16_t dec_algo;
|
||||
uint16_t flags;
|
||||
uint16_t iv_len;
|
||||
uint16_t tag_len;
|
||||
uint8_t iv[ENC_MAX_IV_SIZE];
|
||||
uint8_t tag[ENC_MAX_TAG_SIZE];
|
||||
};
|
||||
|
||||
#endif /* FIRMWARE_ENCRYPTED_H */
|
Loading…
Add table
Add a link
Reference in a new issue