1ad43c49eSManish V Badarkhe /* 2*a8eadc51SGovindraj Raja * Copyright (c) 2015-2023, 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 9*a8eadc51SGovindraj 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> 13*a8eadc51SGovindraj 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 20*a8eadc51SGovindraj Raja #include <platform_def.h> 21*a8eadc51SGovindraj 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 87ad43c49eSManish V Badarkhe /* 88ad43c49eSManish V Badarkhe * Trusted key certificate 89ad43c49eSManish V Badarkhe */ 90ad43c49eSManish V Badarkhe static const auth_img_desc_t trusted_key_cert = { 91ad43c49eSManish V Badarkhe .img_id = TRUSTED_KEY_CERT_ID, 92ad43c49eSManish V Badarkhe .img_type = IMG_CERT, 93ad43c49eSManish V Badarkhe .parent = NULL, 94ad43c49eSManish V Badarkhe .img_auth_methods = (const auth_method_desc_t[AUTH_METHOD_NUM]) { 95ad43c49eSManish V Badarkhe [0] = { 96ad43c49eSManish V Badarkhe .type = AUTH_METHOD_SIG, 97ad43c49eSManish V Badarkhe .param.sig = { 98ad43c49eSManish V Badarkhe .pk = &subject_pk, 99ad43c49eSManish V Badarkhe .sig = &sig, 100ad43c49eSManish V Badarkhe .alg = &sig_alg, 101ad43c49eSManish V Badarkhe .data = &raw_data 102ad43c49eSManish V Badarkhe } 103ad43c49eSManish V Badarkhe }, 104ad43c49eSManish V Badarkhe [1] = { 105ad43c49eSManish V Badarkhe .type = AUTH_METHOD_NV_CTR, 106ad43c49eSManish V Badarkhe .param.nv_ctr = { 107ad43c49eSManish V Badarkhe .cert_nv_ctr = &trusted_nv_ctr, 108ad43c49eSManish V Badarkhe .plat_nv_ctr = &trusted_nv_ctr 109ad43c49eSManish V Badarkhe } 110ad43c49eSManish V Badarkhe } 111ad43c49eSManish V Badarkhe }, 112ad43c49eSManish V Badarkhe .authenticated_data = (const auth_param_desc_t[COT_MAX_VERIFIED_PARAMS]) { 113ad43c49eSManish V Badarkhe [0] = { 114ad43c49eSManish V Badarkhe .type_desc = &trusted_world_pk, 115ad43c49eSManish V Badarkhe .data = { 116ad43c49eSManish V Badarkhe .ptr = (void *)trusted_world_pk_buf, 117ad43c49eSManish V Badarkhe .len = (unsigned int)PK_DER_LEN 118ad43c49eSManish V Badarkhe } 119ad43c49eSManish V Badarkhe }, 120ad43c49eSManish V Badarkhe [1] = { 121ad43c49eSManish V Badarkhe .type_desc = &non_trusted_world_pk, 122ad43c49eSManish V Badarkhe .data = { 123ad43c49eSManish V Badarkhe .ptr = (void *)non_trusted_world_pk_buf, 124ad43c49eSManish V Badarkhe .len = (unsigned int)PK_DER_LEN 125ad43c49eSManish V Badarkhe } 126ad43c49eSManish V Badarkhe } 127ad43c49eSManish V Badarkhe } 128ad43c49eSManish V Badarkhe }; 129ad43c49eSManish V Badarkhe /* 130ad43c49eSManish V Badarkhe * SCP Firmware 131ad43c49eSManish V Badarkhe */ 132ad43c49eSManish V Badarkhe static const auth_img_desc_t scp_fw_key_cert = { 133ad43c49eSManish V Badarkhe .img_id = SCP_FW_KEY_CERT_ID, 134ad43c49eSManish V Badarkhe .img_type = IMG_CERT, 135ad43c49eSManish V Badarkhe .parent = &trusted_key_cert, 136ad43c49eSManish V Badarkhe .img_auth_methods = (const auth_method_desc_t[AUTH_METHOD_NUM]) { 137ad43c49eSManish V Badarkhe [0] = { 138ad43c49eSManish V Badarkhe .type = AUTH_METHOD_SIG, 139ad43c49eSManish V Badarkhe .param.sig = { 140ad43c49eSManish V Badarkhe .pk = &trusted_world_pk, 141ad43c49eSManish V Badarkhe .sig = &sig, 142ad43c49eSManish V Badarkhe .alg = &sig_alg, 143ad43c49eSManish V Badarkhe .data = &raw_data 144ad43c49eSManish V Badarkhe } 145ad43c49eSManish V Badarkhe }, 146ad43c49eSManish V Badarkhe [1] = { 147ad43c49eSManish V Badarkhe .type = AUTH_METHOD_NV_CTR, 148ad43c49eSManish V Badarkhe .param.nv_ctr = { 149ad43c49eSManish V Badarkhe .cert_nv_ctr = &trusted_nv_ctr, 150ad43c49eSManish V Badarkhe .plat_nv_ctr = &trusted_nv_ctr 151ad43c49eSManish V Badarkhe } 152ad43c49eSManish V Badarkhe } 153ad43c49eSManish V Badarkhe }, 154ad43c49eSManish V Badarkhe .authenticated_data = (const auth_param_desc_t[COT_MAX_VERIFIED_PARAMS]) { 155ad43c49eSManish V Badarkhe [0] = { 156ad43c49eSManish V Badarkhe .type_desc = &scp_fw_content_pk, 157ad43c49eSManish V Badarkhe .data = { 158ad43c49eSManish V Badarkhe .ptr = (void *)content_pk_buf, 159ad43c49eSManish V Badarkhe .len = (unsigned int)PK_DER_LEN 160ad43c49eSManish V Badarkhe } 161ad43c49eSManish V Badarkhe } 162ad43c49eSManish V Badarkhe } 163ad43c49eSManish V Badarkhe }; 164ad43c49eSManish V Badarkhe static const auth_img_desc_t scp_fw_content_cert = { 165ad43c49eSManish V Badarkhe .img_id = SCP_FW_CONTENT_CERT_ID, 166ad43c49eSManish V Badarkhe .img_type = IMG_CERT, 167ad43c49eSManish V Badarkhe .parent = &scp_fw_key_cert, 168ad43c49eSManish V Badarkhe .img_auth_methods = (const auth_method_desc_t[AUTH_METHOD_NUM]) { 169ad43c49eSManish V Badarkhe [0] = { 170ad43c49eSManish V Badarkhe .type = AUTH_METHOD_SIG, 171ad43c49eSManish V Badarkhe .param.sig = { 172ad43c49eSManish V Badarkhe .pk = &scp_fw_content_pk, 173ad43c49eSManish V Badarkhe .sig = &sig, 174ad43c49eSManish V Badarkhe .alg = &sig_alg, 175ad43c49eSManish V Badarkhe .data = &raw_data 176ad43c49eSManish V Badarkhe } 177ad43c49eSManish V Badarkhe }, 178ad43c49eSManish V Badarkhe [1] = { 179ad43c49eSManish V Badarkhe .type = AUTH_METHOD_NV_CTR, 180ad43c49eSManish V Badarkhe .param.nv_ctr = { 181ad43c49eSManish V Badarkhe .cert_nv_ctr = &trusted_nv_ctr, 182ad43c49eSManish V Badarkhe .plat_nv_ctr = &trusted_nv_ctr 183ad43c49eSManish V Badarkhe } 184ad43c49eSManish V Badarkhe } 185ad43c49eSManish V Badarkhe }, 186ad43c49eSManish V Badarkhe .authenticated_data = (const auth_param_desc_t[COT_MAX_VERIFIED_PARAMS]) { 187ad43c49eSManish V Badarkhe [0] = { 188ad43c49eSManish V Badarkhe .type_desc = &scp_fw_hash, 189ad43c49eSManish V Badarkhe .data = { 190ad43c49eSManish V Badarkhe .ptr = (void *)scp_fw_hash_buf, 191ad43c49eSManish V Badarkhe .len = (unsigned int)HASH_DER_LEN 192ad43c49eSManish V Badarkhe } 193ad43c49eSManish V Badarkhe } 194ad43c49eSManish V Badarkhe } 195ad43c49eSManish V Badarkhe }; 196ad43c49eSManish V Badarkhe static const auth_img_desc_t scp_bl2_image = { 197ad43c49eSManish V Badarkhe .img_id = SCP_BL2_IMAGE_ID, 198ad43c49eSManish V Badarkhe .img_type = IMG_RAW, 199ad43c49eSManish V Badarkhe .parent = &scp_fw_content_cert, 200ad43c49eSManish V Badarkhe .img_auth_methods = (const auth_method_desc_t[AUTH_METHOD_NUM]) { 201ad43c49eSManish V Badarkhe [0] = { 202ad43c49eSManish V Badarkhe .type = AUTH_METHOD_HASH, 203ad43c49eSManish V Badarkhe .param.hash = { 204ad43c49eSManish V Badarkhe .data = &raw_data, 205ad43c49eSManish V Badarkhe .hash = &scp_fw_hash 206ad43c49eSManish V Badarkhe } 207ad43c49eSManish V Badarkhe } 208ad43c49eSManish V Badarkhe } 209ad43c49eSManish V Badarkhe }; 210ad43c49eSManish V Badarkhe /* 211ad43c49eSManish V Badarkhe * SoC Firmware 212ad43c49eSManish V Badarkhe */ 213ad43c49eSManish V Badarkhe static const auth_img_desc_t soc_fw_key_cert = { 214ad43c49eSManish V Badarkhe .img_id = SOC_FW_KEY_CERT_ID, 215ad43c49eSManish V Badarkhe .img_type = IMG_CERT, 216ad43c49eSManish V Badarkhe .parent = &trusted_key_cert, 217ad43c49eSManish V Badarkhe .img_auth_methods = (const auth_method_desc_t[AUTH_METHOD_NUM]) { 218ad43c49eSManish V Badarkhe [0] = { 219ad43c49eSManish V Badarkhe .type = AUTH_METHOD_SIG, 220ad43c49eSManish V Badarkhe .param.sig = { 221ad43c49eSManish V Badarkhe .pk = &trusted_world_pk, 222ad43c49eSManish V Badarkhe .sig = &sig, 223ad43c49eSManish V Badarkhe .alg = &sig_alg, 224ad43c49eSManish V Badarkhe .data = &raw_data 225ad43c49eSManish V Badarkhe } 226ad43c49eSManish V Badarkhe }, 227ad43c49eSManish V Badarkhe [1] = { 228ad43c49eSManish V Badarkhe .type = AUTH_METHOD_NV_CTR, 229ad43c49eSManish V Badarkhe .param.nv_ctr = { 230ad43c49eSManish V Badarkhe .cert_nv_ctr = &trusted_nv_ctr, 231ad43c49eSManish V Badarkhe .plat_nv_ctr = &trusted_nv_ctr 232ad43c49eSManish V Badarkhe } 233ad43c49eSManish V Badarkhe } 234ad43c49eSManish V Badarkhe }, 235ad43c49eSManish V Badarkhe .authenticated_data = (const auth_param_desc_t[COT_MAX_VERIFIED_PARAMS]) { 236ad43c49eSManish V Badarkhe [0] = { 237ad43c49eSManish V Badarkhe .type_desc = &soc_fw_content_pk, 238ad43c49eSManish V Badarkhe .data = { 239ad43c49eSManish V Badarkhe .ptr = (void *)content_pk_buf, 240ad43c49eSManish V Badarkhe .len = (unsigned int)PK_DER_LEN 241ad43c49eSManish V Badarkhe } 242ad43c49eSManish V Badarkhe } 243ad43c49eSManish V Badarkhe } 244ad43c49eSManish V Badarkhe }; 245ad43c49eSManish V Badarkhe static const auth_img_desc_t soc_fw_content_cert = { 246ad43c49eSManish V Badarkhe .img_id = SOC_FW_CONTENT_CERT_ID, 247ad43c49eSManish V Badarkhe .img_type = IMG_CERT, 248ad43c49eSManish V Badarkhe .parent = &soc_fw_key_cert, 249ad43c49eSManish V Badarkhe .img_auth_methods = (const auth_method_desc_t[AUTH_METHOD_NUM]) { 250ad43c49eSManish V Badarkhe [0] = { 251ad43c49eSManish V Badarkhe .type = AUTH_METHOD_SIG, 252ad43c49eSManish V Badarkhe .param.sig = { 253ad43c49eSManish V Badarkhe .pk = &soc_fw_content_pk, 254ad43c49eSManish V Badarkhe .sig = &sig, 255ad43c49eSManish V Badarkhe .alg = &sig_alg, 256ad43c49eSManish V Badarkhe .data = &raw_data 257ad43c49eSManish V Badarkhe } 258ad43c49eSManish V Badarkhe }, 259ad43c49eSManish V Badarkhe [1] = { 260ad43c49eSManish V Badarkhe .type = AUTH_METHOD_NV_CTR, 261ad43c49eSManish V Badarkhe .param.nv_ctr = { 262ad43c49eSManish V Badarkhe .cert_nv_ctr = &trusted_nv_ctr, 263ad43c49eSManish V Badarkhe .plat_nv_ctr = &trusted_nv_ctr 264ad43c49eSManish V Badarkhe } 265ad43c49eSManish V Badarkhe } 266ad43c49eSManish V Badarkhe }, 267ad43c49eSManish V Badarkhe .authenticated_data = (const auth_param_desc_t[COT_MAX_VERIFIED_PARAMS]) { 268ad43c49eSManish V Badarkhe [0] = { 269ad43c49eSManish V Badarkhe .type_desc = &soc_fw_hash, 270ad43c49eSManish V Badarkhe .data = { 271ad43c49eSManish V Badarkhe .ptr = (void *)soc_fw_hash_buf, 272ad43c49eSManish V Badarkhe .len = (unsigned int)HASH_DER_LEN 273ad43c49eSManish V Badarkhe } 274ad43c49eSManish V Badarkhe }, 275ad43c49eSManish V Badarkhe [1] = { 276ad43c49eSManish V Badarkhe .type_desc = &soc_fw_config_hash, 277ad43c49eSManish V Badarkhe .data = { 278ad43c49eSManish V Badarkhe .ptr = (void *)soc_fw_config_hash_buf, 279ad43c49eSManish V Badarkhe .len = (unsigned int)HASH_DER_LEN 280ad43c49eSManish V Badarkhe } 281ad43c49eSManish V Badarkhe } 282ad43c49eSManish V Badarkhe } 283ad43c49eSManish V Badarkhe }; 284ad43c49eSManish V Badarkhe static const auth_img_desc_t bl31_image = { 285ad43c49eSManish V Badarkhe .img_id = BL31_IMAGE_ID, 286ad43c49eSManish V Badarkhe .img_type = IMG_RAW, 287ad43c49eSManish V Badarkhe .parent = &soc_fw_content_cert, 288ad43c49eSManish V Badarkhe .img_auth_methods = (const auth_method_desc_t[AUTH_METHOD_NUM]) { 289ad43c49eSManish V Badarkhe [0] = { 290ad43c49eSManish V Badarkhe .type = AUTH_METHOD_HASH, 291ad43c49eSManish V Badarkhe .param.hash = { 292ad43c49eSManish V Badarkhe .data = &raw_data, 293ad43c49eSManish V Badarkhe .hash = &soc_fw_hash 294ad43c49eSManish V Badarkhe } 295ad43c49eSManish V Badarkhe } 296ad43c49eSManish V Badarkhe } 297ad43c49eSManish V Badarkhe }; 298ad43c49eSManish V Badarkhe /* SOC FW Config */ 299ad43c49eSManish V Badarkhe static const auth_img_desc_t soc_fw_config = { 300ad43c49eSManish V Badarkhe .img_id = SOC_FW_CONFIG_ID, 301ad43c49eSManish V Badarkhe .img_type = IMG_RAW, 302ad43c49eSManish V Badarkhe .parent = &soc_fw_content_cert, 303ad43c49eSManish V Badarkhe .img_auth_methods = (const auth_method_desc_t[AUTH_METHOD_NUM]) { 304ad43c49eSManish V Badarkhe [0] = { 305ad43c49eSManish V Badarkhe .type = AUTH_METHOD_HASH, 306ad43c49eSManish V Badarkhe .param.hash = { 307ad43c49eSManish V Badarkhe .data = &raw_data, 308ad43c49eSManish V Badarkhe .hash = &soc_fw_config_hash 309ad43c49eSManish V Badarkhe } 310ad43c49eSManish V Badarkhe } 311ad43c49eSManish V Badarkhe } 312ad43c49eSManish V Badarkhe }; 313ad43c49eSManish V Badarkhe /* 314ad43c49eSManish V Badarkhe * Trusted OS Firmware 315ad43c49eSManish V Badarkhe */ 316ad43c49eSManish V Badarkhe static const auth_img_desc_t trusted_os_fw_key_cert = { 317ad43c49eSManish V Badarkhe .img_id = TRUSTED_OS_FW_KEY_CERT_ID, 318ad43c49eSManish V Badarkhe .img_type = IMG_CERT, 319ad43c49eSManish V Badarkhe .parent = &trusted_key_cert, 320ad43c49eSManish V Badarkhe .img_auth_methods = (const auth_method_desc_t[AUTH_METHOD_NUM]) { 321ad43c49eSManish V Badarkhe [0] = { 322ad43c49eSManish V Badarkhe .type = AUTH_METHOD_SIG, 323ad43c49eSManish V Badarkhe .param.sig = { 324ad43c49eSManish V Badarkhe .pk = &trusted_world_pk, 325ad43c49eSManish V Badarkhe .sig = &sig, 326ad43c49eSManish V Badarkhe .alg = &sig_alg, 327ad43c49eSManish V Badarkhe .data = &raw_data 328ad43c49eSManish V Badarkhe } 329ad43c49eSManish V Badarkhe }, 330ad43c49eSManish V Badarkhe [1] = { 331ad43c49eSManish V Badarkhe .type = AUTH_METHOD_NV_CTR, 332ad43c49eSManish V Badarkhe .param.nv_ctr = { 333ad43c49eSManish V Badarkhe .cert_nv_ctr = &trusted_nv_ctr, 334ad43c49eSManish V Badarkhe .plat_nv_ctr = &trusted_nv_ctr 335ad43c49eSManish V Badarkhe } 336ad43c49eSManish V Badarkhe } 337ad43c49eSManish V Badarkhe }, 338ad43c49eSManish V Badarkhe .authenticated_data = (const auth_param_desc_t[COT_MAX_VERIFIED_PARAMS]) { 339ad43c49eSManish V Badarkhe [0] = { 340ad43c49eSManish V Badarkhe .type_desc = &tos_fw_content_pk, 341ad43c49eSManish V Badarkhe .data = { 342ad43c49eSManish V Badarkhe .ptr = (void *)content_pk_buf, 343ad43c49eSManish V Badarkhe .len = (unsigned int)PK_DER_LEN 344ad43c49eSManish V Badarkhe } 345ad43c49eSManish V Badarkhe } 346ad43c49eSManish V Badarkhe } 347ad43c49eSManish V Badarkhe }; 348ad43c49eSManish V Badarkhe static const auth_img_desc_t trusted_os_fw_content_cert = { 349ad43c49eSManish V Badarkhe .img_id = TRUSTED_OS_FW_CONTENT_CERT_ID, 350ad43c49eSManish V Badarkhe .img_type = IMG_CERT, 351ad43c49eSManish V Badarkhe .parent = &trusted_os_fw_key_cert, 352ad43c49eSManish V Badarkhe .img_auth_methods = (const auth_method_desc_t[AUTH_METHOD_NUM]) { 353ad43c49eSManish V Badarkhe [0] = { 354ad43c49eSManish V Badarkhe .type = AUTH_METHOD_SIG, 355ad43c49eSManish V Badarkhe .param.sig = { 356ad43c49eSManish V Badarkhe .pk = &tos_fw_content_pk, 357ad43c49eSManish V Badarkhe .sig = &sig, 358ad43c49eSManish V Badarkhe .alg = &sig_alg, 359ad43c49eSManish V Badarkhe .data = &raw_data 360ad43c49eSManish V Badarkhe } 361ad43c49eSManish V Badarkhe }, 362ad43c49eSManish V Badarkhe [1] = { 363ad43c49eSManish V Badarkhe .type = AUTH_METHOD_NV_CTR, 364ad43c49eSManish V Badarkhe .param.nv_ctr = { 365ad43c49eSManish V Badarkhe .cert_nv_ctr = &trusted_nv_ctr, 366ad43c49eSManish V Badarkhe .plat_nv_ctr = &trusted_nv_ctr 367ad43c49eSManish V Badarkhe } 368ad43c49eSManish V Badarkhe } 369ad43c49eSManish V Badarkhe }, 370ad43c49eSManish V Badarkhe .authenticated_data = (const auth_param_desc_t[COT_MAX_VERIFIED_PARAMS]) { 371ad43c49eSManish V Badarkhe [0] = { 372ad43c49eSManish V Badarkhe .type_desc = &tos_fw_hash, 373ad43c49eSManish V Badarkhe .data = { 374ad43c49eSManish V Badarkhe .ptr = (void *)tos_fw_hash_buf, 375ad43c49eSManish V Badarkhe .len = (unsigned int)HASH_DER_LEN 376ad43c49eSManish V Badarkhe } 377ad43c49eSManish V Badarkhe }, 378ad43c49eSManish V Badarkhe [1] = { 379ad43c49eSManish V Badarkhe .type_desc = &tos_fw_extra1_hash, 380ad43c49eSManish V Badarkhe .data = { 381ad43c49eSManish V Badarkhe .ptr = (void *)tos_fw_extra1_hash_buf, 382ad43c49eSManish V Badarkhe .len = (unsigned int)HASH_DER_LEN 383ad43c49eSManish V Badarkhe } 384ad43c49eSManish V Badarkhe }, 385ad43c49eSManish V Badarkhe [2] = { 386ad43c49eSManish V Badarkhe .type_desc = &tos_fw_extra2_hash, 387ad43c49eSManish V Badarkhe .data = { 388ad43c49eSManish V Badarkhe .ptr = (void *)tos_fw_extra2_hash_buf, 389ad43c49eSManish V Badarkhe .len = (unsigned int)HASH_DER_LEN 390ad43c49eSManish V Badarkhe } 391ad43c49eSManish V Badarkhe }, 392ad43c49eSManish V Badarkhe [3] = { 393ad43c49eSManish V Badarkhe .type_desc = &tos_fw_config_hash, 394ad43c49eSManish V Badarkhe .data = { 395ad43c49eSManish V Badarkhe .ptr = (void *)tos_fw_config_hash_buf, 396ad43c49eSManish V Badarkhe .len = (unsigned int)HASH_DER_LEN 397ad43c49eSManish V Badarkhe } 398ad43c49eSManish V Badarkhe } 399ad43c49eSManish V Badarkhe } 400ad43c49eSManish V Badarkhe }; 401ad43c49eSManish V Badarkhe static const auth_img_desc_t bl32_image = { 402ad43c49eSManish V Badarkhe .img_id = BL32_IMAGE_ID, 403ad43c49eSManish V Badarkhe .img_type = IMG_RAW, 404ad43c49eSManish V Badarkhe .parent = &trusted_os_fw_content_cert, 405ad43c49eSManish V Badarkhe .img_auth_methods = (const auth_method_desc_t[AUTH_METHOD_NUM]) { 406ad43c49eSManish V Badarkhe [0] = { 407ad43c49eSManish V Badarkhe .type = AUTH_METHOD_HASH, 408ad43c49eSManish V Badarkhe .param.hash = { 409ad43c49eSManish V Badarkhe .data = &raw_data, 410ad43c49eSManish V Badarkhe .hash = &tos_fw_hash 411ad43c49eSManish V Badarkhe } 412ad43c49eSManish V Badarkhe } 413ad43c49eSManish V Badarkhe } 414ad43c49eSManish V Badarkhe }; 415ad43c49eSManish V Badarkhe static const auth_img_desc_t bl32_extra1_image = { 416ad43c49eSManish V Badarkhe .img_id = BL32_EXTRA1_IMAGE_ID, 417ad43c49eSManish V Badarkhe .img_type = IMG_RAW, 418ad43c49eSManish V Badarkhe .parent = &trusted_os_fw_content_cert, 419ad43c49eSManish V Badarkhe .img_auth_methods = (const auth_method_desc_t[AUTH_METHOD_NUM]) { 420ad43c49eSManish V Badarkhe [0] = { 421ad43c49eSManish V Badarkhe .type = AUTH_METHOD_HASH, 422ad43c49eSManish V Badarkhe .param.hash = { 423ad43c49eSManish V Badarkhe .data = &raw_data, 424ad43c49eSManish V Badarkhe .hash = &tos_fw_extra1_hash 425ad43c49eSManish V Badarkhe } 426ad43c49eSManish V Badarkhe } 427ad43c49eSManish V Badarkhe } 428ad43c49eSManish V Badarkhe }; 429ad43c49eSManish V Badarkhe static const auth_img_desc_t bl32_extra2_image = { 430ad43c49eSManish V Badarkhe .img_id = BL32_EXTRA2_IMAGE_ID, 431ad43c49eSManish V Badarkhe .img_type = IMG_RAW, 432ad43c49eSManish V Badarkhe .parent = &trusted_os_fw_content_cert, 433ad43c49eSManish V Badarkhe .img_auth_methods = (const auth_method_desc_t[AUTH_METHOD_NUM]) { 434ad43c49eSManish V Badarkhe [0] = { 435ad43c49eSManish V Badarkhe .type = AUTH_METHOD_HASH, 436ad43c49eSManish V Badarkhe .param.hash = { 437ad43c49eSManish V Badarkhe .data = &raw_data, 438ad43c49eSManish V Badarkhe .hash = &tos_fw_extra2_hash 439ad43c49eSManish V Badarkhe } 440ad43c49eSManish V Badarkhe } 441ad43c49eSManish V Badarkhe } 442ad43c49eSManish V Badarkhe }; 443ad43c49eSManish V Badarkhe /* TOS FW Config */ 444ad43c49eSManish V Badarkhe static const auth_img_desc_t tos_fw_config = { 445ad43c49eSManish V Badarkhe .img_id = TOS_FW_CONFIG_ID, 446ad43c49eSManish V Badarkhe .img_type = IMG_RAW, 447ad43c49eSManish V Badarkhe .parent = &trusted_os_fw_content_cert, 448ad43c49eSManish V Badarkhe .img_auth_methods = (const auth_method_desc_t[AUTH_METHOD_NUM]) { 449ad43c49eSManish V Badarkhe [0] = { 450ad43c49eSManish V Badarkhe .type = AUTH_METHOD_HASH, 451ad43c49eSManish V Badarkhe .param.hash = { 452ad43c49eSManish V Badarkhe .data = &raw_data, 453ad43c49eSManish V Badarkhe .hash = &tos_fw_config_hash 454ad43c49eSManish V Badarkhe } 455ad43c49eSManish V Badarkhe } 456ad43c49eSManish V Badarkhe } 457ad43c49eSManish V Badarkhe }; 458ad43c49eSManish V Badarkhe /* 459ad43c49eSManish V Badarkhe * Non-Trusted Firmware 460ad43c49eSManish V Badarkhe */ 461ad43c49eSManish V Badarkhe static const auth_img_desc_t non_trusted_fw_key_cert = { 462ad43c49eSManish V Badarkhe .img_id = NON_TRUSTED_FW_KEY_CERT_ID, 463ad43c49eSManish V Badarkhe .img_type = IMG_CERT, 464ad43c49eSManish V Badarkhe .parent = &trusted_key_cert, 465ad43c49eSManish V Badarkhe .img_auth_methods = (const auth_method_desc_t[AUTH_METHOD_NUM]) { 466ad43c49eSManish V Badarkhe [0] = { 467ad43c49eSManish V Badarkhe .type = AUTH_METHOD_SIG, 468ad43c49eSManish V Badarkhe .param.sig = { 469ad43c49eSManish V Badarkhe .pk = &non_trusted_world_pk, 470ad43c49eSManish V Badarkhe .sig = &sig, 471ad43c49eSManish V Badarkhe .alg = &sig_alg, 472ad43c49eSManish V Badarkhe .data = &raw_data 473ad43c49eSManish V Badarkhe } 474ad43c49eSManish V Badarkhe }, 475ad43c49eSManish V Badarkhe [1] = { 476ad43c49eSManish V Badarkhe .type = AUTH_METHOD_NV_CTR, 477ad43c49eSManish V Badarkhe .param.nv_ctr = { 478ad43c49eSManish V Badarkhe .cert_nv_ctr = &non_trusted_nv_ctr, 479ad43c49eSManish V Badarkhe .plat_nv_ctr = &non_trusted_nv_ctr 480ad43c49eSManish V Badarkhe } 481ad43c49eSManish V Badarkhe } 482ad43c49eSManish V Badarkhe }, 483ad43c49eSManish V Badarkhe .authenticated_data = (const auth_param_desc_t[COT_MAX_VERIFIED_PARAMS]) { 484ad43c49eSManish V Badarkhe [0] = { 485ad43c49eSManish V Badarkhe .type_desc = &nt_fw_content_pk, 486ad43c49eSManish V Badarkhe .data = { 487ad43c49eSManish V Badarkhe .ptr = (void *)content_pk_buf, 488ad43c49eSManish V Badarkhe .len = (unsigned int)PK_DER_LEN 489ad43c49eSManish V Badarkhe } 490ad43c49eSManish V Badarkhe } 491ad43c49eSManish V Badarkhe } 492ad43c49eSManish V Badarkhe }; 493ad43c49eSManish V Badarkhe static const auth_img_desc_t non_trusted_fw_content_cert = { 494ad43c49eSManish V Badarkhe .img_id = NON_TRUSTED_FW_CONTENT_CERT_ID, 495ad43c49eSManish V Badarkhe .img_type = IMG_CERT, 496ad43c49eSManish V Badarkhe .parent = &non_trusted_fw_key_cert, 497ad43c49eSManish V Badarkhe .img_auth_methods = (const auth_method_desc_t[AUTH_METHOD_NUM]) { 498ad43c49eSManish V Badarkhe [0] = { 499ad43c49eSManish V Badarkhe .type = AUTH_METHOD_SIG, 500ad43c49eSManish V Badarkhe .param.sig = { 501ad43c49eSManish V Badarkhe .pk = &nt_fw_content_pk, 502ad43c49eSManish V Badarkhe .sig = &sig, 503ad43c49eSManish V Badarkhe .alg = &sig_alg, 504ad43c49eSManish V Badarkhe .data = &raw_data 505ad43c49eSManish V Badarkhe } 506ad43c49eSManish V Badarkhe }, 507ad43c49eSManish V Badarkhe [1] = { 508ad43c49eSManish V Badarkhe .type = AUTH_METHOD_NV_CTR, 509ad43c49eSManish V Badarkhe .param.nv_ctr = { 510ad43c49eSManish V Badarkhe .cert_nv_ctr = &non_trusted_nv_ctr, 511ad43c49eSManish V Badarkhe .plat_nv_ctr = &non_trusted_nv_ctr 512ad43c49eSManish V Badarkhe } 513ad43c49eSManish V Badarkhe } 514ad43c49eSManish V Badarkhe }, 515ad43c49eSManish V Badarkhe .authenticated_data = (const auth_param_desc_t[COT_MAX_VERIFIED_PARAMS]) { 516ad43c49eSManish V Badarkhe [0] = { 517ad43c49eSManish V Badarkhe .type_desc = &nt_world_bl_hash, 518ad43c49eSManish V Badarkhe .data = { 519ad43c49eSManish V Badarkhe .ptr = (void *)nt_world_bl_hash_buf, 520ad43c49eSManish V Badarkhe .len = (unsigned int)HASH_DER_LEN 521ad43c49eSManish V Badarkhe } 522ad43c49eSManish V Badarkhe }, 523ad43c49eSManish V Badarkhe [1] = { 524ad43c49eSManish V Badarkhe .type_desc = &nt_fw_config_hash, 525ad43c49eSManish V Badarkhe .data = { 526ad43c49eSManish V Badarkhe .ptr = (void *)nt_fw_config_hash_buf, 527ad43c49eSManish V Badarkhe .len = (unsigned int)HASH_DER_LEN 528ad43c49eSManish V Badarkhe } 529ad43c49eSManish V Badarkhe } 530ad43c49eSManish V Badarkhe } 531ad43c49eSManish V Badarkhe }; 532ad43c49eSManish V Badarkhe static const auth_img_desc_t bl33_image = { 533ad43c49eSManish V Badarkhe .img_id = BL33_IMAGE_ID, 534ad43c49eSManish V Badarkhe .img_type = IMG_RAW, 535ad43c49eSManish V Badarkhe .parent = &non_trusted_fw_content_cert, 536ad43c49eSManish V Badarkhe .img_auth_methods = (const auth_method_desc_t[AUTH_METHOD_NUM]) { 537ad43c49eSManish V Badarkhe [0] = { 538ad43c49eSManish V Badarkhe .type = AUTH_METHOD_HASH, 539ad43c49eSManish V Badarkhe .param.hash = { 540ad43c49eSManish V Badarkhe .data = &raw_data, 541ad43c49eSManish V Badarkhe .hash = &nt_world_bl_hash 542ad43c49eSManish V Badarkhe } 543ad43c49eSManish V Badarkhe } 544ad43c49eSManish V Badarkhe } 545ad43c49eSManish V Badarkhe }; 546ad43c49eSManish V Badarkhe /* NT FW Config */ 547ad43c49eSManish V Badarkhe static const auth_img_desc_t nt_fw_config = { 548ad43c49eSManish V Badarkhe .img_id = NT_FW_CONFIG_ID, 549ad43c49eSManish V Badarkhe .img_type = IMG_RAW, 550ad43c49eSManish V Badarkhe .parent = &non_trusted_fw_content_cert, 551ad43c49eSManish V Badarkhe .img_auth_methods = (const auth_method_desc_t[AUTH_METHOD_NUM]) { 552ad43c49eSManish V Badarkhe [0] = { 553ad43c49eSManish V Badarkhe .type = AUTH_METHOD_HASH, 554ad43c49eSManish V Badarkhe .param.hash = { 555ad43c49eSManish V Badarkhe .data = &raw_data, 556ad43c49eSManish V Badarkhe .hash = &nt_fw_config_hash 557ad43c49eSManish V Badarkhe } 558ad43c49eSManish V Badarkhe } 559ad43c49eSManish V Badarkhe } 560ad43c49eSManish V Badarkhe }; 56168758dd6SManish Pandey /* Secure Partitions */ 56268758dd6SManish Pandey #if defined(SPD_spmd) 56303a5225cSManish Pandey static const auth_img_desc_t sip_sp_content_cert = { 56403a5225cSManish Pandey .img_id = SIP_SP_CONTENT_CERT_ID, 56568758dd6SManish Pandey .img_type = IMG_CERT, 56668758dd6SManish Pandey .parent = &trusted_key_cert, 56768758dd6SManish Pandey .img_auth_methods = (const auth_method_desc_t[AUTH_METHOD_NUM]) { 56868758dd6SManish Pandey [0] = { 56968758dd6SManish Pandey .type = AUTH_METHOD_SIG, 57068758dd6SManish Pandey .param.sig = { 57168758dd6SManish Pandey .pk = &trusted_world_pk, 57268758dd6SManish Pandey .sig = &sig, 57368758dd6SManish Pandey .alg = &sig_alg, 57468758dd6SManish Pandey .data = &raw_data 57568758dd6SManish Pandey } 57668758dd6SManish Pandey }, 57768758dd6SManish Pandey [1] = { 57868758dd6SManish Pandey .type = AUTH_METHOD_NV_CTR, 57968758dd6SManish Pandey .param.nv_ctr = { 58068758dd6SManish Pandey .cert_nv_ctr = &trusted_nv_ctr, 58168758dd6SManish Pandey .plat_nv_ctr = &trusted_nv_ctr 58268758dd6SManish Pandey } 58368758dd6SManish Pandey } 58468758dd6SManish Pandey }, 58568758dd6SManish Pandey .authenticated_data = (const auth_param_desc_t[COT_MAX_VERIFIED_PARAMS]) { 58668758dd6SManish Pandey [0] = { 58768758dd6SManish Pandey .type_desc = &sp_pkg1_hash, 58868758dd6SManish Pandey .data = { 58968758dd6SManish Pandey .ptr = (void *)sp_pkg_hash_buf[0], 59068758dd6SManish Pandey .len = (unsigned int)HASH_DER_LEN 59168758dd6SManish Pandey } 59268758dd6SManish Pandey }, 59368758dd6SManish Pandey [1] = { 59468758dd6SManish Pandey .type_desc = &sp_pkg2_hash, 59568758dd6SManish Pandey .data = { 59668758dd6SManish Pandey .ptr = (void *)sp_pkg_hash_buf[1], 59768758dd6SManish Pandey .len = (unsigned int)HASH_DER_LEN 59868758dd6SManish Pandey } 59968758dd6SManish Pandey }, 60068758dd6SManish Pandey [2] = { 60168758dd6SManish Pandey .type_desc = &sp_pkg3_hash, 60268758dd6SManish Pandey .data = { 60368758dd6SManish Pandey .ptr = (void *)sp_pkg_hash_buf[2], 60468758dd6SManish Pandey .len = (unsigned int)HASH_DER_LEN 60568758dd6SManish Pandey } 60668758dd6SManish Pandey }, 60768758dd6SManish Pandey [3] = { 60868758dd6SManish Pandey .type_desc = &sp_pkg4_hash, 60968758dd6SManish Pandey .data = { 61068758dd6SManish Pandey .ptr = (void *)sp_pkg_hash_buf[3], 61168758dd6SManish Pandey .len = (unsigned int)HASH_DER_LEN 61268758dd6SManish Pandey } 61368758dd6SManish Pandey }, 61468758dd6SManish Pandey [4] = { 61568758dd6SManish Pandey .type_desc = &sp_pkg5_hash, 61668758dd6SManish Pandey .data = { 61768758dd6SManish Pandey .ptr = (void *)sp_pkg_hash_buf[4], 61868758dd6SManish Pandey .len = (unsigned int)HASH_DER_LEN 61968758dd6SManish Pandey } 62068758dd6SManish Pandey }, 62168758dd6SManish Pandey [5] = { 62268758dd6SManish Pandey .type_desc = &sp_pkg6_hash, 62368758dd6SManish Pandey .data = { 62468758dd6SManish Pandey .ptr = (void *)sp_pkg_hash_buf[5], 62568758dd6SManish Pandey .len = (unsigned int)HASH_DER_LEN 62668758dd6SManish Pandey } 62768758dd6SManish Pandey }, 62868758dd6SManish Pandey [6] = { 62968758dd6SManish Pandey .type_desc = &sp_pkg7_hash, 63068758dd6SManish Pandey .data = { 63168758dd6SManish Pandey .ptr = (void *)sp_pkg_hash_buf[6], 63268758dd6SManish Pandey .len = (unsigned int)HASH_DER_LEN 63368758dd6SManish Pandey } 63468758dd6SManish Pandey }, 63568758dd6SManish Pandey [7] = { 63668758dd6SManish Pandey .type_desc = &sp_pkg8_hash, 63768758dd6SManish Pandey .data = { 63868758dd6SManish Pandey .ptr = (void *)sp_pkg_hash_buf[7], 63968758dd6SManish Pandey .len = (unsigned int)HASH_DER_LEN 64068758dd6SManish Pandey } 64168758dd6SManish Pandey } 64268758dd6SManish Pandey } 64368758dd6SManish Pandey }; 64468758dd6SManish Pandey 64503a5225cSManish Pandey DEFINE_SIP_SP_PKG(1); 64603a5225cSManish Pandey DEFINE_SIP_SP_PKG(2); 64703a5225cSManish Pandey DEFINE_SIP_SP_PKG(3); 64803a5225cSManish Pandey DEFINE_SIP_SP_PKG(4); 64903a5225cSManish Pandey DEFINE_SIP_SP_PKG(5); 65003a5225cSManish Pandey DEFINE_SIP_SP_PKG(6); 65103a5225cSManish Pandey DEFINE_SIP_SP_PKG(7); 65203a5225cSManish Pandey DEFINE_SIP_SP_PKG(8); 65368758dd6SManish Pandey #endif /* SPD_spmd */ 654ad43c49eSManish V Badarkhe 655ad43c49eSManish V Badarkhe static const auth_img_desc_t * const cot_desc[] = { 656ad43c49eSManish V Badarkhe [TRUSTED_BOOT_FW_CERT_ID] = &trusted_boot_fw_cert, 657ad43c49eSManish V Badarkhe [HW_CONFIG_ID] = &hw_config, 658ad43c49eSManish V Badarkhe [TRUSTED_KEY_CERT_ID] = &trusted_key_cert, 659ad43c49eSManish V Badarkhe [SCP_FW_KEY_CERT_ID] = &scp_fw_key_cert, 660ad43c49eSManish V Badarkhe [SCP_FW_CONTENT_CERT_ID] = &scp_fw_content_cert, 661ad43c49eSManish V Badarkhe [SCP_BL2_IMAGE_ID] = &scp_bl2_image, 662ad43c49eSManish V Badarkhe [SOC_FW_KEY_CERT_ID] = &soc_fw_key_cert, 663ad43c49eSManish V Badarkhe [SOC_FW_CONTENT_CERT_ID] = &soc_fw_content_cert, 664ad43c49eSManish V Badarkhe [BL31_IMAGE_ID] = &bl31_image, 665ad43c49eSManish V Badarkhe [SOC_FW_CONFIG_ID] = &soc_fw_config, 666ad43c49eSManish V Badarkhe [TRUSTED_OS_FW_KEY_CERT_ID] = &trusted_os_fw_key_cert, 667ad43c49eSManish V Badarkhe [TRUSTED_OS_FW_CONTENT_CERT_ID] = &trusted_os_fw_content_cert, 668ad43c49eSManish V Badarkhe [BL32_IMAGE_ID] = &bl32_image, 669ad43c49eSManish V Badarkhe [BL32_EXTRA1_IMAGE_ID] = &bl32_extra1_image, 670ad43c49eSManish V Badarkhe [BL32_EXTRA2_IMAGE_ID] = &bl32_extra2_image, 671ad43c49eSManish V Badarkhe [TOS_FW_CONFIG_ID] = &tos_fw_config, 672ad43c49eSManish V Badarkhe [NON_TRUSTED_FW_KEY_CERT_ID] = &non_trusted_fw_key_cert, 673ad43c49eSManish V Badarkhe [NON_TRUSTED_FW_CONTENT_CERT_ID] = &non_trusted_fw_content_cert, 674ad43c49eSManish V Badarkhe [BL33_IMAGE_ID] = &bl33_image, 675ad43c49eSManish V Badarkhe [NT_FW_CONFIG_ID] = &nt_fw_config, 67668758dd6SManish Pandey #if defined(SPD_spmd) 67703a5225cSManish Pandey [SIP_SP_CONTENT_CERT_ID] = &sip_sp_content_cert, 67803a5225cSManish Pandey [SP_PKG1_ID] = &sp_pkg1, 67903a5225cSManish Pandey [SP_PKG2_ID] = &sp_pkg2, 68003a5225cSManish Pandey [SP_PKG3_ID] = &sp_pkg3, 68103a5225cSManish Pandey [SP_PKG4_ID] = &sp_pkg4, 68203a5225cSManish Pandey [SP_PKG5_ID] = &sp_pkg5, 68303a5225cSManish Pandey [SP_PKG6_ID] = &sp_pkg6, 68403a5225cSManish Pandey [SP_PKG7_ID] = &sp_pkg7, 68503a5225cSManish Pandey [SP_PKG8_ID] = &sp_pkg8, 68668758dd6SManish Pandey #endif 687ad43c49eSManish V Badarkhe }; 688ad43c49eSManish V Badarkhe 689ad43c49eSManish V Badarkhe /* Register the CoT in the authentication module */ 690ad43c49eSManish V Badarkhe REGISTER_COT(cot_desc); 691