1ad43c49eSManish V Badarkhe /* 2*7962c1c2SManish V Badarkhe * Copyright (c) 2015-2024, Arm Limited and Contributors. All rights reserved. 3ad43c49eSManish V Badarkhe * 4ad43c49eSManish V Badarkhe * SPDX-License-Identifier: BSD-3-Clause 5ad43c49eSManish V Badarkhe */ 6ad43c49eSManish V Badarkhe 7ad43c49eSManish V Badarkhe #include <stddef.h> 8ad43c49eSManish V Badarkhe 9a8eadc51SGovindraj Raja #include <mbedtls/version.h> 10ad43c49eSManish V Badarkhe 11ad43c49eSManish V Badarkhe #include <drivers/auth/auth_mod.h> 12ad43c49eSManish V Badarkhe #include <drivers/auth/tbbr_cot_common.h> 13a8eadc51SGovindraj Raja 14ad43c49eSManish V Badarkhe #if USE_TBBR_DEFS 15ad43c49eSManish V Badarkhe #include <tools_share/tbbr_oid.h> 16ad43c49eSManish V Badarkhe #else 17ad43c49eSManish V Badarkhe #include <platform_oid.h> 18ad43c49eSManish V Badarkhe #endif 19ad43c49eSManish V Badarkhe 20a8eadc51SGovindraj Raja #include <platform_def.h> 21a8eadc51SGovindraj Raja 22ad43c49eSManish V Badarkhe static unsigned char soc_fw_hash_buf[HASH_DER_LEN]; 23ad43c49eSManish V Badarkhe static unsigned char tos_fw_hash_buf[HASH_DER_LEN]; 24ad43c49eSManish V Badarkhe static unsigned char tos_fw_extra1_hash_buf[HASH_DER_LEN]; 25ad43c49eSManish V Badarkhe static unsigned char tos_fw_extra2_hash_buf[HASH_DER_LEN]; 26ad43c49eSManish V Badarkhe static unsigned char trusted_world_pk_buf[PK_DER_LEN]; 27ad43c49eSManish V Badarkhe static unsigned char non_trusted_world_pk_buf[PK_DER_LEN]; 28ad43c49eSManish V Badarkhe static unsigned char content_pk_buf[PK_DER_LEN]; 29ad43c49eSManish V Badarkhe static unsigned char soc_fw_config_hash_buf[HASH_DER_LEN]; 30ad43c49eSManish V Badarkhe static unsigned char tos_fw_config_hash_buf[HASH_DER_LEN]; 31ad43c49eSManish V Badarkhe static unsigned char nt_fw_config_hash_buf[HASH_DER_LEN]; 3268758dd6SManish Pandey #if defined(SPD_spmd) 3368758dd6SManish Pandey static unsigned char sp_pkg_hash_buf[MAX_SP_IDS][HASH_DER_LEN]; 3468758dd6SManish Pandey #endif /* SPD_spmd */ 35ad43c49eSManish V Badarkhe 36ad43c49eSManish V Badarkhe static auth_param_type_desc_t non_trusted_nv_ctr = AUTH_PARAM_TYPE_DESC( 37ad43c49eSManish V Badarkhe AUTH_PARAM_NV_CTR, NON_TRUSTED_FW_NVCOUNTER_OID); 38ad43c49eSManish V Badarkhe static auth_param_type_desc_t trusted_world_pk = AUTH_PARAM_TYPE_DESC( 39ad43c49eSManish V Badarkhe AUTH_PARAM_PUB_KEY, TRUSTED_WORLD_PK_OID); 40ad43c49eSManish V Badarkhe static auth_param_type_desc_t non_trusted_world_pk = AUTH_PARAM_TYPE_DESC( 41ad43c49eSManish V Badarkhe AUTH_PARAM_PUB_KEY, NON_TRUSTED_WORLD_PK_OID); 42ad43c49eSManish V Badarkhe static auth_param_type_desc_t scp_fw_content_pk = AUTH_PARAM_TYPE_DESC( 43ad43c49eSManish V Badarkhe AUTH_PARAM_PUB_KEY, SCP_FW_CONTENT_CERT_PK_OID); 44ad43c49eSManish V Badarkhe static auth_param_type_desc_t soc_fw_content_pk = AUTH_PARAM_TYPE_DESC( 45ad43c49eSManish V Badarkhe AUTH_PARAM_PUB_KEY, SOC_FW_CONTENT_CERT_PK_OID); 46ad43c49eSManish V Badarkhe static auth_param_type_desc_t tos_fw_content_pk = AUTH_PARAM_TYPE_DESC( 47ad43c49eSManish V Badarkhe AUTH_PARAM_PUB_KEY, TRUSTED_OS_FW_CONTENT_CERT_PK_OID); 48ad43c49eSManish V Badarkhe static auth_param_type_desc_t nt_fw_content_pk = AUTH_PARAM_TYPE_DESC( 49ad43c49eSManish V Badarkhe AUTH_PARAM_PUB_KEY, NON_TRUSTED_FW_CONTENT_CERT_PK_OID); 50ad43c49eSManish V Badarkhe static auth_param_type_desc_t scp_fw_hash = AUTH_PARAM_TYPE_DESC( 51ad43c49eSManish V Badarkhe AUTH_PARAM_HASH, SCP_FW_HASH_OID); 52ad43c49eSManish V Badarkhe static auth_param_type_desc_t soc_fw_hash = AUTH_PARAM_TYPE_DESC( 53ad43c49eSManish V Badarkhe AUTH_PARAM_HASH, SOC_AP_FW_HASH_OID); 54ad43c49eSManish V Badarkhe static auth_param_type_desc_t soc_fw_config_hash = AUTH_PARAM_TYPE_DESC( 55ad43c49eSManish V Badarkhe AUTH_PARAM_HASH, SOC_FW_CONFIG_HASH_OID); 56ad43c49eSManish V Badarkhe static auth_param_type_desc_t tos_fw_hash = AUTH_PARAM_TYPE_DESC( 57ad43c49eSManish V Badarkhe AUTH_PARAM_HASH, TRUSTED_OS_FW_HASH_OID); 58ad43c49eSManish V Badarkhe static auth_param_type_desc_t tos_fw_config_hash = AUTH_PARAM_TYPE_DESC( 59ad43c49eSManish V Badarkhe AUTH_PARAM_HASH, TRUSTED_OS_FW_CONFIG_HASH_OID); 60ad43c49eSManish V Badarkhe static auth_param_type_desc_t tos_fw_extra1_hash = AUTH_PARAM_TYPE_DESC( 61ad43c49eSManish V Badarkhe AUTH_PARAM_HASH, TRUSTED_OS_FW_EXTRA1_HASH_OID); 62ad43c49eSManish V Badarkhe static auth_param_type_desc_t tos_fw_extra2_hash = AUTH_PARAM_TYPE_DESC( 63ad43c49eSManish V Badarkhe AUTH_PARAM_HASH, TRUSTED_OS_FW_EXTRA2_HASH_OID); 64ad43c49eSManish V Badarkhe static auth_param_type_desc_t nt_world_bl_hash = AUTH_PARAM_TYPE_DESC( 65ad43c49eSManish V Badarkhe AUTH_PARAM_HASH, NON_TRUSTED_WORLD_BOOTLOADER_HASH_OID); 66ad43c49eSManish V Badarkhe static auth_param_type_desc_t nt_fw_config_hash = AUTH_PARAM_TYPE_DESC( 67ad43c49eSManish V Badarkhe AUTH_PARAM_HASH, NON_TRUSTED_FW_CONFIG_HASH_OID); 6868758dd6SManish Pandey #if defined(SPD_spmd) 6968758dd6SManish Pandey static auth_param_type_desc_t sp_pkg1_hash = AUTH_PARAM_TYPE_DESC( 7068758dd6SManish Pandey AUTH_PARAM_HASH, SP_PKG1_HASH_OID); 7168758dd6SManish Pandey static auth_param_type_desc_t sp_pkg2_hash = AUTH_PARAM_TYPE_DESC( 7268758dd6SManish Pandey AUTH_PARAM_HASH, SP_PKG2_HASH_OID); 7368758dd6SManish Pandey static auth_param_type_desc_t sp_pkg3_hash = AUTH_PARAM_TYPE_DESC( 7468758dd6SManish Pandey AUTH_PARAM_HASH, SP_PKG3_HASH_OID); 7568758dd6SManish Pandey static auth_param_type_desc_t sp_pkg4_hash = AUTH_PARAM_TYPE_DESC( 7668758dd6SManish Pandey AUTH_PARAM_HASH, SP_PKG4_HASH_OID); 7768758dd6SManish Pandey static auth_param_type_desc_t sp_pkg5_hash = AUTH_PARAM_TYPE_DESC( 7868758dd6SManish Pandey AUTH_PARAM_HASH, SP_PKG5_HASH_OID); 7968758dd6SManish Pandey static auth_param_type_desc_t sp_pkg6_hash = AUTH_PARAM_TYPE_DESC( 8068758dd6SManish Pandey AUTH_PARAM_HASH, SP_PKG6_HASH_OID); 8168758dd6SManish Pandey static auth_param_type_desc_t sp_pkg7_hash = AUTH_PARAM_TYPE_DESC( 8268758dd6SManish Pandey AUTH_PARAM_HASH, SP_PKG7_HASH_OID); 8368758dd6SManish Pandey static auth_param_type_desc_t sp_pkg8_hash = AUTH_PARAM_TYPE_DESC( 8468758dd6SManish Pandey AUTH_PARAM_HASH, SP_PKG8_HASH_OID); 8568758dd6SManish Pandey #endif /* SPD_spmd */ 86ad43c49eSManish V Badarkhe 87*7962c1c2SManish V Badarkhe /* HW Config */ 88*7962c1c2SManish V Badarkhe static const auth_img_desc_t hw_config = { 89*7962c1c2SManish V Badarkhe .img_id = HW_CONFIG_ID, 90*7962c1c2SManish V Badarkhe .img_type = IMG_RAW, 91*7962c1c2SManish V Badarkhe .parent = &trusted_boot_fw_cert, 92*7962c1c2SManish V Badarkhe .img_auth_methods = (const auth_method_desc_t[AUTH_METHOD_NUM]) { 93*7962c1c2SManish V Badarkhe [0] = { 94*7962c1c2SManish V Badarkhe .type = AUTH_METHOD_HASH, 95*7962c1c2SManish V Badarkhe .param.hash = { 96*7962c1c2SManish V Badarkhe .data = &raw_data, 97*7962c1c2SManish V Badarkhe .hash = &hw_config_hash 98*7962c1c2SManish V Badarkhe } 99*7962c1c2SManish V Badarkhe } 100*7962c1c2SManish V Badarkhe } 101*7962c1c2SManish V Badarkhe }; 102*7962c1c2SManish V Badarkhe 103ad43c49eSManish V Badarkhe /* 104ad43c49eSManish V Badarkhe * Trusted key certificate 105ad43c49eSManish V Badarkhe */ 106ad43c49eSManish V Badarkhe static const auth_img_desc_t trusted_key_cert = { 107ad43c49eSManish V Badarkhe .img_id = TRUSTED_KEY_CERT_ID, 108ad43c49eSManish V Badarkhe .img_type = IMG_CERT, 109ad43c49eSManish V Badarkhe .parent = NULL, 110ad43c49eSManish V Badarkhe .img_auth_methods = (const auth_method_desc_t[AUTH_METHOD_NUM]) { 111ad43c49eSManish V Badarkhe [0] = { 112ad43c49eSManish V Badarkhe .type = AUTH_METHOD_SIG, 113ad43c49eSManish V Badarkhe .param.sig = { 114ad43c49eSManish V Badarkhe .pk = &subject_pk, 115ad43c49eSManish V Badarkhe .sig = &sig, 116ad43c49eSManish V Badarkhe .alg = &sig_alg, 117ad43c49eSManish V Badarkhe .data = &raw_data 118ad43c49eSManish V Badarkhe } 119ad43c49eSManish V Badarkhe }, 120ad43c49eSManish V Badarkhe [1] = { 121ad43c49eSManish V Badarkhe .type = AUTH_METHOD_NV_CTR, 122ad43c49eSManish V Badarkhe .param.nv_ctr = { 123ad43c49eSManish V Badarkhe .cert_nv_ctr = &trusted_nv_ctr, 124ad43c49eSManish V Badarkhe .plat_nv_ctr = &trusted_nv_ctr 125ad43c49eSManish V Badarkhe } 126ad43c49eSManish V Badarkhe } 127ad43c49eSManish V Badarkhe }, 128ad43c49eSManish V Badarkhe .authenticated_data = (const auth_param_desc_t[COT_MAX_VERIFIED_PARAMS]) { 129ad43c49eSManish V Badarkhe [0] = { 130ad43c49eSManish V Badarkhe .type_desc = &trusted_world_pk, 131ad43c49eSManish V Badarkhe .data = { 132ad43c49eSManish V Badarkhe .ptr = (void *)trusted_world_pk_buf, 133ad43c49eSManish V Badarkhe .len = (unsigned int)PK_DER_LEN 134ad43c49eSManish V Badarkhe } 135ad43c49eSManish V Badarkhe }, 136ad43c49eSManish V Badarkhe [1] = { 137ad43c49eSManish V Badarkhe .type_desc = &non_trusted_world_pk, 138ad43c49eSManish V Badarkhe .data = { 139ad43c49eSManish V Badarkhe .ptr = (void *)non_trusted_world_pk_buf, 140ad43c49eSManish V Badarkhe .len = (unsigned int)PK_DER_LEN 141ad43c49eSManish V Badarkhe } 142ad43c49eSManish V Badarkhe } 143ad43c49eSManish V Badarkhe } 144ad43c49eSManish V Badarkhe }; 145ad43c49eSManish V Badarkhe /* 146ad43c49eSManish V Badarkhe * SCP Firmware 147ad43c49eSManish V Badarkhe */ 148ad43c49eSManish V Badarkhe static const auth_img_desc_t scp_fw_key_cert = { 149ad43c49eSManish V Badarkhe .img_id = SCP_FW_KEY_CERT_ID, 150ad43c49eSManish V Badarkhe .img_type = IMG_CERT, 151ad43c49eSManish V Badarkhe .parent = &trusted_key_cert, 152ad43c49eSManish V Badarkhe .img_auth_methods = (const auth_method_desc_t[AUTH_METHOD_NUM]) { 153ad43c49eSManish V Badarkhe [0] = { 154ad43c49eSManish V Badarkhe .type = AUTH_METHOD_SIG, 155ad43c49eSManish V Badarkhe .param.sig = { 156ad43c49eSManish V Badarkhe .pk = &trusted_world_pk, 157ad43c49eSManish V Badarkhe .sig = &sig, 158ad43c49eSManish V Badarkhe .alg = &sig_alg, 159ad43c49eSManish V Badarkhe .data = &raw_data 160ad43c49eSManish V Badarkhe } 161ad43c49eSManish V Badarkhe }, 162ad43c49eSManish V Badarkhe [1] = { 163ad43c49eSManish V Badarkhe .type = AUTH_METHOD_NV_CTR, 164ad43c49eSManish V Badarkhe .param.nv_ctr = { 165ad43c49eSManish V Badarkhe .cert_nv_ctr = &trusted_nv_ctr, 166ad43c49eSManish V Badarkhe .plat_nv_ctr = &trusted_nv_ctr 167ad43c49eSManish V Badarkhe } 168ad43c49eSManish V Badarkhe } 169ad43c49eSManish V Badarkhe }, 170ad43c49eSManish V Badarkhe .authenticated_data = (const auth_param_desc_t[COT_MAX_VERIFIED_PARAMS]) { 171ad43c49eSManish V Badarkhe [0] = { 172ad43c49eSManish V Badarkhe .type_desc = &scp_fw_content_pk, 173ad43c49eSManish V Badarkhe .data = { 174ad43c49eSManish V Badarkhe .ptr = (void *)content_pk_buf, 175ad43c49eSManish V Badarkhe .len = (unsigned int)PK_DER_LEN 176ad43c49eSManish V Badarkhe } 177ad43c49eSManish V Badarkhe } 178ad43c49eSManish V Badarkhe } 179ad43c49eSManish V Badarkhe }; 180ad43c49eSManish V Badarkhe static const auth_img_desc_t scp_fw_content_cert = { 181ad43c49eSManish V Badarkhe .img_id = SCP_FW_CONTENT_CERT_ID, 182ad43c49eSManish V Badarkhe .img_type = IMG_CERT, 183ad43c49eSManish V Badarkhe .parent = &scp_fw_key_cert, 184ad43c49eSManish V Badarkhe .img_auth_methods = (const auth_method_desc_t[AUTH_METHOD_NUM]) { 185ad43c49eSManish V Badarkhe [0] = { 186ad43c49eSManish V Badarkhe .type = AUTH_METHOD_SIG, 187ad43c49eSManish V Badarkhe .param.sig = { 188ad43c49eSManish V Badarkhe .pk = &scp_fw_content_pk, 189ad43c49eSManish V Badarkhe .sig = &sig, 190ad43c49eSManish V Badarkhe .alg = &sig_alg, 191ad43c49eSManish V Badarkhe .data = &raw_data 192ad43c49eSManish V Badarkhe } 193ad43c49eSManish V Badarkhe }, 194ad43c49eSManish V Badarkhe [1] = { 195ad43c49eSManish V Badarkhe .type = AUTH_METHOD_NV_CTR, 196ad43c49eSManish V Badarkhe .param.nv_ctr = { 197ad43c49eSManish V Badarkhe .cert_nv_ctr = &trusted_nv_ctr, 198ad43c49eSManish V Badarkhe .plat_nv_ctr = &trusted_nv_ctr 199ad43c49eSManish V Badarkhe } 200ad43c49eSManish V Badarkhe } 201ad43c49eSManish V Badarkhe }, 202ad43c49eSManish V Badarkhe .authenticated_data = (const auth_param_desc_t[COT_MAX_VERIFIED_PARAMS]) { 203ad43c49eSManish V Badarkhe [0] = { 204ad43c49eSManish V Badarkhe .type_desc = &scp_fw_hash, 205ad43c49eSManish V Badarkhe .data = { 206ad43c49eSManish V Badarkhe .ptr = (void *)scp_fw_hash_buf, 207ad43c49eSManish V Badarkhe .len = (unsigned int)HASH_DER_LEN 208ad43c49eSManish V Badarkhe } 209ad43c49eSManish V Badarkhe } 210ad43c49eSManish V Badarkhe } 211ad43c49eSManish V Badarkhe }; 212ad43c49eSManish V Badarkhe static const auth_img_desc_t scp_bl2_image = { 213ad43c49eSManish V Badarkhe .img_id = SCP_BL2_IMAGE_ID, 214ad43c49eSManish V Badarkhe .img_type = IMG_RAW, 215ad43c49eSManish V Badarkhe .parent = &scp_fw_content_cert, 216ad43c49eSManish V Badarkhe .img_auth_methods = (const auth_method_desc_t[AUTH_METHOD_NUM]) { 217ad43c49eSManish V Badarkhe [0] = { 218ad43c49eSManish V Badarkhe .type = AUTH_METHOD_HASH, 219ad43c49eSManish V Badarkhe .param.hash = { 220ad43c49eSManish V Badarkhe .data = &raw_data, 221ad43c49eSManish V Badarkhe .hash = &scp_fw_hash 222ad43c49eSManish V Badarkhe } 223ad43c49eSManish V Badarkhe } 224ad43c49eSManish V Badarkhe } 225ad43c49eSManish V Badarkhe }; 226ad43c49eSManish V Badarkhe /* 227ad43c49eSManish V Badarkhe * SoC Firmware 228ad43c49eSManish V Badarkhe */ 229ad43c49eSManish V Badarkhe static const auth_img_desc_t soc_fw_key_cert = { 230ad43c49eSManish V Badarkhe .img_id = SOC_FW_KEY_CERT_ID, 231ad43c49eSManish V Badarkhe .img_type = IMG_CERT, 232ad43c49eSManish V Badarkhe .parent = &trusted_key_cert, 233ad43c49eSManish V Badarkhe .img_auth_methods = (const auth_method_desc_t[AUTH_METHOD_NUM]) { 234ad43c49eSManish V Badarkhe [0] = { 235ad43c49eSManish V Badarkhe .type = AUTH_METHOD_SIG, 236ad43c49eSManish V Badarkhe .param.sig = { 237ad43c49eSManish V Badarkhe .pk = &trusted_world_pk, 238ad43c49eSManish V Badarkhe .sig = &sig, 239ad43c49eSManish V Badarkhe .alg = &sig_alg, 240ad43c49eSManish V Badarkhe .data = &raw_data 241ad43c49eSManish V Badarkhe } 242ad43c49eSManish V Badarkhe }, 243ad43c49eSManish V Badarkhe [1] = { 244ad43c49eSManish V Badarkhe .type = AUTH_METHOD_NV_CTR, 245ad43c49eSManish V Badarkhe .param.nv_ctr = { 246ad43c49eSManish V Badarkhe .cert_nv_ctr = &trusted_nv_ctr, 247ad43c49eSManish V Badarkhe .plat_nv_ctr = &trusted_nv_ctr 248ad43c49eSManish V Badarkhe } 249ad43c49eSManish V Badarkhe } 250ad43c49eSManish V Badarkhe }, 251ad43c49eSManish V Badarkhe .authenticated_data = (const auth_param_desc_t[COT_MAX_VERIFIED_PARAMS]) { 252ad43c49eSManish V Badarkhe [0] = { 253ad43c49eSManish V Badarkhe .type_desc = &soc_fw_content_pk, 254ad43c49eSManish V Badarkhe .data = { 255ad43c49eSManish V Badarkhe .ptr = (void *)content_pk_buf, 256ad43c49eSManish V Badarkhe .len = (unsigned int)PK_DER_LEN 257ad43c49eSManish V Badarkhe } 258ad43c49eSManish V Badarkhe } 259ad43c49eSManish V Badarkhe } 260ad43c49eSManish V Badarkhe }; 261ad43c49eSManish V Badarkhe static const auth_img_desc_t soc_fw_content_cert = { 262ad43c49eSManish V Badarkhe .img_id = SOC_FW_CONTENT_CERT_ID, 263ad43c49eSManish V Badarkhe .img_type = IMG_CERT, 264ad43c49eSManish V Badarkhe .parent = &soc_fw_key_cert, 265ad43c49eSManish V Badarkhe .img_auth_methods = (const auth_method_desc_t[AUTH_METHOD_NUM]) { 266ad43c49eSManish V Badarkhe [0] = { 267ad43c49eSManish V Badarkhe .type = AUTH_METHOD_SIG, 268ad43c49eSManish V Badarkhe .param.sig = { 269ad43c49eSManish V Badarkhe .pk = &soc_fw_content_pk, 270ad43c49eSManish V Badarkhe .sig = &sig, 271ad43c49eSManish V Badarkhe .alg = &sig_alg, 272ad43c49eSManish V Badarkhe .data = &raw_data 273ad43c49eSManish V Badarkhe } 274ad43c49eSManish V Badarkhe }, 275ad43c49eSManish V Badarkhe [1] = { 276ad43c49eSManish V Badarkhe .type = AUTH_METHOD_NV_CTR, 277ad43c49eSManish V Badarkhe .param.nv_ctr = { 278ad43c49eSManish V Badarkhe .cert_nv_ctr = &trusted_nv_ctr, 279ad43c49eSManish V Badarkhe .plat_nv_ctr = &trusted_nv_ctr 280ad43c49eSManish V Badarkhe } 281ad43c49eSManish V Badarkhe } 282ad43c49eSManish V Badarkhe }, 283ad43c49eSManish V Badarkhe .authenticated_data = (const auth_param_desc_t[COT_MAX_VERIFIED_PARAMS]) { 284ad43c49eSManish V Badarkhe [0] = { 285ad43c49eSManish V Badarkhe .type_desc = &soc_fw_hash, 286ad43c49eSManish V Badarkhe .data = { 287ad43c49eSManish V Badarkhe .ptr = (void *)soc_fw_hash_buf, 288ad43c49eSManish V Badarkhe .len = (unsigned int)HASH_DER_LEN 289ad43c49eSManish V Badarkhe } 290ad43c49eSManish V Badarkhe }, 291ad43c49eSManish V Badarkhe [1] = { 292ad43c49eSManish V Badarkhe .type_desc = &soc_fw_config_hash, 293ad43c49eSManish V Badarkhe .data = { 294ad43c49eSManish V Badarkhe .ptr = (void *)soc_fw_config_hash_buf, 295ad43c49eSManish V Badarkhe .len = (unsigned int)HASH_DER_LEN 296ad43c49eSManish V Badarkhe } 297ad43c49eSManish V Badarkhe } 298ad43c49eSManish V Badarkhe } 299ad43c49eSManish V Badarkhe }; 300ad43c49eSManish V Badarkhe static const auth_img_desc_t bl31_image = { 301ad43c49eSManish V Badarkhe .img_id = BL31_IMAGE_ID, 302ad43c49eSManish V Badarkhe .img_type = IMG_RAW, 303ad43c49eSManish V Badarkhe .parent = &soc_fw_content_cert, 304ad43c49eSManish V Badarkhe .img_auth_methods = (const auth_method_desc_t[AUTH_METHOD_NUM]) { 305ad43c49eSManish V Badarkhe [0] = { 306ad43c49eSManish V Badarkhe .type = AUTH_METHOD_HASH, 307ad43c49eSManish V Badarkhe .param.hash = { 308ad43c49eSManish V Badarkhe .data = &raw_data, 309ad43c49eSManish V Badarkhe .hash = &soc_fw_hash 310ad43c49eSManish V Badarkhe } 311ad43c49eSManish V Badarkhe } 312ad43c49eSManish V Badarkhe } 313ad43c49eSManish V Badarkhe }; 314ad43c49eSManish V Badarkhe /* SOC FW Config */ 315ad43c49eSManish V Badarkhe static const auth_img_desc_t soc_fw_config = { 316ad43c49eSManish V Badarkhe .img_id = SOC_FW_CONFIG_ID, 317ad43c49eSManish V Badarkhe .img_type = IMG_RAW, 318ad43c49eSManish V Badarkhe .parent = &soc_fw_content_cert, 319ad43c49eSManish V Badarkhe .img_auth_methods = (const auth_method_desc_t[AUTH_METHOD_NUM]) { 320ad43c49eSManish V Badarkhe [0] = { 321ad43c49eSManish V Badarkhe .type = AUTH_METHOD_HASH, 322ad43c49eSManish V Badarkhe .param.hash = { 323ad43c49eSManish V Badarkhe .data = &raw_data, 324ad43c49eSManish V Badarkhe .hash = &soc_fw_config_hash 325ad43c49eSManish V Badarkhe } 326ad43c49eSManish V Badarkhe } 327ad43c49eSManish V Badarkhe } 328ad43c49eSManish V Badarkhe }; 329ad43c49eSManish V Badarkhe /* 330ad43c49eSManish V Badarkhe * Trusted OS Firmware 331ad43c49eSManish V Badarkhe */ 332ad43c49eSManish V Badarkhe static const auth_img_desc_t trusted_os_fw_key_cert = { 333ad43c49eSManish V Badarkhe .img_id = TRUSTED_OS_FW_KEY_CERT_ID, 334ad43c49eSManish V Badarkhe .img_type = IMG_CERT, 335ad43c49eSManish V Badarkhe .parent = &trusted_key_cert, 336ad43c49eSManish V Badarkhe .img_auth_methods = (const auth_method_desc_t[AUTH_METHOD_NUM]) { 337ad43c49eSManish V Badarkhe [0] = { 338ad43c49eSManish V Badarkhe .type = AUTH_METHOD_SIG, 339ad43c49eSManish V Badarkhe .param.sig = { 340ad43c49eSManish V Badarkhe .pk = &trusted_world_pk, 341ad43c49eSManish V Badarkhe .sig = &sig, 342ad43c49eSManish V Badarkhe .alg = &sig_alg, 343ad43c49eSManish V Badarkhe .data = &raw_data 344ad43c49eSManish V Badarkhe } 345ad43c49eSManish V Badarkhe }, 346ad43c49eSManish V Badarkhe [1] = { 347ad43c49eSManish V Badarkhe .type = AUTH_METHOD_NV_CTR, 348ad43c49eSManish V Badarkhe .param.nv_ctr = { 349ad43c49eSManish V Badarkhe .cert_nv_ctr = &trusted_nv_ctr, 350ad43c49eSManish V Badarkhe .plat_nv_ctr = &trusted_nv_ctr 351ad43c49eSManish V Badarkhe } 352ad43c49eSManish V Badarkhe } 353ad43c49eSManish V Badarkhe }, 354ad43c49eSManish V Badarkhe .authenticated_data = (const auth_param_desc_t[COT_MAX_VERIFIED_PARAMS]) { 355ad43c49eSManish V Badarkhe [0] = { 356ad43c49eSManish V Badarkhe .type_desc = &tos_fw_content_pk, 357ad43c49eSManish V Badarkhe .data = { 358ad43c49eSManish V Badarkhe .ptr = (void *)content_pk_buf, 359ad43c49eSManish V Badarkhe .len = (unsigned int)PK_DER_LEN 360ad43c49eSManish V Badarkhe } 361ad43c49eSManish V Badarkhe } 362ad43c49eSManish V Badarkhe } 363ad43c49eSManish V Badarkhe }; 364ad43c49eSManish V Badarkhe static const auth_img_desc_t trusted_os_fw_content_cert = { 365ad43c49eSManish V Badarkhe .img_id = TRUSTED_OS_FW_CONTENT_CERT_ID, 366ad43c49eSManish V Badarkhe .img_type = IMG_CERT, 367ad43c49eSManish V Badarkhe .parent = &trusted_os_fw_key_cert, 368ad43c49eSManish V Badarkhe .img_auth_methods = (const auth_method_desc_t[AUTH_METHOD_NUM]) { 369ad43c49eSManish V Badarkhe [0] = { 370ad43c49eSManish V Badarkhe .type = AUTH_METHOD_SIG, 371ad43c49eSManish V Badarkhe .param.sig = { 372ad43c49eSManish V Badarkhe .pk = &tos_fw_content_pk, 373ad43c49eSManish V Badarkhe .sig = &sig, 374ad43c49eSManish V Badarkhe .alg = &sig_alg, 375ad43c49eSManish V Badarkhe .data = &raw_data 376ad43c49eSManish V Badarkhe } 377ad43c49eSManish V Badarkhe }, 378ad43c49eSManish V Badarkhe [1] = { 379ad43c49eSManish V Badarkhe .type = AUTH_METHOD_NV_CTR, 380ad43c49eSManish V Badarkhe .param.nv_ctr = { 381ad43c49eSManish V Badarkhe .cert_nv_ctr = &trusted_nv_ctr, 382ad43c49eSManish V Badarkhe .plat_nv_ctr = &trusted_nv_ctr 383ad43c49eSManish V Badarkhe } 384ad43c49eSManish V Badarkhe } 385ad43c49eSManish V Badarkhe }, 386ad43c49eSManish V Badarkhe .authenticated_data = (const auth_param_desc_t[COT_MAX_VERIFIED_PARAMS]) { 387ad43c49eSManish V Badarkhe [0] = { 388ad43c49eSManish V Badarkhe .type_desc = &tos_fw_hash, 389ad43c49eSManish V Badarkhe .data = { 390ad43c49eSManish V Badarkhe .ptr = (void *)tos_fw_hash_buf, 391ad43c49eSManish V Badarkhe .len = (unsigned int)HASH_DER_LEN 392ad43c49eSManish V Badarkhe } 393ad43c49eSManish V Badarkhe }, 394ad43c49eSManish V Badarkhe [1] = { 395ad43c49eSManish V Badarkhe .type_desc = &tos_fw_extra1_hash, 396ad43c49eSManish V Badarkhe .data = { 397ad43c49eSManish V Badarkhe .ptr = (void *)tos_fw_extra1_hash_buf, 398ad43c49eSManish V Badarkhe .len = (unsigned int)HASH_DER_LEN 399ad43c49eSManish V Badarkhe } 400ad43c49eSManish V Badarkhe }, 401ad43c49eSManish V Badarkhe [2] = { 402ad43c49eSManish V Badarkhe .type_desc = &tos_fw_extra2_hash, 403ad43c49eSManish V Badarkhe .data = { 404ad43c49eSManish V Badarkhe .ptr = (void *)tos_fw_extra2_hash_buf, 405ad43c49eSManish V Badarkhe .len = (unsigned int)HASH_DER_LEN 406ad43c49eSManish V Badarkhe } 407ad43c49eSManish V Badarkhe }, 408ad43c49eSManish V Badarkhe [3] = { 409ad43c49eSManish V Badarkhe .type_desc = &tos_fw_config_hash, 410ad43c49eSManish V Badarkhe .data = { 411ad43c49eSManish V Badarkhe .ptr = (void *)tos_fw_config_hash_buf, 412ad43c49eSManish V Badarkhe .len = (unsigned int)HASH_DER_LEN 413ad43c49eSManish V Badarkhe } 414ad43c49eSManish V Badarkhe } 415ad43c49eSManish V Badarkhe } 416ad43c49eSManish V Badarkhe }; 417ad43c49eSManish V Badarkhe static const auth_img_desc_t bl32_image = { 418ad43c49eSManish V Badarkhe .img_id = BL32_IMAGE_ID, 419ad43c49eSManish V Badarkhe .img_type = IMG_RAW, 420ad43c49eSManish V Badarkhe .parent = &trusted_os_fw_content_cert, 421ad43c49eSManish V Badarkhe .img_auth_methods = (const auth_method_desc_t[AUTH_METHOD_NUM]) { 422ad43c49eSManish V Badarkhe [0] = { 423ad43c49eSManish V Badarkhe .type = AUTH_METHOD_HASH, 424ad43c49eSManish V Badarkhe .param.hash = { 425ad43c49eSManish V Badarkhe .data = &raw_data, 426ad43c49eSManish V Badarkhe .hash = &tos_fw_hash 427ad43c49eSManish V Badarkhe } 428ad43c49eSManish V Badarkhe } 429ad43c49eSManish V Badarkhe } 430ad43c49eSManish V Badarkhe }; 431ad43c49eSManish V Badarkhe static const auth_img_desc_t bl32_extra1_image = { 432ad43c49eSManish V Badarkhe .img_id = BL32_EXTRA1_IMAGE_ID, 433ad43c49eSManish V Badarkhe .img_type = IMG_RAW, 434ad43c49eSManish V Badarkhe .parent = &trusted_os_fw_content_cert, 435ad43c49eSManish V Badarkhe .img_auth_methods = (const auth_method_desc_t[AUTH_METHOD_NUM]) { 436ad43c49eSManish V Badarkhe [0] = { 437ad43c49eSManish V Badarkhe .type = AUTH_METHOD_HASH, 438ad43c49eSManish V Badarkhe .param.hash = { 439ad43c49eSManish V Badarkhe .data = &raw_data, 440ad43c49eSManish V Badarkhe .hash = &tos_fw_extra1_hash 441ad43c49eSManish V Badarkhe } 442ad43c49eSManish V Badarkhe } 443ad43c49eSManish V Badarkhe } 444ad43c49eSManish V Badarkhe }; 445ad43c49eSManish V Badarkhe static const auth_img_desc_t bl32_extra2_image = { 446ad43c49eSManish V Badarkhe .img_id = BL32_EXTRA2_IMAGE_ID, 447ad43c49eSManish V Badarkhe .img_type = IMG_RAW, 448ad43c49eSManish V Badarkhe .parent = &trusted_os_fw_content_cert, 449ad43c49eSManish V Badarkhe .img_auth_methods = (const auth_method_desc_t[AUTH_METHOD_NUM]) { 450ad43c49eSManish V Badarkhe [0] = { 451ad43c49eSManish V Badarkhe .type = AUTH_METHOD_HASH, 452ad43c49eSManish V Badarkhe .param.hash = { 453ad43c49eSManish V Badarkhe .data = &raw_data, 454ad43c49eSManish V Badarkhe .hash = &tos_fw_extra2_hash 455ad43c49eSManish V Badarkhe } 456ad43c49eSManish V Badarkhe } 457ad43c49eSManish V Badarkhe } 458ad43c49eSManish V Badarkhe }; 459ad43c49eSManish V Badarkhe /* TOS FW Config */ 460ad43c49eSManish V Badarkhe static const auth_img_desc_t tos_fw_config = { 461ad43c49eSManish V Badarkhe .img_id = TOS_FW_CONFIG_ID, 462ad43c49eSManish V Badarkhe .img_type = IMG_RAW, 463ad43c49eSManish V Badarkhe .parent = &trusted_os_fw_content_cert, 464ad43c49eSManish V Badarkhe .img_auth_methods = (const auth_method_desc_t[AUTH_METHOD_NUM]) { 465ad43c49eSManish V Badarkhe [0] = { 466ad43c49eSManish V Badarkhe .type = AUTH_METHOD_HASH, 467ad43c49eSManish V Badarkhe .param.hash = { 468ad43c49eSManish V Badarkhe .data = &raw_data, 469ad43c49eSManish V Badarkhe .hash = &tos_fw_config_hash 470ad43c49eSManish V Badarkhe } 471ad43c49eSManish V Badarkhe } 472ad43c49eSManish V Badarkhe } 473ad43c49eSManish V Badarkhe }; 474ad43c49eSManish V Badarkhe /* 475ad43c49eSManish V Badarkhe * Non-Trusted Firmware 476ad43c49eSManish V Badarkhe */ 477ad43c49eSManish V Badarkhe static const auth_img_desc_t non_trusted_fw_key_cert = { 478ad43c49eSManish V Badarkhe .img_id = NON_TRUSTED_FW_KEY_CERT_ID, 479ad43c49eSManish V Badarkhe .img_type = IMG_CERT, 480ad43c49eSManish V Badarkhe .parent = &trusted_key_cert, 481ad43c49eSManish V Badarkhe .img_auth_methods = (const auth_method_desc_t[AUTH_METHOD_NUM]) { 482ad43c49eSManish V Badarkhe [0] = { 483ad43c49eSManish V Badarkhe .type = AUTH_METHOD_SIG, 484ad43c49eSManish V Badarkhe .param.sig = { 485ad43c49eSManish V Badarkhe .pk = &non_trusted_world_pk, 486ad43c49eSManish V Badarkhe .sig = &sig, 487ad43c49eSManish V Badarkhe .alg = &sig_alg, 488ad43c49eSManish V Badarkhe .data = &raw_data 489ad43c49eSManish V Badarkhe } 490ad43c49eSManish V Badarkhe }, 491ad43c49eSManish V Badarkhe [1] = { 492ad43c49eSManish V Badarkhe .type = AUTH_METHOD_NV_CTR, 493ad43c49eSManish V Badarkhe .param.nv_ctr = { 494ad43c49eSManish V Badarkhe .cert_nv_ctr = &non_trusted_nv_ctr, 495ad43c49eSManish V Badarkhe .plat_nv_ctr = &non_trusted_nv_ctr 496ad43c49eSManish V Badarkhe } 497ad43c49eSManish V Badarkhe } 498ad43c49eSManish V Badarkhe }, 499ad43c49eSManish V Badarkhe .authenticated_data = (const auth_param_desc_t[COT_MAX_VERIFIED_PARAMS]) { 500ad43c49eSManish V Badarkhe [0] = { 501ad43c49eSManish V Badarkhe .type_desc = &nt_fw_content_pk, 502ad43c49eSManish V Badarkhe .data = { 503ad43c49eSManish V Badarkhe .ptr = (void *)content_pk_buf, 504ad43c49eSManish V Badarkhe .len = (unsigned int)PK_DER_LEN 505ad43c49eSManish V Badarkhe } 506ad43c49eSManish V Badarkhe } 507ad43c49eSManish V Badarkhe } 508ad43c49eSManish V Badarkhe }; 509ad43c49eSManish V Badarkhe static const auth_img_desc_t non_trusted_fw_content_cert = { 510ad43c49eSManish V Badarkhe .img_id = NON_TRUSTED_FW_CONTENT_CERT_ID, 511ad43c49eSManish V Badarkhe .img_type = IMG_CERT, 512ad43c49eSManish V Badarkhe .parent = &non_trusted_fw_key_cert, 513ad43c49eSManish V Badarkhe .img_auth_methods = (const auth_method_desc_t[AUTH_METHOD_NUM]) { 514ad43c49eSManish V Badarkhe [0] = { 515ad43c49eSManish V Badarkhe .type = AUTH_METHOD_SIG, 516ad43c49eSManish V Badarkhe .param.sig = { 517ad43c49eSManish V Badarkhe .pk = &nt_fw_content_pk, 518ad43c49eSManish V Badarkhe .sig = &sig, 519ad43c49eSManish V Badarkhe .alg = &sig_alg, 520ad43c49eSManish V Badarkhe .data = &raw_data 521ad43c49eSManish V Badarkhe } 522ad43c49eSManish V Badarkhe }, 523ad43c49eSManish V Badarkhe [1] = { 524ad43c49eSManish V Badarkhe .type = AUTH_METHOD_NV_CTR, 525ad43c49eSManish V Badarkhe .param.nv_ctr = { 526ad43c49eSManish V Badarkhe .cert_nv_ctr = &non_trusted_nv_ctr, 527ad43c49eSManish V Badarkhe .plat_nv_ctr = &non_trusted_nv_ctr 528ad43c49eSManish V Badarkhe } 529ad43c49eSManish V Badarkhe } 530ad43c49eSManish V Badarkhe }, 531ad43c49eSManish V Badarkhe .authenticated_data = (const auth_param_desc_t[COT_MAX_VERIFIED_PARAMS]) { 532ad43c49eSManish V Badarkhe [0] = { 533ad43c49eSManish V Badarkhe .type_desc = &nt_world_bl_hash, 534ad43c49eSManish V Badarkhe .data = { 535ad43c49eSManish V Badarkhe .ptr = (void *)nt_world_bl_hash_buf, 536ad43c49eSManish V Badarkhe .len = (unsigned int)HASH_DER_LEN 537ad43c49eSManish V Badarkhe } 538ad43c49eSManish V Badarkhe }, 539ad43c49eSManish V Badarkhe [1] = { 540ad43c49eSManish V Badarkhe .type_desc = &nt_fw_config_hash, 541ad43c49eSManish V Badarkhe .data = { 542ad43c49eSManish V Badarkhe .ptr = (void *)nt_fw_config_hash_buf, 543ad43c49eSManish V Badarkhe .len = (unsigned int)HASH_DER_LEN 544ad43c49eSManish V Badarkhe } 545ad43c49eSManish V Badarkhe } 546ad43c49eSManish V Badarkhe } 547ad43c49eSManish V Badarkhe }; 548ad43c49eSManish V Badarkhe static const auth_img_desc_t bl33_image = { 549ad43c49eSManish V Badarkhe .img_id = BL33_IMAGE_ID, 550ad43c49eSManish V Badarkhe .img_type = IMG_RAW, 551ad43c49eSManish V Badarkhe .parent = &non_trusted_fw_content_cert, 552ad43c49eSManish V Badarkhe .img_auth_methods = (const auth_method_desc_t[AUTH_METHOD_NUM]) { 553ad43c49eSManish V Badarkhe [0] = { 554ad43c49eSManish V Badarkhe .type = AUTH_METHOD_HASH, 555ad43c49eSManish V Badarkhe .param.hash = { 556ad43c49eSManish V Badarkhe .data = &raw_data, 557ad43c49eSManish V Badarkhe .hash = &nt_world_bl_hash 558ad43c49eSManish V Badarkhe } 559ad43c49eSManish V Badarkhe } 560ad43c49eSManish V Badarkhe } 561ad43c49eSManish V Badarkhe }; 562ad43c49eSManish V Badarkhe /* NT FW Config */ 563ad43c49eSManish V Badarkhe static const auth_img_desc_t nt_fw_config = { 564ad43c49eSManish V Badarkhe .img_id = NT_FW_CONFIG_ID, 565ad43c49eSManish V Badarkhe .img_type = IMG_RAW, 566ad43c49eSManish V Badarkhe .parent = &non_trusted_fw_content_cert, 567ad43c49eSManish V Badarkhe .img_auth_methods = (const auth_method_desc_t[AUTH_METHOD_NUM]) { 568ad43c49eSManish V Badarkhe [0] = { 569ad43c49eSManish V Badarkhe .type = AUTH_METHOD_HASH, 570ad43c49eSManish V Badarkhe .param.hash = { 571ad43c49eSManish V Badarkhe .data = &raw_data, 572ad43c49eSManish V Badarkhe .hash = &nt_fw_config_hash 573ad43c49eSManish V Badarkhe } 574ad43c49eSManish V Badarkhe } 575ad43c49eSManish V Badarkhe } 576ad43c49eSManish V Badarkhe }; 57768758dd6SManish Pandey /* Secure Partitions */ 57868758dd6SManish Pandey #if defined(SPD_spmd) 57903a5225cSManish Pandey static const auth_img_desc_t sip_sp_content_cert = { 58003a5225cSManish Pandey .img_id = SIP_SP_CONTENT_CERT_ID, 58168758dd6SManish Pandey .img_type = IMG_CERT, 58268758dd6SManish Pandey .parent = &trusted_key_cert, 58368758dd6SManish Pandey .img_auth_methods = (const auth_method_desc_t[AUTH_METHOD_NUM]) { 58468758dd6SManish Pandey [0] = { 58568758dd6SManish Pandey .type = AUTH_METHOD_SIG, 58668758dd6SManish Pandey .param.sig = { 58768758dd6SManish Pandey .pk = &trusted_world_pk, 58868758dd6SManish Pandey .sig = &sig, 58968758dd6SManish Pandey .alg = &sig_alg, 59068758dd6SManish Pandey .data = &raw_data 59168758dd6SManish Pandey } 59268758dd6SManish Pandey }, 59368758dd6SManish Pandey [1] = { 59468758dd6SManish Pandey .type = AUTH_METHOD_NV_CTR, 59568758dd6SManish Pandey .param.nv_ctr = { 59668758dd6SManish Pandey .cert_nv_ctr = &trusted_nv_ctr, 59768758dd6SManish Pandey .plat_nv_ctr = &trusted_nv_ctr 59868758dd6SManish Pandey } 59968758dd6SManish Pandey } 60068758dd6SManish Pandey }, 60168758dd6SManish Pandey .authenticated_data = (const auth_param_desc_t[COT_MAX_VERIFIED_PARAMS]) { 60268758dd6SManish Pandey [0] = { 60368758dd6SManish Pandey .type_desc = &sp_pkg1_hash, 60468758dd6SManish Pandey .data = { 60568758dd6SManish Pandey .ptr = (void *)sp_pkg_hash_buf[0], 60668758dd6SManish Pandey .len = (unsigned int)HASH_DER_LEN 60768758dd6SManish Pandey } 60868758dd6SManish Pandey }, 60968758dd6SManish Pandey [1] = { 61068758dd6SManish Pandey .type_desc = &sp_pkg2_hash, 61168758dd6SManish Pandey .data = { 61268758dd6SManish Pandey .ptr = (void *)sp_pkg_hash_buf[1], 61368758dd6SManish Pandey .len = (unsigned int)HASH_DER_LEN 61468758dd6SManish Pandey } 61568758dd6SManish Pandey }, 61668758dd6SManish Pandey [2] = { 61768758dd6SManish Pandey .type_desc = &sp_pkg3_hash, 61868758dd6SManish Pandey .data = { 61968758dd6SManish Pandey .ptr = (void *)sp_pkg_hash_buf[2], 62068758dd6SManish Pandey .len = (unsigned int)HASH_DER_LEN 62168758dd6SManish Pandey } 62268758dd6SManish Pandey }, 62368758dd6SManish Pandey [3] = { 62468758dd6SManish Pandey .type_desc = &sp_pkg4_hash, 62568758dd6SManish Pandey .data = { 62668758dd6SManish Pandey .ptr = (void *)sp_pkg_hash_buf[3], 62768758dd6SManish Pandey .len = (unsigned int)HASH_DER_LEN 62868758dd6SManish Pandey } 62968758dd6SManish Pandey }, 63068758dd6SManish Pandey [4] = { 63168758dd6SManish Pandey .type_desc = &sp_pkg5_hash, 63268758dd6SManish Pandey .data = { 63368758dd6SManish Pandey .ptr = (void *)sp_pkg_hash_buf[4], 63468758dd6SManish Pandey .len = (unsigned int)HASH_DER_LEN 63568758dd6SManish Pandey } 63668758dd6SManish Pandey }, 63768758dd6SManish Pandey [5] = { 63868758dd6SManish Pandey .type_desc = &sp_pkg6_hash, 63968758dd6SManish Pandey .data = { 64068758dd6SManish Pandey .ptr = (void *)sp_pkg_hash_buf[5], 64168758dd6SManish Pandey .len = (unsigned int)HASH_DER_LEN 64268758dd6SManish Pandey } 64368758dd6SManish Pandey }, 64468758dd6SManish Pandey [6] = { 64568758dd6SManish Pandey .type_desc = &sp_pkg7_hash, 64668758dd6SManish Pandey .data = { 64768758dd6SManish Pandey .ptr = (void *)sp_pkg_hash_buf[6], 64868758dd6SManish Pandey .len = (unsigned int)HASH_DER_LEN 64968758dd6SManish Pandey } 65068758dd6SManish Pandey }, 65168758dd6SManish Pandey [7] = { 65268758dd6SManish Pandey .type_desc = &sp_pkg8_hash, 65368758dd6SManish Pandey .data = { 65468758dd6SManish Pandey .ptr = (void *)sp_pkg_hash_buf[7], 65568758dd6SManish Pandey .len = (unsigned int)HASH_DER_LEN 65668758dd6SManish Pandey } 65768758dd6SManish Pandey } 65868758dd6SManish Pandey } 65968758dd6SManish Pandey }; 66068758dd6SManish Pandey 66103a5225cSManish Pandey DEFINE_SIP_SP_PKG(1); 66203a5225cSManish Pandey DEFINE_SIP_SP_PKG(2); 66303a5225cSManish Pandey DEFINE_SIP_SP_PKG(3); 66403a5225cSManish Pandey DEFINE_SIP_SP_PKG(4); 66503a5225cSManish Pandey DEFINE_SIP_SP_PKG(5); 66603a5225cSManish Pandey DEFINE_SIP_SP_PKG(6); 66703a5225cSManish Pandey DEFINE_SIP_SP_PKG(7); 66803a5225cSManish Pandey DEFINE_SIP_SP_PKG(8); 66968758dd6SManish Pandey #endif /* SPD_spmd */ 670ad43c49eSManish V Badarkhe 671ad43c49eSManish V Badarkhe static const auth_img_desc_t * const cot_desc[] = { 672ad43c49eSManish V Badarkhe [TRUSTED_BOOT_FW_CERT_ID] = &trusted_boot_fw_cert, 673ad43c49eSManish V Badarkhe [HW_CONFIG_ID] = &hw_config, 674ad43c49eSManish V Badarkhe [TRUSTED_KEY_CERT_ID] = &trusted_key_cert, 675ad43c49eSManish V Badarkhe [SCP_FW_KEY_CERT_ID] = &scp_fw_key_cert, 676ad43c49eSManish V Badarkhe [SCP_FW_CONTENT_CERT_ID] = &scp_fw_content_cert, 677ad43c49eSManish V Badarkhe [SCP_BL2_IMAGE_ID] = &scp_bl2_image, 678ad43c49eSManish V Badarkhe [SOC_FW_KEY_CERT_ID] = &soc_fw_key_cert, 679ad43c49eSManish V Badarkhe [SOC_FW_CONTENT_CERT_ID] = &soc_fw_content_cert, 680ad43c49eSManish V Badarkhe [BL31_IMAGE_ID] = &bl31_image, 681ad43c49eSManish V Badarkhe [SOC_FW_CONFIG_ID] = &soc_fw_config, 682ad43c49eSManish V Badarkhe [TRUSTED_OS_FW_KEY_CERT_ID] = &trusted_os_fw_key_cert, 683ad43c49eSManish V Badarkhe [TRUSTED_OS_FW_CONTENT_CERT_ID] = &trusted_os_fw_content_cert, 684ad43c49eSManish V Badarkhe [BL32_IMAGE_ID] = &bl32_image, 685ad43c49eSManish V Badarkhe [BL32_EXTRA1_IMAGE_ID] = &bl32_extra1_image, 686ad43c49eSManish V Badarkhe [BL32_EXTRA2_IMAGE_ID] = &bl32_extra2_image, 687ad43c49eSManish V Badarkhe [TOS_FW_CONFIG_ID] = &tos_fw_config, 688ad43c49eSManish V Badarkhe [NON_TRUSTED_FW_KEY_CERT_ID] = &non_trusted_fw_key_cert, 689ad43c49eSManish V Badarkhe [NON_TRUSTED_FW_CONTENT_CERT_ID] = &non_trusted_fw_content_cert, 690ad43c49eSManish V Badarkhe [BL33_IMAGE_ID] = &bl33_image, 691ad43c49eSManish V Badarkhe [NT_FW_CONFIG_ID] = &nt_fw_config, 69268758dd6SManish Pandey #if defined(SPD_spmd) 69303a5225cSManish Pandey [SIP_SP_CONTENT_CERT_ID] = &sip_sp_content_cert, 69403a5225cSManish Pandey [SP_PKG1_ID] = &sp_pkg1, 69503a5225cSManish Pandey [SP_PKG2_ID] = &sp_pkg2, 69603a5225cSManish Pandey [SP_PKG3_ID] = &sp_pkg3, 69703a5225cSManish Pandey [SP_PKG4_ID] = &sp_pkg4, 69803a5225cSManish Pandey [SP_PKG5_ID] = &sp_pkg5, 69903a5225cSManish Pandey [SP_PKG6_ID] = &sp_pkg6, 70003a5225cSManish Pandey [SP_PKG7_ID] = &sp_pkg7, 70103a5225cSManish Pandey [SP_PKG8_ID] = &sp_pkg8, 70268758dd6SManish Pandey #endif 703ad43c49eSManish V Badarkhe }; 704ad43c49eSManish V Badarkhe 705ad43c49eSManish V Badarkhe /* Register the CoT in the authentication module */ 706ad43c49eSManish V Badarkhe REGISTER_COT(cot_desc); 707