1 /* 2 * Copyright (c) 2015, ARM Limited and Contributors. All rights reserved. 3 * 4 * SPDX-License-Identifier: BSD-3-Clause 5 */ 6 7 #ifndef __AUTH_MOD_H__ 8 #define __AUTH_MOD_H__ 9 10 #if TRUSTED_BOARD_BOOT 11 12 #include <auth_common.h> 13 #include <cot_def.h> 14 #include <img_parser_mod.h> 15 16 /* 17 * Image flags 18 */ 19 #define IMG_FLAG_AUTHENTICATED (1 << 0) 20 21 22 /* 23 * Authentication image descriptor 24 */ 25 typedef struct auth_img_desc_s { 26 unsigned int img_id; 27 img_type_t img_type; 28 const struct auth_img_desc_s *parent; 29 auth_method_desc_t img_auth_methods[AUTH_METHOD_NUM]; 30 auth_param_desc_t authenticated_data[COT_MAX_VERIFIED_PARAMS]; 31 } auth_img_desc_t; 32 33 /* Public functions */ 34 void auth_mod_init(void); 35 int auth_mod_get_parent_id(unsigned int img_id, unsigned int *parent_id); 36 int auth_mod_verify_img(unsigned int img_id, 37 void *img_ptr, 38 unsigned int img_len); 39 40 /* Macro to register a CoT defined as an array of auth_img_desc_t */ 41 #define REGISTER_COT(_cot) \ 42 const auth_img_desc_t *const cot_desc_ptr = \ 43 (const auth_img_desc_t *const)&_cot[0]; \ 44 unsigned int auth_img_flags[sizeof(_cot)/sizeof(_cot[0])] 45 46 #endif /* TRUSTED_BOARD_BOOT */ 47 48 #endif /* __AUTH_MOD_H__ */ 49