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

📄 csp.h

📁 基于SD卡的软实现CSP程序
💻 H
字号:
#ifndef CSP_FILE_IMPL
#define CSP_FILE_IMPL

#define CSP_PATH_MAXBUFFER 100

#define CSP_FILE_CONT TEXT("/存储卡/Cont")
#define CSP_FILE_CSP TEXT("/存储卡/CSP")
#define CSP_FILE_SEC TEXT("/存储卡/s")

#define RSAKEY_LENGTH 128

#include <windows.h>
#include <wincrypt.h>
#include "RSAWapper.h"
#include "cspconst.h"
#pragma once
static const WCHAR* rootPath = TEXT("/存储卡");
class CSPFile
{
public:
//basic commands
	BOOL NewDirectory(const WCHAR* dName);
	HANDLE GetFirstChild(const WCHAR *szPath,WCHAR* szFileName);
	HANDLE NewFile(const WCHAR* szPath);
	HANDLE GetFile(const WCHAR* path);
	BOOL FileExist(const WCHAR* szPath);
	HANDLE CreateFileWithoutParent(WCHAR* szParent,WCHAR* szFile);
	BOOL ReadData(HANDLE file,BYTE* lpBuffer,DWORD requestSize,DWORD* actualSize);
	BOOL WriteData(HANDLE file,LPBYTE lpBuffer,DWORD requestSize,DWORD* actualSize);
	BOOL DelFile(const WCHAR* szPath);
	BOOL RemoveDir(const WCHAR* szPath);
	BOOL EnumFile(HANDLE hFile,WCHAR* lpBuffer,DWORD* len);
	BOOL IsValid(HANDLE hFile);
	BOOL GenerateFile(const WCHAR* pszFileName, const WCHAR * pszDirectory, BYTE* byData, const BYTE byLen);

	BOOL GetSize(HANDLE hFile,LPDWORD sizeHigh, LPDWORD sizeLow);
	BOOL WriteLog(BYTE* text);
	BOOL CleanFile(WCHAR* szPath);
	DWORD WriteAtPosition(HANDLE hFile,DWORD pos,DWORD method,LPBYTE lpBuffer,DWORD requestSize);
	BOOL UserInit(const WCHAR* path,const WCHAR* name);
	

//complicated commands
	BOOL DeleteKeySet(WCHAR* szPath,UINT iFileIndex,WCHAR* szContSer,const WCHAR* contPath);
	BOOL MakeDirs();

	bool VerifyPIN(DWORD dwWhichKP,BYTE* pin,BYTE pinSize);
	bool WriteNewPin(DWORD dwWhichKP,BYTE* newPin,BYTE pinSize);
	bool ChangePin(DWORD dwWhichKP,BYTE* oldPin,BYTE oldPinSize,BYTE* newPin,BYTE newPinSize);

	bool DoSign(const WCHAR* path,LPBYTE inBuffer,DWORD inSize,LPBYTE outBuf,LPDWORD outSize);
	bool Decrypt(const WCHAR* path,LPBYTE inBuffer,DWORD inSize,LPBYTE outBuf,LPDWORD outSize);
	bool DoCrypto(BYTE byCryptoType, IN WCHAR * pszKeyFile, IN BYTE * pbyInput, IN DWORD byInputLen, OUT BYTE * pbyOutput, OUT DWORD *pbyOutputLen);

	bool GenRSAKey(int conSer,DWORD dwKeySpec);
private:

	HANDLE lFile;
};

#endif

⌨️ 快捷键说明

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