// ======================================================================================================== // ======================================================================================================== // ******************************************** token_common.h ******************************************** // ======================================================================================================== // ======================================================================================================== #include #include #include /******************************** DEFINES ***********************************/ #define OUT_CP_RESET 31 #define OUT_CP_PUF_START 30 #define OUT_CP_NUM_SAM1 29 #define OUT_CP_NUM_SAM0 28 #define OUT_CP_REUSE_PNS_MODE 27 // THIS IS HARDCODED NOW TO SKE 5 // #define OUT_CP_SKE_VAL_SELECT 26 #define OUT_CP_OFFSET_HALF_OR_FULL_MOD_RANGE 26 #define OUT_CP_LM_ULM_DONE 25 #define OUT_CP_HANDSHAKE 24 // "00" token authentication, "01" server authentication, "10" session key, "11" Enrollment #define OUT_CP_MODE1 23 #define OUT_CP_MODE0 22 // '0' above modes, '1' KEK mode. Any of "00", "01" or "10" is KEK regen while "11" is KEK enrollment #define OUT_CP_KEK 21 #define OUT_CP_DTO_DATA_READY 20 #define OUT_CP_DTO_RESTART 19 #define OUT_CP_DTO_VEC_LOADED 18 #define OUT_CP_DTI_DONE_READING 17 #define OUT_CP_DTI_RESTART 16 #define IN_SM_READY 31 #define IN_SM_DTI_DATA_READY 30 #define IN_SM_DTO_DONE_READING 29 #define IN_SM_HANDSHAKE 28 // #define IN_SM_HELPER_DATA_DONE 27 // #define IN_SM_BIT_GEN_DONE 26 #define IN_TVCOMP_ERR 25 #define IN_PNDIFF_OVERFLOW_ERR 24 #define IN_SM_LOAD_VEC_PAIR 23 #define IN_SM_DONE_ALL_VECS 22 #define IN_SM_DHBG_SBS_DONE 21 // GPIO 0 #define GPIO_0_BASE_ADDR 0x41200000 #define CTRL_DIRECTION_MASK 0x00 #define DATA_DIRECTION_MASK 0xFFFFFFFF void LoadVecPairMask(int str_length, volatile unsigned int *CtrlRegA, volatile unsigned int *DataRegA, int max_vecs, int vec_num, unsigned char *first_vecs_b[max_vecs], unsigned char *second_vecs_b[max_vecs], int ctrl_mask, int vec_len_bits, int vec_chunk_size, int has_masks, int mask_len_bits, unsigned char *masks[max_vecs]); int ReceiveVectors(int str_length, int verifier_socket_desc, int max_vecs, unsigned char *first_vecs_b[max_vecs], unsigned char *second_vecs_b[max_vecs], int vec_len_bits, int *num_rise_vecs_ptr, int *has_masks_ptr, int mask_len_bits, unsigned char *masks[max_vecs]);