?? certcreate.h
字號:
#include <stdio.h>
#include <windows.h>
/***************************************************************
* 函數名: CACreateCertificate
* 功能: 生成根證書并導出相關文件。
* 輸入/輸出參數: szCertFile in 根證書導出到該證書文件
* szKeyFile in 簽名公私鑰保存文件
* szXCHGKeyFile in 交換公私鑰保存文件
* szXCHGPubFile in 交換公鑰保存文件
* szPassword in 密鑰文件口令
* 返回值: 正確返回0,其他返回負數。
* 程序員: 徐鋒 編程日期:2004/09/10
* 修改人員: 修改日期:
* 修改原因:
*****************************************************************/
int CACreateCertificate(
LPSTR szCertFile, //根證書導出到該證書文件
LPSTR szKeyFile, //簽名公私鑰保存文件
LPSTR szXCHGKeyFile, //交換公私鑰保存文件
LPSTR szXCHGPubFile, //交換公鑰保存文件
LPSTR szPassword); //密鑰文件口令
/***************************************************************
* 函數名: SignP10
* 功能: 簽發PKCS#10證書。
* 輸入/輸出參數: szUserSubject 主題名
* szP10 in BASE64編碼的pkcs10字符串
* dwSerialNum in 系列號
* dwValid in 有效期(現在開始的月數)
* pbCert in 證書,二進制方式
* cbSize in/out pbCert緩沖區長度/證書長度
* 返回值: 正確返回0,其他返回負數。
* 程序員: 徐鋒 編程日期:2004/09/10
* 修改人員: 修改日期:
* 修改原因:
*****************************************************************/
int SignP10(LPSTR szUserSubject, //in 主題名
LPSTR szP10, //in BASE64編碼的pkcs10字符串
DWORD dwSerialNum, //in 系列號
DWORD dwValid, //in 有效期(現在開始的月數)
BYTE* pbCert, //out 證書,二進制方式
DWORD *cbSize); //in-out pbCert緩沖區長度/證書長度
/***************************************************************
* 函數名: GenP7
* 功能: 將用戶證書和根證書編碼成PKCS#7格式。
* 輸入/輸出參數: pbCert in 用戶證書
* cbSize in 用戶證書長度
* pbData in base64編碼后的p7內容
* cbData in/out pbData緩沖區長度
* 返回值: 正確返回0,其他返回負數。
* 程序員: 徐鋒 編程日期:2004/09/10
* 修改人員: 修改日期:
* 修改原因:
*****************************************************************/
int GenP7(BYTE* pbCert, //in 用戶證書
DWORD cbSize, //in 用戶證書長度
BYTE* pbData, //out base64編碼后的p7內容
DWORD* cbData); //in/out pbData緩沖區長度/返回長度
//生成根證書的p7格式
/***************************************************************
* 函數名: GenCAP7
* 功能: 將根證書編碼成PKCS#7格式,并保存到當前目錄的CAcert.p7b文件中
* 輸入/輸出參數:無
* 返回值: 正確返回0,其他返回負數。
* 程序員: 徐鋒 編程日期:2004/09/10
* 修改人員: 修改日期:
* 修改原因:
*****************************************************************/
int GenCAP7();
//解密用戶密碼的密文
/***************************************************************
* 函數名: DecryptPwd
* 功能: 解密用戶密碼的密文(CA的交換公鑰加密).
* 輸入/輸出參數: szPWD in,out 用戶密碼的密文(base64編碼)/明文(base64編碼)
* szSign in 數據長度
* nBufLen in 緩沖區長度
* 返回值: 正確返回0,其他返回負數。
* 程序員: 徐鋒 編程日期:2004/09/10
* 修改人員: 修改日期:
* 修改原因:
*****************************************************************/
int DecryptPwd(char *szPWD, //in,out 用戶密碼的密文/明文(base64編碼)
int *nDataLen,//in,out 數據長度
int nBufLen);//in緩沖區長度
/***************************************************************
* 函數名: VerifySign
* 功能: 驗證用戶的簽名.
* 輸入/輸出參數: pUserCert in 用戶證書,base64編碼
* szSign in 簽名值
* szRandom in 隨機數
* 返回值: 驗證簽名正確返回0,其他返回負數。
* 程序員: 徐鋒 編程日期:2004/09/10
* 修改人員: 修改日期:
* 修改原因:
*****************************************************************/
int VerifySign(unsigned char * pUserCert, //in 用戶證書,base64編碼
LPSTR szSign,//in 簽名值
LPSTR szRandom); //in 隨機數
//生成PKCS10文件
/***************************************************************
* 函數名: CreatePKCS10
* 功能: 生成PKCS10文件.
* 輸入/輸出參數: szX509Name in X509名字
* pkcs10str out PKCS10字符串,以BASE64編碼
* pkcs10len in/out pkcs10str緩沖區長度/返回字符串長度
* 返回值: 正確返回0,其他返回負數。
* 程序員: 徐鋒 編程日期:2004/09/10
* 修改人員: 修改日期:
* 修改原因:
*****************************************************************/
int CreatePKCS10(char* szX509Name, //X509名字
char* pkcs10str, //PKCS10字符串,以BASE64編碼
DWORD* pkcs10len);//in-pkcs10str緩沖區長度,out-返回字符串長度
//安裝pkcs7證書
/***************************************************************
* 函數名: InstallCert
* 功能: 安裝pkcs7證書.
* 輸入/輸出參數: pPKS7 in base64編碼后的pkcs7證書,安裝在CERT_STORE_PROV_SYSTEM,
* CERT_SYSTEM_STORE_CURRENT_USER,SIGNCERTNAME為STORE名
* 返回值: 正確返回0,其他返回負數。
* 程序員: 徐鋒 編程日期:2004/09/10
* 修改人員: 修改日期:
* 修改原因:
*****************************************************************/
int InstallCert (BYTE* pPKS7); //base64編碼后的pkcs7證書,安裝在CERT_STORE_PROV_SYSTEM,,CERT_SYSTEM_STORE_CURRENT_USER
//SIGNCERTNAME為STORE名
/***************************************************************
* 函數名: GenSignCert
* 功能: 生成、簽署、安裝簽名控件證書.其中包含CreatePKCS10,SignP10,InstallCert三個函數
* 輸入/輸出參數: 無
* 返回值: 正確返回0,其他返回負數。
* 程序員: 徐鋒 編程日期:2004/09/10
* 修改人員: 修改日期:
* 修改原因:
*****************************************************************/
int GenSignCert();
/***************************************************************
* 函數名: RestoreKey
* 功能: 恢復CA密鑰對
* 輸入/輸出參數: KEYBIN in 密鑰對BLOB數據
* pKeyPwd in 保護密鑰對的密碼
* nKeyFlag in 密鑰類型(1--簽名密鑰,2--交換密鑰)
* 返回值: 正確返回0,其他返回負數。
* 程序員: 徐鋒 編程日期:2004/10/10
* 修改人員: 修改日期:
* 修改原因:
*****************************************************************/
int RestoreKey(BYTE* KEYBIN,int nKeyLen,char *pKeyPwd,int nKeyFlag);
/***************************************************************
* 函數名: RestoreKey
* 功能: 恢復CA證書到szIssuerStore
* 輸入/輸出參數: CERTBIN in CA證書BLOB數據
* 返回值: 正確返回0,其他返回負數。
* 程序員: 徐鋒 編程日期:2004/10/10
* 修改人員: 修改日期:
* 修改原因:
*****************************************************************/
int RestoreCert(BYTE* CERTBIN,int nKeyLen);
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -