?? 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 + -