| /* |
| * Copyright (c) 2019 The Fuchsia Authors |
| */ |
| #include <config.h> |
| #include <common.h> |
| |
| #ifndef _AML_IMAGE_H_ |
| #define _AML_IMAGE_H_ |
| |
| #define CONFIG_AML_SECURE_BOOT_VERSION 4 |
| |
| #if (CONFIG_AML_SECURE_BOOT_VERSION < 4) |
| typedef struct __aml_enc_blk{ |
| unsigned int nOffset; |
| unsigned int nRawLength; |
| unsigned int nSigLength; |
| unsigned int nAlignment; |
| unsigned int nTotalLength; |
| unsigned char szPad[12]; |
| unsigned char szSHA2IMG[32]; |
| unsigned char szSHA2KeyID[32]; |
| }t_aml_enc_blk; |
| |
| #define AML_SECU_BOOT_IMG_HDR_MAGIC "AMLSECU!" |
| #define AML_SECU_BOOT_IMG_HDR_MAGIC_SIZE (8) |
| #define AML_SECU_BOOT_IMG_HDR_VESRION (0x0905) |
| |
| typedef struct { |
| |
| unsigned char magic[AML_SECU_BOOT_IMG_HDR_MAGIC_SIZE];//magic to identify whether it is a encrypted boot image |
| |
| unsigned int version; //ersion for this header struct |
| unsigned int nBlkCnt; |
| |
| unsigned char szTimeStamp[16]; |
| |
| t_aml_enc_blk amlKernel; |
| t_aml_enc_blk amlRamdisk; |
| t_aml_enc_blk amlDTB; |
| |
| }AmlEncryptBootImgInfo; |
| |
| typedef struct _boot_img_hdr_secure_boot |
| { |
| unsigned char reserve4ImgHdr[1024]; |
| |
| AmlEncryptBootImgInfo encrypteImgInfo; |
| |
| }AmlSecureBootImgHeader; |
| |
| #define COMPILE_TYPE_ASSERT(expr, t) typedef char t[(expr) ? 1 : -1] |
| COMPILE_TYPE_ASSERT(2048 >= sizeof(AmlSecureBootImgHeader), _cc); |
| #else /* CONFIG_AML_SECURE_BOOT_VERSION */ |
| |
| #define AML_BOOT_HEADER_MAGIC 0x4c4d4140 |
| #define AML_BOOT_HEADER_IMAGE_HASH_SIZE 32 |
| #define AML_BOOT_HEADER_RESERVED_SIZE 200 |
| #define AML_BOOT_HEADER_RSA_SIGNATURE_SIZE 256 |
| |
| typedef struct { |
| uint32_t magic; |
| uint32_t version; |
| uint32_t flags; |
| uint32_t img_version; |
| uint32_t img_size; |
| uint32_t img_offset; |
| uint8_t img_hash[AML_BOOT_HEADER_IMAGE_HASH_SIZE]; |
| uint8_t reserved[AML_BOOT_HEADER_RESERVED_SIZE]; |
| uint8_t rsa_sig[AML_BOOT_HEADER_RSA_SIGNATURE_SIZE]; |
| } aml_boot_header_t; |
| |
| #endif /* CONFIG_AML_SECURE_BOOT_VERSION */ |
| |
| #endif /* _AML_IMAGE_H_ */ |