215 lines
4.9 KiB
C
215 lines
4.9 KiB
C
#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 |