blob: 7ca634f5efdc3471e2f0d9b4c2764d988924faca [file] [log] [blame]
/*
* 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 */