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

📄 fgccryptoapi.h

📁 可用于生成证书请求、安装和验证数字证书的activex控件
💻 H
字号:
/*  
 *	Date		:	2004-09-13
 *	Author		:	Junhui Yang
 *	Filename	:	FGCCryptoAPI.h
 *	Description	:	FGCCryptoAPI is a code of CA from microsofe crypto API
*/

#ifndef _INC_FGCCRYPTOAPI_20040913
#define _INC_FGCCRYPTOAPI_20040913

#ifdef FGDLL
#define FGDLLExport __declspec(dllexport)
#else
#define FGDLLExport
#endif

#include <windows.h>
#include "FGObject.h"
#include "FGString.h"

class FGDLLExport FGCCryptoAPI : virtual public FGObject
{
public:
	FGCCryptoAPI();
	virtual ~FGCCryptoAPI();


/***************************************************************
* 函数名:		CreatePKS10
* 功能:		生成P10数据
* 输入参数:	sub			证书主题,X.500格式的字串,
*				isM			是否主通行证
* 输出参数:	pks10str	生成的P10字串
* 返回值:		成功返回TRUE,其他返回FALSE。
* 程序员:		杨军辉
* 编程日期:	2004/10/10
* 修改人员:	
* 修改日期:
* 修改原因:
*****************************************************************/
	static BOOL CreatePKS10 (FGString sub, FGString& pks10str, BOOL isM);



/***************************************************************
* 函数名:		SetupCert
* 功能:		安装通行证
* 输入参数:	pPKS7		PKCS#7字串,
* 输出参数:	无
* 返回值:		成功返回TRUE,其他返回FALSE。
* 程序员:		杨军辉
* 编程日期:	2004/10/10
* 修改人员:	
* 修改日期:
* 修改原因:
*****************************************************************/
	static BOOL SetupCert (FGString PKS7);



/***************************************************************
* 函数名:		DelAccountInStore
* 功能:		删除通行证
* 输入参数:	acc		用户的帐号
*				isM		是否主通行证
* 输出参数:	无
* 返回值:		成功返回TRUE,其他返回FALSE。
* 程序员:		杨军辉
* 编程日期:	2004/10/10
* 修改人员:	
* 修改日期:
* 修改原因:
*****************************************************************/
	static BOOL DelAccountInStore (FGString acc, BOOL isM);



/***************************************************************
* 函数名:		SignData
* 功能:		用通行证对数据签名
* 输入参数:	acc			用户的帐号
*				ram			随机数
*				isM			是否主通行证
* 输出参数:	signeddata	签名后的数据
* 返回值:		成功返回TRUE,其他返回FALSE。
* 程序员:		杨军辉
* 编程日期:	2004/10/10
* 修改人员:	
* 修改日期:
* 修改原因:
*****************************************************************/
	static BOOL SignData (FGString acc, FGString ram, FGString& signeddata, BOOL isM);


/***************************************************************
* 函数名:		inicode
* 功能:		初始化Base64
* 输入参数:	无
* 输出参数:	无
* 返回值:		成功返回TRUE,其他返回FALSE。
* 程序员:		杨军辉
* 编程日期:	2004/10/10
* 修改人员:	
* 修改日期:
* 修改原因:
*****************************************************************/
	static void inicode ();

/***************************************************************
* 函数名:		Base64Decode
* 功能:		对数据进行Base64编码
* 输入参数:	src		原数据
				slen	src的长度
* 输出参数:	dec		解码后的数据地址,如果非NULL,必须delete,
*				dlen	dec的长度
* 返回值:		成功返回TRUE,其他返回FALSE。
* 程序员:		杨军辉
* 编程日期:	2004/10/10
* 修改人员:	
* 修改日期:
* 修改原因:
*****************************************************************/
	static BOOL Base64Decode(BYTE* src, DWORD slen, BYTE** dec, DWORD& dlen);


/***************************************************************
* 函数名:		Base64Encode
* 功能:		对数据进行Base64解码
* 输入参数:	src		原数据
				slen	src的长度
* 输出参数:	无
* 返回值:		成功返回TRUE,其他返回FALSE。
* 程序员:		杨军辉
* 编程日期:	2004/10/10
* 修改人员:	
* 修改日期:
* 修改原因:
*****************************************************************/
	static FGString Base64Encode(BYTE* src, DWORD slen);


/***************************************************************
* 函数名:		GetNameFormSubject
* 功能:		在主题中获取用户名称
* 输入参数:	sub		主题字串
* 输出参数:	无
* 返回值:		成功返回名称字串,其他返回""。
* 程序员:		杨军辉
* 编程日期:	2004/10/10
* 修改人员:	
* 修改日期:
* 修改原因:
*****************************************************************/
	static FGString GetNameFormSubject (FGString sub);


/***************************************************************
* 函数名:		GetOrgFormSubject
* 功能:		在主题中获取组织名称
* 输入参数:	sub		主题字串
* 输出参数:	无
* 返回值:		成功返回组织字串,其他返回""。
* 程序员:		杨军辉
* 编程日期:	2004/10/10
* 修改人员:	
* 修改日期:
* 修改原因:
*****************************************************************/
	static FGString GetOrgFormSubject (FGString sub);


/***************************************************************
* 函数名:		isHere
* 功能:		查找帐号的通行证是否存在
* 输入参数:	account		帐号名称
*				isM			是否主通行证
* 输出参数:	无
* 返回值:		成功返回TRUE,其他返回FALSE。
* 程序员:		杨军辉
* 编程日期:	2004/10/10
* 修改人员:	
* 修改日期:
* 修改原因:
*****************************************************************/
	static BOOL isHere (FGString account, BOOL isM);


/***************************************************************
* 函数名:		DecodeName
* 功能:		从X.500字串中解出
* 输入参数:	account		帐号名称字串
* 输出参数:	无
* 返回值:		成功返回字串,其他返回""。
* 程序员:		杨军辉
* 编程日期:	2004/10/10
* 修改人员:	
* 修改日期:
* 修改原因:
*****************************************************************/
	static FGString DecodeName (CERT_NAME_BLOB* name);


/***************************************************************
* 函数名:		EncodeMD5
* 功能:		对数据进行MD5编码
* 输入参数:	ranstr		随机数据
*				psw			密码字串
* 输出参数:	encodedstr	编码后的数据(经过Base64后)
* 返回值:		成功返回TRUE,其他返回FALSE。
* 程序员:		杨军辉
* 编程日期:	2004/10/10
* 修改人员:	
* 修改日期:
* 修改原因:
*****************************************************************/
	static BOOL EncodeMD5 (FGString ranstr, FGString psw, FGString& encodedstr);


/***************************************************************
* 函数名:		EncodePSW
* 功能:		用公钥对数据加密
* 输入参数:	Pkey		公钥数据
*				psw			密码字串
* 输出参数:	encodedstr	加密后的数据(经过Base64后)
* 返回值:		成功返回TRUE,其他返回FALSE。
* 程序员:		杨军辉
* 编程日期:	2004/10/10
* 修改人员:	
* 修改日期:
* 修改原因:
*****************************************************************/
	static BOOL EncodePSW (FGString Pkey, FGString psw, FGString& encodedstr);


/***************************************************************
* 函数名:		ShowError
* 功能:		显示错误
* 输入参数:	无
* 输出参数:	无
* 返回值:		无
* 程序员:		杨军辉
* 编程日期:	2004/10/10
* 修改人员:	
* 修改日期:
* 修改原因:
*****************************************************************/
	static void ShowError (int e=-1);


/***************************************************************
* 函数名:		GetCSPName
* 功能:		获取系统可用的CSP名称
* 输入参数:	无
* 输出参数:	pname	获取的CSP名称
* 返回值:		成功返回TRUE,其他返回FALSE。
* 程序员:		杨军辉
* 编程日期:	2004/10/10
* 修改人员:	
* 修改日期:
* 修改原因:
*****************************************************************/
	static BOOL GetCSPName (CHAR pname[260]);
};





#endif // #ifndef _INC_FGCCRYPTOAPI_20040913

⌨️ 快捷键说明

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