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

📄 cpryto.h

📁 Protel 2004 Crack
💻 H
字号:
#pragma once
#include <wincrypt.h>
struct TextBuffer
	{
		DWORD length;
		unsigned char buffer[4096];
	};
class CCpryto
{
public:
	CCpryto(void);
	~CCpryto(void);
	struct TextBuffer oriText,midText,binText;
	bool Process(bool flag);
	CString Process2(void);
	CString Process3(void);
	CString Process4(CFile *dxpFile);
	
	
	//Protel XOR 编解码
	bool EnXorCode(BYTE* inBuffer,int len);
	// 数值化
	int DeCode(BYTE *inBuffer,BYTE *outBuffer,int inLen);
	//文本化
	int EnCode(BYTE *inBuffer,BYTE *outBuffer,int inLen);

private:
	static const unsigned char listTxt2Bin[];
	static const unsigned char listBin2Txt[];
	//static const unsigned char SelfSign[];
	static const unsigned char IwesunServiceSign[];
	static const unsigned char AltiumServiceSign[];
	static const unsigned char IwesunDXPSign[];
	static const unsigned char AltiumDXPSign[];
public:
	static const BYTE KeyBlobPubProtel[];

	static const BYTE KeyBlobPriIWESUNcon[];
public:
	static const BYTE KeyBlobPubIWESUNcon[];
private:
	//CSP句柄
	HCRYPTPROV hCryptProvProtel;
	//CSP句柄
	HCRYPTPROV hCryptProvIWESUN;
	// 公钥句柄
	HCRYPTKEY hPubKeyProtel;
	// 公钥句柄
	HCRYPTKEY hPubKeyIWESUN;
	HCRYPTKEY hPriKeyIWESUN;

	BYTE *prKeyBlob;
	BYTE *pbKeyBlob;
	// 哈希句柄
	HCRYPTHASH  hHashProtel;

public:
	//获取或创建 CSP
	bool CSPCreate(HCRYPTPROV *hProv,LPCSTR UserName,DWORD Flags);
	//加载 CSP 秘钥
	bool CSPImportKey(HCRYPTPROV hProv,BYTE *KeyBlob,DWORD dwKeyBlobLen,HCRYPTKEY* phKey);
	//输出 CSP 秘钥	
	bool CSPExportKey(HCRYPTKEY hKey ,DWORD BlobType,BYTE *KeyBlob,DWORD *BlobLen);
	//创建 CSP 秘钥
	bool CSPGenKey(HCRYPTPROV hProv,HCRYPTKEY *hKey);
	//创建数字签名
	bool CSPCreateSign(BYTE *inText,int length,BYTE *pbSignature,DWORD *sgLen,HCRYPTPROV hCryptProv);
	//创建效验签名
	bool CSPVerifySign(BYTE *inText,int length, BYTE *vrText,int vrlength,HCRYPTPROV hCryptProv,HCRYPTKEY hPubKey);

private:
	BYTE  KeyBlobPriIWESUN[2048];
private:
	BYTE  KeyBlobPubIWESUN[2048];
private:

	DWORD KeyBlobPubIWESUNLen;
	DWORD KeyBlobPriIWESUNLen;
public:
	// 文件签名
	BOOL CreateFileSign(BYTE* fileData, ULONGLONG flieLength,BYTE *pbSignature,DWORD *sgLen);
	CString Bin2HexText(BYTE *data,DWORD Len);
	DWORD FileType(BYTE* fileData, ULONGLONG flieLength);
	DWORD Find(BYTE *data,DWORD Len,bool flag);

};

⌨️ 快捷键说明

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