#ifndef _UDS_FBL_SERVICE27_INCLUDE_ #define _UDS_FBL_SERVICE27_INCLUDE_ #ifdef __cplusplus extern "C" { #endif /******************************************************************************* ** Include Section ** *******************************************************************************/ #include "stdint.h" #include "stdbool.h" #include "uds_fbl_mgr.h" #include "uds_response_code.h" #include "BootDiagTp.h" /******************************************************************************* ** Version Information ** *******************************************************************************/ /******************************************************************************* ** Version Check ** *******************************************************************************/ /******************************************************************************* ** Global Data ** *******************************************************************************/ #define UDS_SEED_LENGTH 4 #define UDS_KEY_LENGTH 4 typedef enum __UDS_SA_LV__ { UDS_SA_NON = 0, UDS_SA_LV4, }uds_sa_lv; /******************************************************************************* ** Function Declarations ** *******************************************************************************/ uint8_t ApplDiag_SecurityAccess_27(UDSpacket_t* qUDSpacket); uds_nrc service27_nrc_check(UDSpacket_t* qUDSpacket); uint8_t crc8(uint8_t *data, uint32_t length); bool ASAP1A_CCP_ComputeKeyFromSeed(uint8_t *seed, uint16_t sizeSeed, uint8_t *key, uint16_t maxSizeKey); void service27_generate_seed(UDSpacket_t* qUDSpacket); void service27_calc_key(uint8_t *key); uds_nrc service27_verify_key(UDSpacket_t* qUDSpacket); uint8_t service27_rand(void); void service27_char2int(uint8_t buf[], uint32_t *pval); void delayTimerCounterCheck(uint16_t *pdelayTimerCounter); void service27_init(void); uint8_t service27_get_currsa(void); void service27_set_currsa(uint8_t CurrentSecLvl); uint8_t service27_write_faaflag(uint8_t flag); /******************************************************************************* ** End of File ** *******************************************************************************/ #ifdef __cplusplus } #endif #endif /*_UDS_FBL_SERVICE27_INCLUDE_*/