123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154 |
- #ifndef _HC_EHOME_SS_H_
- #define _HC_EHOME_SS_H_
- #include "HCEHomePublic.h"
- #define MAX_KMS_USER_LEN 512 //KMS用户名最大长度
- #define MAX_KMS_PWD_LEN 512 //KMS密码最大长度
- #define MAX_CLOUD_AK_SK_LEN 64 //EHome5.0存储协议AK SK最大长度
- #define SS_CLIENT_FILE_PATH_PARAM_NAME "File-Path"
- #define SS_CLIENT_VRB_FILENAME_CODE "Filename-Code"
- #define SS_CLIENT_KMS_USER_NAME "KMS-Username"
- #define SS_CLIENT_KMS_PASSWIRD "KMS-Password"
- #define SS_CLIENT_CLOUD_AK_NAME "Access-Key"
- #define SS_CLIENT_CLOUD_SK_NAME "Secret-Key"
- #ifndef MAX_PATH
- #define MAX_PATH 260
- #endif
- enum NET_EHOME_SS_MSG_TYPE
- {
- NET_EHOME_SS_MSG_TOMCAT = 1, //Tomcat回调函数
- NET_EHOME_SS_MSG_KMS_USER_PWD, //KMS用户名密码校验
- NET_EHOME_SS_MSG_CLOUD_AK //EHome5.0存储协议AK回调
- };
- enum NET_EHOME_SS_CLIENT_TYPE
- {
- NET_EHOME_SS_CLIENT_TYPE_TOMCAT = 1, //Tomcat图片上传客户端
- NET_EHOME_SS_CLIENT_TYPE_VRB, //VRB图片上传客户端
- NET_EHOME_SS_CLIENT_TYPE_KMS, //KMS图片上传客户端
- NET_EHOME_SS_CLIENT_TYPE_CLOUD //EHome5.0存储协议客户端
- };
- //Tomcat图片服务器回调信息
- typedef struct tagNET_EHOME_SS_TOMCAT_MSG
- {
- char szDevUri[MAX_URL_LEN_SS]; //设备请求的URI
- DWORD dwPicNum; //图片数
- char* pPicURLs; //图片URL,每个URL MAX_URL_LEN_SS长度
- BYTE byRes[64];
- }NET_EHOME_SS_TOMCAT_MSG, *LPNET_EHOME_SS_TOMCAT_MSG;
- //信息回调函数
- typedef BOOL(CALLBACK *EHomeSSMsgCallBack)(LONG iHandle, NET_EHOME_SS_MSG_TYPE enumType
- , void *pOutBuffer, DWORD dwOutLen, void *pInBuffer, DWORD dwInLen, void *pUser);
- //存储回调函数
- typedef BOOL(CALLBACK *EHomeSSStorageCallBack)(LONG iHandle, const char* pFileName, void *pFileBuf, DWORD dwFileLen, char *pFilePath, void *pUser);
- //读写回调函数 byAct 0-读 1-写 2-删
- typedef BOOL(CALLBACK *EHomeSSRWCallBack)(LONG iHandle, BYTE byAct, const char* pFileName
- , void *pFileBuf, LONG& dwFileLen, const char* pFileUrl, void *pUser);
- //监听参数
- typedef struct tagNET_EHOME_SS_LISTEN_PARAM
- {
- NET_EHOME_IPADDRESS struAddress; //本地监听信息,IP为0.0.0.0的情况下,默认为本地地址,多个网卡的情况下,默认为从操作系统获取到的第一个
- char szKMS_UserName[MAX_KMS_USER_LEN];//KMS用户名
- char szKMS_Password[MAX_KMS_PWD_LEN];//KMS密码
- EHomeSSStorageCallBack fnSStorageCb; //图片服务器信息存储回调函数
- EHomeSSMsgCallBack fnSSMsgCb; //图片服务器信息Tomcat回调函数
- char szAccessKey[MAX_CLOUD_AK_SK_LEN]; //EHome5.0存储协议AK
- char szSecretKey[MAX_CLOUD_AK_SK_LEN]; //EHome5.0存储协议SK
- void * pUserData; //用户数据
- BYTE byHttps; //是否启用HTTPs
- BYTE byRes1[3];
- EHomeSSRWCallBack fnSSRWCb; //读写回调函数
- BYTE byRes[56];
- }NET_EHOME_SS_LISTEN_PARAM, *LPNET_EHOME_SS_LISTEN_PARAM;
- //监听Https参数
- typedef struct tagNET_EHOME_SS_LISTEN_HTTPS_PARAM
- {
- BYTE byHttps; //0-不启用HTTPS 1-启用HTTPS
- BYTE byVerifyMode; //0-单向认证(暂只支持单向认证)
- BYTE byCertificateFileType; //证书类型0-pem, 1-ANS1
- BYTE byPrivateKeyFileType; //私钥类型0-pem, 1-ANS1
- char szUserCertificateFile[MAX_PATH]; //公钥证书文件路径
- char szUserPrivateKeyFile[MAX_PATH]; //私钥证书文件路径
- DWORD dwSSLVersion; //SSL Method版本
- //0 - SSL23, 1 - SSL2, 2 - SSL3, 3 - TLS1.0, 4 - TLS1.1, 5 - TLS1.2
- //SSL23是兼容模式,会协商客户端和服务端使用的最高版本
- BYTE byRes3[360];
- }NET_EHOME_SS_LISTEN_HTTPS_PARAM, *LPNET_EHOME_SS_LISTEN_HTTPS_PARAM;
- //图片上传客户端参数
- typedef struct tagNET_EHOME_SS_CLIENT_PARAM
- {
- NET_EHOME_SS_CLIENT_TYPE enumType; //图片上传客户端类型
- NET_EHOME_IPADDRESS struAddress; //图片服务器地址
- BYTE byHttps; //是否启用HTTPs
- BYTE byRes[63];
- }NET_EHOME_SS_CLIENT_PARAM, *LPNET_EHOME_SS_CLIENT_PARAM;
- enum NET_EHOME_SS_INIT_CFG_TYPE
- {
- NET_EHOME_SS_INIT_CFG_SDK_PATH = 1, //设置SS组件加载路径(仅Linux版本支持)
- NET_EHOME_SS_INIT_CFG_CLOUD_TIME_DIFF, //设置运存储的请求时间差值,默认15分钟,最小5分钟,最大60分钟
- NET_EHOME_SS_INIT_CFG_PUBLIC_IP_PORT //设置公网地址(当存在内外网映射时)
- };
- typedef struct tagNET_EHOME_SS_LOCAL_SDK_PATH{
- char sPath[MAX_PATH];
- BYTE byRes[128];
- }NET_EHOME_SS_LOCAL_SDK_PATH, *LPNET_EHOME_SS_LOCAL_SDK_PATH;
- //初始化,反初始化
- NET_DVR_API BOOL CALLBACK NET_ESS_Init();
- NET_DVR_API BOOL CALLBACK NET_ESS_Fini();
- //获取错误码
- NET_DVR_API DWORD CALLBACK NET_ESS_GetLastError();
- //日志
- NET_DVR_API BOOL CALLBACK NET_ESS_SetLogToFile(LONG iLogLevel, const char *strLogDir, BOOL bAutoDel);
- //获取版本号
- NET_DVR_API DWORD CALLBACK NET_ESS_GetBuildVersion();
- //设置HTTP监听的Https参数
- NET_DVR_API BOOL CALLBACK NET_ESS_SetListenHttpsParam(NET_EHOME_SS_LISTEN_HTTPS_PARAM* pSSHttpsParam);
- //开启监听
- NET_DVR_API LONG CALLBACK NET_ESS_StartListen(NET_EHOME_SS_LISTEN_PARAM* pSSListenParam);
- //关闭监听
- NET_DVR_API BOOL CALLBACK NET_ESS_StopListen(LONG lListenHandle);
- //设置初始化参数
- NET_DVR_API BOOL NET_ESS_SetSDKInitCfg(NET_EHOME_SS_INIT_CFG_TYPE enumType, void* const lpInBuff);
- //创建图片上传/下载客户端
- NET_DVR_API LONG CALLBACK NET_ESS_CreateClient(NET_EHOME_SS_CLIENT_PARAM* pClientParam);
- //设置图片上传/下载客户端超时时间,单位ms,默认为5s
- NET_DVR_API BOOL CALLBACK NET_ESS_ClientSetTimeout(LONG lHandle, DWORD dwSendTimeout, DWORD dwRecvTimeout);
- //设置图片上传/下载客户端参数
- NET_DVR_API BOOL CALLBACK NET_ESS_ClientSetParam(LONG lHandle, const char* strParamName, const char* strParamVal);
- //图片上传/下载客户端执行上传
- NET_DVR_API BOOL CALLBACK NET_ESS_ClientDoUpload(LONG lHandle, char* strUrl, LONG dwUrlLen);
- //图片上传/下载客户端执行下载
- NET_DVR_API BOOL CALLBACK NET_ESS_ClientDoDownload(LONG lHandle, char* strUrl, void** pFileContent, DWORD& dwContentLen);
- //销毁客户端
- NET_DVR_API BOOL CALLBACK NET_ESS_DestroyClient(LONG lHandle);
- //计算HMAC-SHA256
- NET_DVR_API BOOL NET_ESS_HAMSHA256(const char* pSrc, const char* pSecretKey, char* pSingatureOut, DWORD dwSingatureLen);
- #endif //_HC_EHOME_SS_H_
|