sdi_emv.h
Last updated: 05-Mar-2025
Go to the documentation of this file.
1Â /**************************************************************************** 2Â * Product: ADK Secure Data Interface (SDI) 3Â * Company: Verifone 4Â * Author: GSS R&D Germany 5Â * Content: Client (structure) interface - EMV functions 6Â ****************************************************************************/ 7Â 8Â #ifndef _SDI_CLIENT_EMV_INTERFACE_H_ /* avoid double interface-includes */ 9Â #define _SDI_CLIENT_EMV_INTERFACE_H_ 10Â 11Â #ifdef __cplusplus 12Â extern "C" { 13Â #endif 14Â 15Â #include "emv/EMV_SDI.h" 16Â #include "emv/EMV_CT_Interface.h" 17Â #include "emv/EMV_CT_Link.h" 18Â #include "emv/EMV_CTLS_Interface.h" 19Â #include "emv/EMV_CTLS_Link.h" 20Â 21Â 22Â // ================================================================================================================================================== 35Â int SDI_Client_Init(const char* options); 36Â 37Â // ================================================================================================================================================== 38Â EMV_ADK_INFO SDI_CT_Init_Framework_Client(const char *version, unsigned char numberOfAIDs, EMV_CT_CALLBACK_FnT EMV_Callback, void* externalData, unsigned long options); 39Â #define SDI_CT_Init_Framework(numberOfAIDs, EMV_Callback, externalData, options) SDI_CT_Init_Framework_Client(EMV_CT_FRAMEWORK_VERSION, (numberOfAIDs), (EMV_Callback), (externalData), (options)) 40Â void SDI_CT_Exit_Framework(void); 41Â void SDI_CT_Exit_Framework_extended(unsigned char options); 42Â 43Â const char* SDI_CT_CLIENT_GetVersion(void); 44Â const char* SDI_CT_FRAMEWORK_GetVersion(void); 45Â 46Â EMV_ADK_INFO SDI_CT_MapVirtualTerminal(EMV_ADK_VIRTUALTERMMAP_TYPE VirtualTermMapType, unsigned char *TLVSwitchValue, unsigned int TLVBufLen, unsigned char VirtualTerminal); 47Â 48Â EMV_ADK_INFO SDI_CT_StoreCAPKey(EMV_ADK_HANDLE_RECORD_TYPE eHandleCAPKeyType, const EMV_CT_CAPKEY_TYPE *pxKeyData); 49Â EMV_ADK_INFO SDI_CT_ReadCAPKeys(EMV_CT_CAPREAD_TYPE *pxKeyData, unsigned char *pucMaxnum); 50Â EMV_ADK_INFO SDI_CT_GetCAPKeyInfo(EMV_CT_CAPREAD_TYPE *pxKeyInfo, unsigned capacity, unsigned offset, unsigned *received, unsigned *configured); 51Â EMV_ADK_INFO SDI_CT_SetTermData(EMV_CT_TERMDATA_TYPE* pxTermData); 52Â EMV_ADK_INFO SDI_CT_GetTermData(EMV_CT_TERMDATA_TYPE* pxTermData); 53Â EMV_ADK_INFO SDI_CT_SetAppliData(EMV_ADK_HANDLE_RECORD_TYPE eHandleAppliType, EMV_CT_APPLI_TYPE* pxAID, EMV_CT_APPLIDATA_TYPE* pxAppliData); 54Â EMV_ADK_INFO SDI_CT_GetAppliData(EMV_ADK_READAPPLI_TYPE eReadAppliType, EMV_CT_APPLI_TYPE* pxAID, EMV_CT_APPLIDATA_TYPE* pxAppliData); 55Â EMV_ADK_INFO SDI_CT_ApplyConfiguration(unsigned long options); 56Â 57Â EMV_ADK_INFO SDI_CT_StartTransaction(EMV_CT_SELECT_TYPE *pxSelectInput, EMV_CT_SELECTRES_TYPE* pxSelectRes); 58Â EMV_ADK_INFO SDI_CT_GetCandidateData(EMV_CT_CANDIDATE_DATA_TYPE *candidateData); 59Â EMV_ADK_INFO SDI_CT_ContinueOffline(EMV_CT_TRANSAC_TYPE *pxTransactionInput, EMV_CT_TRANSRES_TYPE *pxTransRes, EMV_SDI_CT_TRANSRES_TYPE *pxSdiTransRes); 60Â EMV_ADK_INFO SDI_CT_ContinueOnline(EMV_CT_HOST_TYPE *pxOnlineInput, EMV_CT_TRANSRES_TYPE *pxTransRes, EMV_SDI_CT_TRANSRES_TYPE *pxSdiTransRes); 61Â EMV_ADK_INFO SDI_CT_updateTxnTags(unsigned long options, unsigned char *tlvBuffer, unsigned short bufferLength); 62Â EMV_ADK_INFO SDI_CT_CheckSupportedAID(const EMV_CT_APPLI_TYPE* aid, unsigned char ASI, const unsigned char* defaultLabel, EMV_CT_CandListType* pCandList, 63Â unsigned char MaxCand, unsigned char* pCandidateCount, unsigned short* sw12, const unsigned char* adtCardTagList); 64Â EMV_ADK_INFO SDI_CT_EndTransaction(unsigned long options); 65Â 66Â unsigned char SDI_CT_SmartISO (unsigned char ucOptions, unsigned short usInDataLen, unsigned char *pucDataIn, unsigned short *pusOutDataLen, unsigned char *pucDataOut, unsigned short usOutBufferLength); 67Â unsigned char SDI_CT_SmartDetect(unsigned char ucOptions); 68Â unsigned char SDI_CT_SmartReset(unsigned char ucOptions, unsigned char* pucATR, unsigned long* pnATRLength); 69Â unsigned char SDI_CT_SmartPowerOff(unsigned char ucOptions); 70Â 71Â unsigned char SDI_CT_Send_PIN_Offline(unsigned char *pucPINResultData); 72Â 73Â unsigned char SDI_CT_LED(unsigned char ucLedId, unsigned char ucLedState, unsigned char ucLedColor, unsigned long ulTimeoutMs); 74Â 75Â 76Â // ================================================================================================================================================== 77Â EMV_ADK_INFO SDI_CT_SER_Init_Framework (const unsigned char *dataIn, unsigned short dataInLen, unsigned char *dataOut, unsigned short *dataOutLen); 78Â void SDI_CT_SER_Exit_Framework (const unsigned char *dataIn, unsigned short dataInLen, unsigned char *dataOut, unsigned short *dataOutLen); 79Â EMV_ADK_INFO SDI_CT_SER_MapVirtualTerminal(const unsigned char *dataIn, unsigned short dataInLen, unsigned char *dataOut, unsigned short *dataOutLen); 80Â EMV_ADK_INFO SDI_CT_SER_StoreCAPKey (const unsigned char *dataIn, unsigned short dataInLen, unsigned char *dataOut, unsigned short *dataOutLen); 81Â EMV_ADK_INFO SDI_CT_SER_ReadCAPKeys (const unsigned char *dataIn, unsigned short dataInLen, unsigned char *dataOut, unsigned short *dataOutLen); 82Â EMV_ADK_INFO SDI_CT_SER_SetTermData (const unsigned char *dataIn, unsigned short dataInLen, unsigned char *dataOut, unsigned short *dataOutLen); 83Â EMV_ADK_INFO SDI_CT_SER_GetTermData (const unsigned char *dataIn, unsigned short dataInLen, unsigned char *dataOut, unsigned short *dataOutLen); 84Â EMV_ADK_INFO SDI_CT_SER_SetAppliData (const unsigned char *dataIn, unsigned short dataInLen, unsigned char *dataOut, unsigned short *dataOutLen); 85Â EMV_ADK_INFO SDI_CT_SER_GetAppliData (const unsigned char *dataIn, unsigned short dataInLen, unsigned char *dataOut, unsigned short *dataOutLen); 86Â EMV_ADK_INFO SDI_CT_SER_StartTransaction (const unsigned char *dataIn, unsigned short dataInLen, unsigned char *dataOut, unsigned short *dataOutLen); 87Â EMV_ADK_INFO SDI_CT_SER_GetCandidateData (const unsigned char *dataIn, unsigned short dataInLen, unsigned char *dataOut, unsigned short *dataOutLen); 88Â EMV_ADK_INFO SDI_CT_SER_ContinueOffline (const unsigned char *dataIn, unsigned short dataInLen, unsigned char *dataOut, unsigned short *dataOutLen); 89Â EMV_ADK_INFO SDI_CT_SER_ContinueOnline (const unsigned char *dataIn, unsigned short dataInLen, unsigned char *dataOut, unsigned short *dataOutLen); 90Â EMV_ADK_INFO SDI_CT_SER_updateTxnTags (const unsigned char *dataIn, unsigned short dataInLen, unsigned char *dataOut, unsigned short *dataOutLen); 91Â EMV_ADK_INFO SDI_CT_SER_CheckSupportedAID (const unsigned char *dataIn, unsigned short dataInLen, unsigned char *dataOut, unsigned short *dataOutLen); 92Â EMV_ADK_INFO SDI_CT_SER_EndTransaction (const unsigned char *dataIn, unsigned short dataInLen, unsigned char *dataOut, unsigned short *dataOutLen); 93Â unsigned char SDI_CT_SER_SmartISO (const unsigned char *dataIn, unsigned short dataInLen, unsigned char *dataOut, unsigned short *dataOutLen); 94Â unsigned char SDI_CT_SER_SmartDetect (const unsigned char *dataIn, unsigned short dataInLen, unsigned char *dataOut, unsigned short *dataOutLen); 95Â unsigned char SDI_CT_SER_SmartReset (const unsigned char *dataIn, unsigned short dataInLen, unsigned char *dataOut, unsigned short *dataOutLen); 96Â unsigned char SDI_CT_SER_SmartPowerOff (const unsigned char *dataIn, unsigned short dataInLen, unsigned char *dataOut, unsigned short *dataOutLen); 97Â unsigned char SDI_CT_SER_SmartPIN (const unsigned char *dataIn, unsigned short dataInLen, unsigned char *dataOut, unsigned short *dataOutLen); 98Â unsigned char SDI_CT_SER_Send_PIN_Offline (const unsigned char *dataIn, unsigned short dataInLen, unsigned char *dataOut, unsigned short *dataOutLen); 99Â 100Â 101Â EMV_ADK_INFO SDI_CTLS_Init_Framework_Client(const char *version, unsigned char numberOfAIDs, EMV_CTLS_CALLBACK_FnT EMV_Callback, void* externalData, unsigned long options, unsigned long *ulResult); 102Â #define SDI_CTLS_Init_Framework(numberOfAIDs, EMV_Callback, externalData, options,ulResult) SDI_CTLS_Init_Framework_Client(EMV_CTLS_FRAMEWORK_VERSION, (numberOfAIDs), (EMV_Callback), (externalData), (options),(ulResult)) 103Â void SDI_CTLS_Exit_Framework(void); 104Â void SDI_CTLS_Exit_Framework_extended(unsigned char options); 105Â const char* SDI_CTLS_CLIENT_GetVersion(void); 106Â const char* SDI_CTLS_FRAMEWORK_GetVersion(void); 107Â EMV_ADK_INFO SDI_CTLS_MapVirtualTerminal(EMV_ADK_VIRTUALTERMMAP_TYPE VirtualTermMapType, unsigned char *TLVSwitchValue, unsigned int TLVBufLen, unsigned char VirtualTerminal); 108Â EMV_ADK_INFO SDI_CTLS_StoreCAPKey(EMV_ADK_HANDLE_RECORD_TYPE eHandleCAPKeyType, const EMV_CTLS_CAPKEY_TYPE *pxKeyData); 109Â EMV_ADK_INFO SDI_CTLS_ReadCAPKeys(EMV_CTLS_CAPREAD_TYPE *pxKeyData, unsigned char *pucMaxnum); 110Â EMV_ADK_INFO SDI_CTLS_GetCAPKeyInfo(EMV_CTLS_CAPREAD_TYPE *pxKeyInfo, unsigned capacity, unsigned offset, unsigned *received, unsigned *configured); 111Â EMV_ADK_INFO SDI_CTLS_SetTermData(EMV_CTLS_TERMDATA_TYPE* pxTermData); 112Â EMV_ADK_INFO SDI_CTLS_GetTermData(EMV_CTLS_TERMDATA_TYPE* pxTermData); 113Â EMV_ADK_INFO SDI_CTLS_SetAppliDataSchemeSpecific(EMV_ADK_HANDLE_RECORD_TYPE eHandleAppliType, EMV_CTLS_APPLI_KERNEL_TYPE* pxAID, EMV_CTLS_APPLIDATA_SCHEME_SPECIFIC_TYPE* pxAppliData); 114Â EMV_ADK_INFO SDI_CTLS_GetAppliDataSchemeSpecific(EMV_ADK_READAPPLI_TYPE eReadAppliType, EMV_CTLS_APPLI_KERNEL_TYPE* pxAID, EMV_CTLS_APPLIDATA_SCHEME_SPECIFIC_TYPE* pxAppliData); 115Â EMV_ADK_INFO SDI_CTLS_ApplyConfiguration(unsigned long options); 116Â EMV_ADK_INFO SDI_CTLS_SetupTransaction(EMV_CTLS_START_TYPE *pxStartInput, EMV_CTLS_STARTRES_TYPE* pxStartRes); 117Â EMV_ADK_INFO SDI_CTLS_ContinueOffline(EMV_CTLS_TRANSRES_TYPE *pxTransRes, EMV_SDI_CTLS_TRANSRES_TYPE *pxSdiTransRes); 118Â EMV_ADK_INFO SDI_CTLS_ContinueOfflineExt(EMV_CTLS_CONT_OFFL_TYPE *pxContOfflInput, EMV_CTLS_TRANSRES_TYPE *pxTransRes, EMV_SDI_CTLS_TRANSRES_TYPE *pxSdiTransRes); 119Â EMV_ADK_INFO SDI_CTLS_ContinueOnline(EMV_CTLS_HOST_TYPE *pxOnlineInput, EMV_CTLS_TRANSRES_TYPE *pxTransRes, EMV_SDI_CTLS_TRANSRES_TYPE *pxSdiTransRes); 120Â EMV_ADK_INFO SDI_CTLS_EndTransaction(unsigned long options); 121Â unsigned char SDI_CTLS_SmartISO(unsigned char ucOptions, unsigned short usInDataLen, unsigned char *pucDataIn, unsigned short *pusOutDataLen, unsigned char *pucDataOut, unsigned short usOutBufferLength); 122Â unsigned char SDI_CTLS_SmartReset(unsigned char ucOptions, unsigned char* pucCardInfo, unsigned long* pnInfoLength); 123Â unsigned char SDI_CTLS_SmartPowerOff(unsigned char ucOptions); 124Â unsigned char SDI_CTLS_CardRemoval(long timeoutMillis); 125Â unsigned char SDI_CTLS_LED(unsigned char ucLedId, unsigned char ucLedState); 126Â unsigned char SDI_CTLS_LED_SetMode(unsigned char ucLedMode); 127Â unsigned char SDI_CTLS_Break(void); 128Â EMV_ADK_INFO SDI_CTLS_GetCandidateData(EMV_CTLS_CANDIDATE_DATA_TYPE *candidateData); 129Â 130Â // ================================================================================================================================================== 131Â 132Â EMV_ADK_INFO SDI_CTLS_SER_Init_Framework(const unsigned char *dataIn, unsigned short dataInLen, unsigned char *dataOut, unsigned short *dataOutLen); 133Â void SDI_CTLS_SER_Exit_Framework(const unsigned char *dataIn, unsigned short dataInLen, unsigned char *dataOut, unsigned short *dataOutLen); 134Â EMV_ADK_INFO SDI_CTLS_SER_MapVirtualTerminal(const unsigned char *dataIn, unsigned short dataInLen, unsigned char *dataOut, unsigned short *dataOutLen); 135Â EMV_ADK_INFO SDI_CTLS_SER_StoreCAPKey(const unsigned char *dataIn, unsigned short dataInLen, unsigned char *dataOut, unsigned short *dataOutLen); 136Â EMV_ADK_INFO SDI_CTLS_SER_ReadCAPKeys(const unsigned char *dataIn, unsigned short dataInLen, unsigned char *dataOut, unsigned short *dataOutLen); 137Â EMV_ADK_INFO SDI_CTLS_SER_SetTermData(const unsigned char *dataIn, unsigned short dataInLen, unsigned char *dataOut, unsigned short *dataOutLen); 138Â EMV_ADK_INFO SDI_CTLS_SER_GetTermData(const unsigned char *dataIn, unsigned short dataInLen, unsigned char *dataOut, unsigned short *dataOutLen); 139Â EMV_ADK_INFO SDI_CTLS_SER_SetAppliDataSchemeSpecific(const unsigned char *dataIn, unsigned short dataInLen, unsigned char *dataOut, unsigned short *dataOutLen); 140Â EMV_ADK_INFO SDI_CTLS_SER_GetAppliDataSchemeSpecific(const unsigned char *dataIn, unsigned short dataInLen, unsigned char *dataOut, unsigned short *dataOutLen); 141Â EMV_ADK_INFO SDI_CTLS_SER_SetupTransaction(const unsigned char *dataIn, unsigned short dataInLen, unsigned char *dataOut, unsigned short *dataOutLen); 142Â EMV_ADK_INFO SDI_CTLS_SER_ContinueOffline(const unsigned char *dataIn, unsigned short dataInLen, unsigned char *dataOut, unsigned short *dataOutLen); 143Â EMV_ADK_INFO SDI_CTLS_SER_ContinueOnline(const unsigned char *dataIn, unsigned short dataInLen, unsigned char *dataOut, unsigned short *dataOutLen); 144Â EMV_ADK_INFO SDI_CTLS_SER_EndTransaction(const unsigned char *dataIn, unsigned short dataInLen, unsigned char *dataOut, unsigned short *dataOutLen); 145Â unsigned char SDI_CTLS_SER_SmartISO(const unsigned char *dataIn, unsigned short dataInLen, unsigned char *dataOut, unsigned short *dataOutLen); 146Â unsigned char SDI_CTLS_SER_SmartReset(const unsigned char *dataIn, unsigned short dataInLen, unsigned char *dataOut, unsigned short *dataOutLen); 147Â unsigned char SDI_CTLS_SER_SmartPowerOff(const unsigned char *dataIn, unsigned short dataInLen, unsigned char *dataOut, unsigned short *dataOutLen); 148Â unsigned char SDI_CTLS_SER_CardRemoval(const unsigned char *dataIn, unsigned short dataInLen, unsigned char *dataOut, unsigned short *dataOutLen); 149Â unsigned char SDI_CTLS_SER_LED_SetMode(const unsigned char *dataIn, unsigned short dataInLen, unsigned char *dataOut, unsigned short *dataOutLen); 150Â unsigned char SDI_CTLS_SER_LED(const unsigned char *dataIn, unsigned short dataInLen, unsigned char *dataOut, unsigned short *dataOutLen); 151Â unsigned char SDI_CTLS_SER_Break(const unsigned char *dataIn, unsigned short dataInLen, unsigned char *dataOut, unsigned short *dataOutLen); 152Â EMV_ADK_INFO SDI_CTLS_SER_GetCandidateData(const unsigned char *dataIn, unsigned short dataInLen, unsigned char *dataOut, unsigned short *dataOutLen); 153Â 154Â 155Â #ifdef __cplusplus 156Â } // extern "C" 157Â #endif 158Â 159Â #endif // #ifndef _SDI_CLIENT_EMV_INTERFACE_H_
Rate this article: