#ifndef _SUNYARD_D_H_ #define _SUNYARD_D_H_ #ifndef _SUNYARD_H_ #include "sunyard.h" #endif #ifndef _PUBLIC_H_ #include "public.h" #endif #ifndef _THREAD_POOL_H_ #include "threadpool.h" #endif typedef struct { int socket_fd; char ip[40]; int port; int con_timeout; int deal_timeout; int status; } STC_CONNECT_INFO; typedef struct { threadpool_t *threadpool; /*连接池*/ pthread_mutex_t threadpool_mutex; /*连接池锁*/ int threadpool_deal_time; /*连接池处理时间*/ STC_CONNECT_INFO connect_info[P_DEVICE_MAX_COUNT]; /*普通连接信息*/ int connect_idex; /*当前使用机器序号*/ int connect_count; /*机器连接个数*/ int deal_time; /*普通连接处理时间*/ int connect_timeout; /*设备连接时间*/ int use_flag; /*使用标志:0:使用普通连接 1:使用线程池*/ int status; /*句柄有效性*/ }STC_DEVICE_INFO; typedef struct { int keyidex; /*密钥索引*/ int flag; /*加解密标识*/ char procdata[64]; /*加密过渡数据*/ int procdatalen; /*加密过渡数据长度*/ int initflag; /*初始化标志*/ int status; /*句柄有效性*/ }STC_SM4_ENCDEC_INFO; typedef struct { int keyidex; /*密钥索引*/ char iv[64]; /*过程IV*/ int ivlen; /*过程IV长度*/ char procdata[64]; /*过渡数据*/ int procdatalen; /*过渡数据长度*/ int initflag; /*初始化标志*/ int status; /*句柄有效性*/ }STC_SM4_MAC_INFO; typedef struct { char procdata[MAX_LIN]; /*过渡数据*/ int procdatalen; /*过渡数据长度*/ int firstflag; /*第一包标志*/ int initflag; /*初始化标志*/ int status; /*句柄有效性*/ }STC_SM3_HASH_INFO; typedef struct { STC_SM4_ENCDEC_INFO sm4_encdec_info; STC_SM4_MAC_INFO sm4_mac_info; int initflag; /*初始化标志*/ int status; /*句柄有效性*/ }STC_SM4_ENCDECMAC_INFO; typedef struct { STC_DEVICE_INFO *device_info; STC_SM4_ENCDEC_INFO *sm4_encdec_info; STC_SM4_MAC_INFO *sm4_mac_info; STC_SM3_HASH_INFO *sm3_hash_info; STC_SM4_ENCDECMAC_INFO *sm4_encdecmac_info; int iHandleType; int iStatus; }STC_D_HANDLE; int SYD_D_AnalysisDevHandle( void* handle, int handletype, void** outhandle); int SYD_D_Connect_Ex( const char *pcIpList[], int iPortList[], int iSize, int iConnectTimeout, int iDealTimeOut, int iThreadCount, void** phHandle); int SYD_D_DisConnect_Ex( void* phHandle); int SYD_D_GetServerVersion( void* phHandle, char* pcServerVersion, int* piServerVersionLen); int SYD_D_SM4_ShortData( void* phHandle, int iKeyIndex, char* pcData, int iDataLen, int iFlag, char* pcOutData, int* piOutDataLen); int SYD_D_SM4_LongData( void* phHandle, int iKeyIndex, char* pcData, int iDataLen, int iPkgNum, int iFlag, char* pcOutData, int* piOutDataLen); int SYD_D_SM4_Data( void* phHandle, int iKeyIndex[], char *pcData[], int iDataLen[], int iSize, int iFlag, char *pcOutData[], int iOutDataLen[]); int SYD_D_SM4_BatchData( void* phHandle, int iKeyIndex[], char *pcData[], int iDataLen[], int iSize, int iFlag, char *pcOutData[], int iOutDataLen[], int iCheckRet[]); int SYD_D_SM3_Hash_ShortData( void* phHandle, char* pcData, int iDataLen, char* pcHash); int SYD_D_SM3_Hash_LongData( void* phHandle, char* pcData, int iDataLen, int iPkgNum, char* pcProcData, int* piProcDataLen, char* pcHash); int SYD_D_SM4Mac_ShortData( void* phHandle, int iKeyIndex, char* pcData, int iDataLen, char* pcMac, int* piCheckRet); int SYD_D_SM4Mac_BatchData( void* phHandle, int iKeyIndex[], char* pcData[], int iDataLen[], int iSize, char* pcMac[], int piCheckRet[]); int SYD_D_SM4Mac_LongData( void* phHandle, int iKeyIndex, char* pcData, int iDataLen, int iPkgNum, char* pcProcData, int* piProcDataLen, char* pcMac, int* piCheckRet); int SYD_D_CloseHandle( void *handle); int SYD_D_SM4_ShortData_CheckValue( void* phHandle, int iEncKeyIndex, int iCheckKeyIndex, char* pcData, int iDataLen, char* pcMac, int iFlag, char* pcOutData, int* piOutDataLen, char* pcOutMac); int SYD_D_SM4_BatchData_CheckValue( void* phHandle, int iEncKeyIndex[], int iCheckKeyIndex[], char* pcData[], int iDataLen[], char* pcMac[], int iSize, int iFlag, char* pcOutData[], int iOutDataLen[], char* pcOutMac[]); #endif