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

📄 test.h

📁 Windows Mobile 5.0下的CSP图形化测试工具。
💻 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 + -