⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xcos_eclibf.h

📁 某CA中心电子签章插件(.dll)
💻 H
字号:
//---------------------------------------------------------------------------
//
//						EKEY CSP LIBRARY
//
//---------------------------------------------------------------------------

#ifndef XCOS_ECLIBF_H
#define XCOS_ECLIBF_H

#define CALL_CONVENTION 

#ifdef __cplusplus
extern "C" {
#endif

/////////////////////////////////////////////////////////////////////////////
// General purpose function
/////////////////////////////////////////////////////////////////////////////

//1.XC_ConnectEkey
DWORD CALL_CONVENTION XC_ConnectEkey(
	IN DWORD		dwPort, 
	OUT HEKEY		*phEkey
);

//2.XC_DisconnectEkey
DWORD CALL_CONVENTION XC_DisconnectEkey(
	IN HEKEY		hEkey
);

//3.XC_GetEkeyParam
DWORD CALL_CONVENTION XC_GetEkeyParam(
	IN HEKEY		hEkey, 
	IN DWORD		dwParam, 
	OUT BYTE		*pbData, 
	IN OUT DWORD	*pdwDataLen, 
	IN DWORD		dwFlags
);

//4.XC_SetEkeyParam
DWORD CALL_CONVENTION XC_SetEkeyParam(
	IN HEKEY		hEkey,
	IN DWORD		dwParam,
	IN BYTE			*pbData,
	IN DWORD		dwDataLen,
	IN DWORD		dwFlags
);

//5.XC_BlankEkey
DWORD CALL_CONVENTION XC_BlankEkey(
	IN HEKEY		hEkey
);

//6.XC_FormatEkey
DWORD CALL_CONVENTION XC_FormatEkey(
	IN HEKEY		hEkey,
	IN PFORMATINFO	pFmtInfo
);
/////////////////////////////////////////////////////////////////////////////
// Pin management function
/////////////////////////////////////////////////////////////////////////////

//7.XC_VerifyPin
DWORD CALL_CONVENTION XC_VerifyPin(
	IN HEKEY		hEkey,
	IN BYTE			*pbPin,
	IN DWORD		dwPinLen,
	IN DWORD		dwFlags
);

//8.XC_ChangePin
DWORD CALL_CONVENTION XC_ChangePin(
	IN HEKEY		hEkey,
	IN BYTE			*pbOldPin,
	IN DWORD		dwOldPinLen,
	IN BYTE			*pbNewPin,
	IN DWORD		dwNewPinLen,
	IN DWORD		dwFlags
);

//9.XC_UnlockPin
DWORD CALL_CONVENTION XC_UnlockPin(
	IN HEKEY		hEkey,
	IN BYTE			*pbUnlockPin,
	IN DWORD		dwUnlockPinLen,
	IN BYTE			*pbNewPin,
	IN DWORD		dwNewPinLen,
	IN DWORD		dwFlags
);

/////////////////////////////////////////////////////////////////////////////
// Container management function
/////////////////////////////////////////////////////////////////////////////

//10.XC_CreateContainer(include open container)
DWORD CALL_CONVENTION XC_CreateContainer(
	IN HEKEY		hEkey,
	IN CHAR			*pszContainer,
	OUT HCONTAINER	*phContainer,
	IN DWORD		dwFlags
);

//11.XC_DeleteContainer
DWORD CALL_CONVENTION XC_DeleteContainer(
	IN HCONTAINER		hContainer
);
	
//12.XC_SetCurContainer(enum container with container number.)
DWORD CALL_CONVENTION XC_SetCurContainer(
	IN HEKEY		hEkey,
	IN DWORD		dwContainerNo,
	OUT HCONTAINER	*phContainer
);

//13.XC_GetContainerParam
DWORD CALL_CONVENTION XC_GetContainerParam(
	IN HCONTAINER	hContainer,
	IN DWORD		dwParam,
	OUT BYTE		*pbData,
	IN OUT DWORD	*pdwDataLen,
	IN DWORD		dwFlags
);

//14.XC_SetContainerParam
DWORD CALL_CONVENTION XC_SetContainerParam(
	IN HCONTAINER	hContainer,
	IN DWORD		dwParam,
	IN BYTE			*pbData,
	IN DWORD		dwDataLen,
	IN DWORD		dwFlags
);

/////////////////////////////////////////////////////////////////////////////
// RSA interface function
/////////////////////////////////////////////////////////////////////////////

//15.XC_GenRSAKey
DWORD CALL_CONVENTION XC_GenRSAKey(
	IN HCONTAINER	hContainer,
	IN DWORD		dwKeySpec
);

//16.XC_WriteRSAKey
DWORD CALL_CONVENTION XC_WriteRSAKey(
	IN HCONTAINER	hContainer,
	IN BYTE			*pbPubKey,//standard DER
	IN DWORD		dwPubKeyLen,
	IN BYTE			*pbPriKey,
	IN DWORD		dwPriKeyLen,
	IN DWORD		dwKeySpec
);

//17. XC_ReadRSAPubKey
DWORD CALL_CONVENTION XC_ReadRSAPubKey(
	IN HCONTAINER	hContainer,
	OUT BYTE		*pbPubKey,	//standard DER
	IN OUT DWORD	*pdwPubKeyLen,
	IN DWORD		dwKeySpec
);

//18.XC_RSASign
DWORD CALL_CONVENTION XC_RSASign(
	IN HCONTAINER	hContainer,
	IN BYTE			*pbData,
	IN DWORD		dwDataLen,
	OUT BYTE		*pbSignature,
	IN OUT DWORD	*pdwSignLen,
	IN DWORD		dwKeySpec
);

//19.XC_RSAVerify
DWORD CALL_CONVENTION XC_RSAVerify(
	IN HCONTAINER	hContainer,
	IN BYTE			*pbData,
	IN DWORD		dwDataLen,
	IN BYTE			*pbSignature,
	IN DWORD		dwSignLen,
	IN DWORD		dwKeySpec
);

//20.XC_RSAEncrypt
DWORD CALL_CONVENTION XC_RSAEncrypt(
	IN HCONTAINER	hContainer,
	IN BYTE			*pbData,
	IN DWORD		dwDataLen,
	IN BYTE			*pbEncryptedData,
	IN OUT DWORD	*pdwEncryptedDataLen,
	IN DWORD			dwKeySpec
);

//21.XC_RSADecrypt
DWORD CALL_CONVENTION XC_RSADecrypt(
	IN HCONTAINER	hContainer,
	IN BYTE			*pbEncryptedData,
	IN DWORD		dwEncryptedDataLen,
	IN BYTE			*pbData,
	IN OUT DWORD	*pdwDataLen,
	IN DWORD		dwKeySpec
);
/////////////////////////////////////////////////////////////////////////////
// Certification management function.
/////////////////////////////////////////////////////////////////////////////
//22.XC_WriteCert
DWORD CALL_CONVENTION XC_WriteCert(
	IN HCONTAINER	hContainer,
	IN BYTE			*pbData,//standard DER
	IN DWORD		dwDataLen,
	IN DWORD		dwKeySpec
);

//23.XC_ReadCert
DWORD CALL_CONVENTION XC_ReadCert(
	IN HCONTAINER	hContainer,
	IN BYTE			*pbData,//standard DER
	IN OUT DWORD	*pdwDataLen,
	IN DWORD		dwKeySpec
);
/////////////////////////////////////////////////////////////////////////////
//  assistant function.
/////////////////////////////////////////////////////////////////////////////

//24.XC_GetDevState()
DWORD CALL_CONVENTION XC_GetDevState(
	IN OUT BYTE		*pStateBuf,
	IN OUT DWORD	*pdwBufLen	
);

//25.XC_GenRandom()
DWORD CALL_CONVENTION XC_GenRandom
(
	IN HEKEY		hEkey,
	IN OUT BYTE		*pbRand,
	IN DWORD		dwRandLen
);
/////////////////////////////////////////////////////////////////////////////
//  User data function.
/////////////////////////////////////////////////////////////////////////////
//26.XC_CreateUserFile
DWORD CALL_CONVENTION XC_CreateUserFile(
	IN HEKEY		hEkey,
	IN DWORD		dwFileID,
	IN DWORD		dwSize,
	IN DWORD		dwFlags,
	OUT HUSERFILE	*phFile
);

//27.XC_WriteUserFile
DWORD CALL_CONVENTION XC_WriteUserFile(
	IN HUSERFILE	hFile,
	IN BYTE			*pbData,
	IN DWORD		dwDataLen
);

//28.XC_ReadUserFile
DWORD CALL_CONVENTION XC_ReadUserFile(
	IN HUSERFILE	hFile,
	IN BYTE			*pbData,
	IN OUT DWORD	*pdwDataLen
);

//29.XC_DeleteUserFile
DWORD CALL_CONVENTION XC_DeleteUserFile(
	IN HUSERFILE	hFile
);
///////////////////////////////////////////////////////////////////////////////
//    Block Cipher
///////////////////////////////////////////////////////////////////////////////
//30.XC_CreateKey
DWORD CALL_CONVENTION XC_CreateKey(
	IN HEKEY		hEkey,
	IN DWORD		dwAlgId,
	IN BYTE			*pbKeyValue,
	IN DWORD		dwKeyValueLen,
	IN DWORD		dwFlags,
	OUT HCIPHERKEY	*phKey
);

//31.XC_SetKeyParam
DWORD CALL_CONVENTION XC_SetKeyParam(
	IN HCIPHERKEY	hKey,
	IN DWORD		dwParam,
	IN BYTE			*pbData,
	IN OUT DWORD	*pdwDataLen,
	IN DWORD		dwFlags
);

//32.XC_GetKeyParam
DWORD CALL_CONVENTION XC_GetKeyParam(
	IN HCIPHERKEY	hKey,
	IN DWORD		dwParam,
	OUT BYTE		*pbData,
	IN OUT DWORD	*pdwDataLen,
	IN DWORD		dwFlags
);

//33.XC_Encrypt
DWORD CALL_CONVENTION XC_Encrypt(
	IN HCIPHERKEY 	hKey,
	IN DWORD 		dwFlags,
	IN BYTE 		*pbData,
	IN DWORD 		dwDataLen,
	OUT BYTE 		*pbEncryptedData,
	IN OUT DWORD	*pdwEncryptedDataLen
);

//34.XC_Decrypt
DWORD CALL_CONVENTION XC_Decrypt(
	IN HCIPHERKEY 	hKey,
	IN DWORD 		dwFlags,
	IN BYTE 		*pbEncryptedData,
	IN DWORD	 	dwEncryptedDataLen,
	OUT BYTE 		*pbData,
	IN OUT DWORD	*pdwDataLen
);

#ifdef __cplusplus
}
#endif

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -