📄 fgccryptoapi.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 + -