seg-database-c/inc/sunyard_d.h
2026-07-10 17:53:18 +08:00

215 lines
4.9 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#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