/* * * Copyright 2016 NXP * SPDX-License-Identifier: Apache-2.0 */ #ifndef _APDUCOMM_H_ #define _APDUCOMM_H_ #include "sm_types.h" /// @cond #define APDU_OFFSET_CLA (0) #define APDU_OFFSET_INS (1) #define APDU_OFFSET_P1 (2) #define APDU_OFFSET_P2 (3) /// @endcond #define APDU_OFFSET_LC (4) //!< Zero index based offset into the APDU of the LC field. /** * Contains APDU exchanged between Host and Secure Modulde. */ typedef struct { U8 cla; U8 ins; U8 p1; U8 p2; U8* pBuf; U16 buflen; U16 rxlen; U8 extendedLength; U8 hasData; U16 lc; U8 lcLength; U8 hasLe; U16 le; U8 leLength; U16 offset; #ifdef TGT_A71CL U8 txHasChkSum; U16 txChkSum; U16 txChkSumLength; U8 rxHasChkSum; U16 rxChkSum; U16 rxChkSumLength; #endif } apdu_t; /** * Contains APDU TxRx case as described in ISO/IEC FDIS 7816-3 spec. */ typedef enum { APDU_TXRX_CASE_1 = 0x00, APDU_TXRX_CASE_2 = 0x01, APDU_TXRX_CASE_2E = 0x02, APDU_TXRX_CASE_3 = 0x03, APDU_TXRX_CASE_3E = 0x04, APDU_TXRX_CASE_4 = 0x05, APDU_TXRX_CASE_4E = 0x06, APDU_TXRX_CASE_INVALID = 0xFF, } apduTxRx_case_t; #endif //_APDUCOMM_H_