📄 test.h
字号:
#include <wincrypt.h>
#define APPNAME L"TESTCSP"
#define PARAMETER1 10
#define PARAMETER2 9
#define PARAMETER3 8
#define PARAMETER4 7
#define PARAMETER5 6
#define PARAMETER6 5
#define PARAMETER7 4
#define PARAMETER8 3
#define PARAMETER9 2
#define PARAMETER10 1
typedef BOOL (WINAPI *ACQUIRECONTEXT)(
OUT HCRYPTPROV *phProv,
IN LPCSTR szContainer,
IN DWORD dwFlags,
IN PVTableProvStruc pVTable
);
typedef BOOL (WINAPI *RELEASECONTEXT)(
IN HCRYPTPROV hProv,
IN DWORD dwFlags
);
typedef BOOL (WINAPI* GETPROVPARAM)(
HCRYPTPROV hProv, // in
DWORD dwParam, // in
BYTE *pbData, // out
DWORD *pdwDataLen, // in, out
DWORD dwFlags // in
);
typedef BOOL (WINAPI* CREATEHASH)(
HCRYPTPROV hProv, // in
ALG_ID Algid, // in
HCRYPTKEY hKey, // in
DWORD dwFlags, // in
HCRYPTHASH *phHash // out
);
typedef BOOL (WINAPI* DESTROYHASH)(
HCRYPTPROV hProv, // in
HCRYPTHASH hHash
);
typedef BOOL (WINAPI* GETHASHPARAM)(
HCRYPTPROV hProv, // in
HCRYPTHASH hHash, // in
DWORD dwParam, // in
BYTE *pbData, // out
DWORD *pdwDataLen, // in, out
DWORD dwFlags // in
);
typedef BOOL (WINAPI* HASHDATA)(
HCRYPTPROV hProv, // in
HCRYPTHASH hHash, // in
CONST BYTE *pbData, // in
DWORD dwDataLen, // in
DWORD dwFlags // in
);
typedef BOOL (WINAPI* HASHSESSIONKEY)(
HCRYPTPROV hProv, // in
HCRYPTHASH hHash, // in
HCRYPTKEY hKey, // in
DWORD dwFlags // in
);
typedef BOOL (WINAPI* SETHASHPARAM)(
HCRYPTPROV hProv, // in
HCRYPTHASH hHash, // in
DWORD dwParam, // in
BYTE *pbData, // in
DWORD dwFlags // in
);
typedef BOOL (WINAPI* ENCRYPT)(
HCRYPTPROV hProv, // in
HCRYPTKEY hKey, // in
HCRYPTHASH hHash, // in
BOOL Final, // in
DWORD dwFlags, // in
BYTE *pbData, // in, out
DWORD *pdwDataLen, // in, out
DWORD dwBufLen // in
);
typedef BOOL (WINAPI* DECRYPT)(
HCRYPTPROV hProv, // in
HCRYPTKEY hKey, // in
HCRYPTHASH hHash, // in
BOOL Final, // in
DWORD dwFlags, // in
BYTE *pbData, // in, out
DWORD *pdwDataLen // in, out
);
typedef BOOL (WINAPI* SIGNHASH)(
HCRYPTPROV hProv, // in
HCRYPTHASH hHash, // in
DWORD dwKeySpec, // in
LPCWSTR sDescription, // in
DWORD dwFlags, // in
BYTE *pbSignature, // out
DWORD *pdwSigLen // in, out
);
typedef BOOL (WINAPI* VERIFYSIGNATURE)(
HCRYPTPROV hProv, // in
HCRYPTHASH hHash, // in
CONST BYTE *pbSignature, // in
DWORD dwSigLen, // in
HCRYPTKEY hPubKey, // in
LPCWSTR sDescription, // in
DWORD dwFlags // in
);
typedef BOOL (WINAPI* DERIVEKEY)(
HCRYPTPROV hProv, // in
ALG_ID Algid, // in
HCRYPTHASH hBaseData, // in
DWORD dwFlags, // in
HCRYPTKEY *phKey // out
);
typedef BOOL (WINAPI* DESTROYKEY)(
HCRYPTPROV hProv, // in
HCRYPTKEY hKey // in
);
typedef BOOL (WINAPI* DUPLICATEKEY)(
HCRYPTPROV hProv, // in
HCRYPTKEY hKey, // in
DWORD *pdwReserved, // in
DWORD dwFlags, // in
HCRYPTKEY *phKey // out
);
typedef BOOL (WINAPI* IMPORTKEY)(
HCRYPTPROV hProv, // in
BYTE *pbData, // in
DWORD dwDataLen, // in
HCRYPTKEY hPubKey, // in
DWORD dwFlags, // in
HCRYPTKEY *phKey // out
);
typedef BOOL (WINAPI* EXPORTKEY)(
HCRYPTPROV hProv, // in
HCRYPTKEY hKey, // in
HCRYPTKEY hPubKey, // in
DWORD dwBlobType, // in
DWORD dwFlags, // in
BYTE *pbData, // out
DWORD *pdwDataLen // in, out
);
typedef BOOL (WINAPI* GENKEY)(
HCRYPTPROV hProv, // in
ALG_ID Algid, // in
DWORD dwFlags, // in
HCRYPTKEY *phKey // out
);
typedef BOOL (WINAPI* GETKEYPARAM)(
HCRYPTPROV hProv, // in
HCRYPTKEY hKey, // in
DWORD dwParam, // in
BYTE *pbData, // out
DWORD *pdwDataLen, // in, out
DWORD dwFlags // in
);
typedef BOOL (WINAPI* SETKEYPARAM)(
HCRYPTPROV hProv, // in
HCRYPTKEY hKey, // in
DWORD dwParam, // in
BYTE *pbData, // in
DWORD dwFlags // in
);
typedef BOOL (WINAPI* GETUSERKEY)(
HCRYPTPROV hProv, // in
DWORD dwKeySpec, // in
HCRYPTKEY *phUserKey // out
);
typedef BOOL (WINAPI* GENRANDOM)(
HCRYPTPROV hProv, // in
DWORD dwLen, // in
BYTE *pbBuffer // in, out
);
typedef BOOL (WINAPI* REGISTER)(void);
typedef BOOL (WINAPI* UNREGISTER)(void);
//set prov param not tested , for it's only related to PIN.
typedef struct {
ACQUIRECONTEXT lp_fnAcquire;
RELEASECONTEXT lp_fnRelease;
GETPROVPARAM lp_fnGetProvParam;
CREATEHASH lp_fnCreateHash;
DESTROYHASH lp_fnDestroyHash;
GETHASHPARAM lp_fnGetHashParam;
HASHDATA lp_fnHashData;
HASHSESSIONKEY lp_fnHashSessionKey;
SETHASHPARAM lp_fnSetHashParam;
ENCRYPT lp_fnEncrypt;
DECRYPT lp_fnDecrypt;
SIGNHASH lp_fnSignHash;
VERIFYSIGNATURE lp_fnVerifySignature;
DERIVEKEY lp_fnDeriveKey;
DESTROYKEY lp_fnDestroyKey;
DUPLICATEKEY lp_fnDuplicateKey;
IMPORTKEY lp_fnImportKey;
EXPORTKEY lp_fnExportKey;
GENKEY lp_fnGenKey;
GETKEYPARAM lp_fnGetKeyParam;
SETKEYPARAM lp_fnSetKeyParam;
GETUSERKEY lp_fnGetUserKey;
GENRANDOM lp_fnGenRandom;
REGISTER lp_fnRegister;
UNREGISTER lp_fnUnRegister;
}CSPFunc,*LPCSPFunc;
typedef BOOL (WINAPI* NEWCARD)(BOOL bSilent, LPBYTE * pbyRootPin, LPBYTE byRootLength, LPBYTE * pbyUserPin, LPBYTE byUserLength);
typedef BOOL (WINAPI* GETPIN)(BOOL bSilent, DWORD dwWhichUser, LPBYTE * pbyPINBuffer, BYTE * byRootLength);
typedef struct {
NEWCARD lp_fnNewCard;
GETPIN lp_fnGetPin;
}CSPUI,*LPCSPUI;
const BYTE kbyoidMD2[] =
{ 0x30, 0x20, 0x30, 0x0c, 0x06, 0x08, 0x2a, 0x86,
0x48, 0x86, 0xf7, 0x0d, 0x02, 0x02, 0x05, 0x00,
0x04, 0x10
};
const BYTE kbyoidMD4[] =
{ 0x30, 0x20, 0x30, 0x0c, 0x06, 0x08, 0x2a, 0x86,
0x48, 0x86, 0xf7, 0x0d, 0x02, 0x04, 0x05, 0x00,
0x04, 0x10
};
const BYTE kbyoidMD5[] =
{
0x30, 0x20, 0x30, 0x0c, 0x06, 0x08, 0x2a, 0x86,
0x48, 0x86, 0xf7, 0x0d, 0x02, 0x05, 0x05, 0x00,
0x04, 0x10
};
const BYTE kbyoidSHA1[] =
{
0x30, 0x21, 0x30, 0x09, 0x06, 0x05, 0x2b, 0x0e,
0x03, 0x02, 0x1a, 0x05, 0x00, 0x04, 0x14
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -