📄 xcos_eclibf.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 + -