




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、 . . 2/48安全中間件二次開發(fā)手冊Copyright 2003 Shanghai wellhope Information Technology Co.,Ltd. All Rights Reserved目錄 TOC o 1-4 h z HYPERLINK l _Toc1255278631引言 PAGEREF _Toc125527863 h 4HYPERLINK l _Toc1255278641.1編寫目的 PAGEREF _Toc125527864 h 4HYPERLINK l _Toc1255278651.2項目背景 PAGEREF _Toc125527865 h 4HYPERLINK
2、 l _Toc1255278661.3術(shù)語和縮寫詞 PAGEREF _Toc125527866 h 5HYPERLINK l _Toc1255278671.4遵循標準 PAGEREF _Toc125527867 h 5HYPERLINK l _Toc1255278682系統(tǒng)概述 PAGEREF _Toc125527868 h 7HYPERLINK l _Toc1255278692.1功能 PAGEREF _Toc125527869 h 8HYPERLINK l _Toc1255278702.2性能 PAGEREF _Toc125527870 h 9HYPERLINK l _Toc1255278
3、71精度 PAGEREF _Toc125527871 h 9HYPERLINK l _Toc125527872時間特性 PAGEREF _Toc125527872 h 9HYPERLINK l _Toc125527873靈活性 PAGEREF _Toc125527873 h 9HYPERLINK l _Toc1255278743運行環(huán)境 PAGEREF _Toc125527874 h 10HYPERLINK l _Toc1255278753.1硬件系統(tǒng) PAGEREF _Toc125527875 h 10HYPERLINK l _Toc1255278763.2支撐軟件 PAGEREF _Toc
4、125527876 h 10HYPERLINK l _Toc1255278774開發(fā)說明 PAGEREF _Toc125527877 h 10HYPERLINK l _Toc1255278784.1客戶端描述 PAGEREF _Toc125527878 h 11HYPERLINK l _Toc1255278794.1.1APP客戶端控件接口說明 PAGEREF _Toc125527879 h 11HYPERLINK l _Toc1255278804.1.1.1AtvInit PAGEREF _Toc125527880 h 11HYPERLINK l _Toc1255278814.1.1.2At
5、vEnd PAGEREF _Toc125527881 h 11HYPERLINK l _Toc1255278824.1.1.3SetHardWare PAGEREF _Toc125527882 h 12HYPERLINK l _Toc1255278834.1.1.4Login PAGEREF _Toc125527883 h 12HYPERLINK l _Toc1255278844.1.1.5ChangeLoginPin PAGEREF _Toc125527884 h 12HYPERLINK l _Toc1255278854.1.1.6Logout PAGEREF _Toc125527885 h
6、 13HYPERLINK l _Toc1255278864.1.1.7GetCert PAGEREF _Toc125527886 h 13HYPERLINK l _Toc1255278874.1.1.8CheckCert PAGEREF _Toc125527887 h 13HYPERLINK l _Toc1255278884.1.1.9GetCertInfo PAGEREF _Toc125527888 h 14HYPERLINK l _Toc1255278894.1.1.10SealEnvelope PAGEREF _Toc125527889 h 15HYPERLINK l _Toc12552
7、78904.1.1.11SealEnvelopeEx PAGEREF _Toc125527890 h 16HYPERLINK l _Toc1255278914.1.1.12OpenEnvelope PAGEREF _Toc125527891 h 17HYPERLINK l _Toc1255278924.1.1.13SignData PAGEREF _Toc125527892 h 17HYPERLINK l _Toc1255278934.1.1.14SignDataEx PAGEREF _Toc125527893 h 18HYPERLINK l _Toc1255278944.1.1.15Veri
8、fySign PAGEREF _Toc125527894 h 18HYPERLINK l _Toc1255278954.1.1.16GenRandom PAGEREF _Toc125527895 h 19HYPERLINK l _Toc1255278964.1.1.17HashData PAGEREF _Toc125527896 h 19HYPERLINK l _Toc1255278974.1.1.18SymmEncrypt PAGEREF _Toc125527897 h 20HYPERLINK l _Toc1255278984.1.1.19SymmDecrypt PAGEREF _Toc12
9、5527898 h 20HYPERLINK l _Toc1255278994.1.1.20GetCertFromLDAP PAGEREF _Toc125527899 h 21HYPERLINK l _Toc1255279004.1.1.21GetAndSaveCRL PAGEREF _Toc125527900 h 21HYPERLINK l _Toc1255279014.1.1.22ReadFromFile PAGEREF _Toc125527901 h 22HYPERLINK l _Toc1255279024.1.1.23WriteToFile PAGEREF _Toc125527902 h
10、 22HYPERLINK l _Toc1255279034.1.1.24GetStamp PAGEREF _Toc125527903 h 22HYPERLINK l _Toc1255279044.1.1.25VerifyStamp PAGEREF _Toc125527904 h 23HYPERLINK l _Toc1255279054.1.1.26GetAlgoFromPA PAGEREF _Toc125527905 h 23HYPERLINK l _Toc1255279064.1.1.27Base64Encode PAGEREF _Toc125527906 h 24HYPERLINK l _
11、Toc1255279074.1.1.28Base64Decode PAGEREF _Toc125527907 h 24HYPERLINK l _Toc1255279084.1.1.29GetParamValue PAGEREF _Toc125527908 h 25HYPERLINK l _Toc1255279094.2服務(wù)端描述 PAGEREF _Toc125527909 h 25HYPERLINK l _Toc1255279104.2.1 APP應(yīng)用服務(wù)器端JAVA接口 PAGEREF _Toc125527910 h 25HYPERLINK l _Toc1255279114.2.1.1 re
12、lease PAGEREF _Toc125527911 h 25HYPERLINK l _Toc1255279124.2.1.2GetCurStatus PAGEREF _Toc125527912 h 25HYPERLINK l _Toc1255279134.2.1.3AdvBase64Encode PAGEREF _Toc125527913 h 26HYPERLINK l _Toc1255279144.2.1.4 AdvBase64Decode PAGEREF _Toc125527914 h 26HYPERLINK l _Toc1255279154.2.1.5AdvGetCert PAGER
13、EF _Toc125527915 h 26HYPERLINK l _Toc1255279164.2.1.6AdvCheckCert PAGEREF _Toc125527916 h 26HYPERLINK l _Toc1255279174.2.1.7AdvGetCertInfo PAGEREF _Toc125527917 h 27HYPERLINK l _Toc1255279184.2.1.8AdvSealEnvelope PAGEREF _Toc125527918 h 28HYPERLINK l _Toc1255279194.2.1.9 AdvSealEnvelopeEx PAGEREF _T
14、oc125527919 h 29HYPERLINK l _Toc1255279204.2.1.10 AdvOpenEnvelope PAGEREF _Toc125527920 h 30HYPERLINK l _Toc1255279214.2.1.11 AdvSignData PAGEREF _Toc125527921 h 30HYPERLINK l _Toc1255279224.2.1.12 AdvSignDataEx PAGEREF _Toc125527922 h 31HYPERLINK l _Toc1255279234.2.1.13 AdvVerifySign PAGEREF _Toc12
15、5527923 h 31HYPERLINK l _Toc1255279244.2.1.14 AdvGenRandom PAGEREF _Toc125527924 h 32HYPERLINK l _Toc1255279254.2.1.15 AdvHashData PAGEREF _Toc125527925 h 32HYPERLINK l _Toc1255279264.2.1.16 AdvSymmEncrypt PAGEREF _Toc125527926 h 33HYPERLINK l _Toc1255279274.2.1.17 AdvSymmDecrypt PAGEREF _Toc1255279
16、27 h 33HYPERLINK l _Toc1255279284.2.1.18 AdvGetCertFromLDAP PAGEREF _Toc125527928 h 34HYPERLINK l _Toc1255279294.2.1.19 AdvGetCRLFromLDAP PAGEREF _Toc125527929 h 34HYPERLINK l _Toc1255279304.2.1.20 AdvUploadCRL PAGEREF _Toc125527930 h 35HYPERLINK l _Toc1255279314.2.1.21 AdvReadFromFile PAGEREF _Toc1
17、25527931 h 35HYPERLINK l _Toc1255279324.2.1.22 AdvWriteToFile PAGEREF _Toc125527932 h 35HYPERLINK l _Toc1255279334.2.1.23 AdvGetStamp PAGEREF _Toc125527933 h 36HYPERLINK l _Toc1255279344.2.1.24 AdvVerifyStamp PAGEREF _Toc125527934 h 36HYPERLINK l _Toc1255279354.2.1.25 AdvGetAlgoFromPA PAGEREF _Toc12
18、5527935 h 36HYPERLINK l _Toc1255279364.2.1.26 AdvGetAttrCertInfo PAGEREF _Toc125527936 h 37HYPERLINK l _Toc1255279374.2.1.27 AdvGetPACertInfo PAGEREF _Toc125527937 h 37HYPERLINK l _Toc1255279384.2.1.28 AdvGetAttrCertListFromLDAP PAGEREF _Toc125527938 h 38HYPERLINK l _Toc1255279395應(yīng)用開發(fā)實例 PAGEREF _Toc
19、125527939 h 39HYPERLINK l _Toc1255279405.1身份認證參考模型 PAGEREF _Toc125527940 h 40HYPERLINK l _Toc1255279415.2加解密功能參考模型 PAGEREF _Toc125527941 h 43HYPERLINK l _Toc1255279425.3簽名驗簽功能參考模型 PAGEREF _Toc125527942 h 44引言編寫目的該文檔主要規(guī)了PKI安全中間件的功能接口定義。在整個PKI體系中,安全中間件的作用非常關(guān)鍵,它通過調(diào)用底層的WHCSP與證書管理器等,封裝了一系列PKI應(yīng)用接口,滿足上層PKI
20、具體應(yīng)用的需要。本標準適用于PKI上層應(yīng)用的需求,主要為CA系統(tǒng)。適用對象為所有采用安全中間件的系統(tǒng)開發(fā)人員。項目背景高級密碼服務(wù),顧名思義,是為用戶提供相對高級和抽象的密碼服務(wù),而不是像底層的CSP和硬件加密算法那樣,提供比較低級和具體的密碼服務(wù)。一般來說,高級的密碼服務(wù)應(yīng)該能夠讓不懂加密、解密和簽名、驗簽等概念的用戶也能夠透明的使用,也就是說把密碼學(xué)算法的細節(jié)給屏蔽掉了。術(shù)語和縮寫詞縮寫、術(shù)語解 釋PKI公鑰基礎(chǔ)設(shè)施(Public Key Infrastructure)CSPCryptographic Service Provider(密碼服務(wù)提供者)CRL證書撤消列表( Certific
21、ate Revocation List )一個標記一系列不再被證書發(fā)布者所信任的證書的簽名列表(通稱黑)。LDAP目錄查詢協(xié)議( Lightweight Directory Access Protocol )本設(shè)計指輕型目錄訪問協(xié)議LDAP。用戶可使用LDAP協(xié)議,通過網(wǎng)絡(luò)到目錄服務(wù)器查詢系統(tǒng)中的證書或證書撤消列表。OCSP在線證書狀態(tài)查詢協(xié)議(Online Certificate Status Protocol)用戶可使用OCSP協(xié)議,通過網(wǎng)絡(luò)到OCSP服務(wù)器實時查詢系統(tǒng)中證書的當前有效/無效狀態(tài)。遵循標準列出參考資料,如:RFC 2459 PKIX PKIX證書和CRL概要IETF: PK
22、IX證書策略和證書實踐框架IETF:RFC 2510: CMP(證書管理協(xié)議)RFC 2797: CMC(CMS上的證書管理消息)RFC 2511: CRMF(證書請求消息格式) X.208 抽象語法符號1 描述(ASN.1) X.209 抽象語法符號1 基本編碼規(guī)說明(ASN.1) X.680 信息技術(shù)抽象語法符號1 (ASN.1)基本符號規(guī)X.681 信息技術(shù)抽象語法符號1 (ASN.1)信息目標規(guī)X.682 信息技術(shù)抽象語法符號1 (ASN.1)強制規(guī)X.690 信息技術(shù)ASN.1 編碼規(guī)則基本編碼規(guī)則(BER), 規(guī)編碼規(guī)則(CER)和主要編碼規(guī)則(DER) X.509v4 信息技術(shù)開
23、放式系統(tǒng)互連目錄:公鑰和屬性證書框架X.500 開放式系統(tǒng)互連目錄:概念,模型和服務(wù)概述LDAP 輕目錄訪問協(xié)議:由ISO于1997年12月發(fā)布。PKCS#1 (v1.5) RSA密碼算法PKCS#5 (v2.0) 基于口令的密碼標準PKCS#6 (v1.5)擴展的數(shù)字證書語法標準PKCS#7 (v1.5) 密文消息語法標準PKCS#8 (v1.5) 私鑰信息語法標準PKCS#9 (v2.0)可選擇的屬性類型PKCS#10 (v1.5)數(shù)字證書申請語法標準PKCS#11硬件密碼設(shè)備接口標準PKCS#12 (v1.0)個人信息交換語法PKCS#15 (v1.1)多個應(yīng)用訪問標準X.509 開放式
24、系統(tǒng)互連目錄:公鑰和授權(quán)證書框架ITU-T X.500 開放式系統(tǒng)互連目錄:概念,模型和服務(wù)概述CORBA(公共對象請求代理體系結(jié)構(gòu))v2.4系統(tǒng)概述在PKI體系結(jié)構(gòu)中見上圖,安全中間件總攬了證書管理器和CSP的所有功能。它在PC端和PKI服務(wù)器端都是直接面向最終用戶的調(diào)用接口,因此,它必須能夠屏蔽掉PC端和PKI服務(wù)器端的不同情況。安全中間件是為用戶提供相對高級和抽象的密碼服務(wù),而不是像底層的CSP和硬件加密算法那樣,提供比較低級和具體的密碼服務(wù)。一般來說,安全中間件服務(wù)應(yīng)該能夠讓不懂加密、解密和簽名、驗簽等概念的用戶也能夠透明的使用,也就是說把密碼學(xué)算法的細節(jié)給屏蔽掉了。功能抽象的算法服務(wù)
25、對指定的明文進行加密的功能,包括口令加密、對稱密鑰加密和公開密鑰加密。對指定的密文進行解密的功能,包括對稱密鑰解密和公開密鑰解密。對指定的明文進行簽名的功能。對指定的簽名進行驗簽的功能封裝PKCS7數(shù)字信封解開PKCS7數(shù)字信封對明文進行散列。產(chǎn)生隨機數(shù)。抽象的證書服務(wù)根據(jù)標簽得到證書驗證證書的有效性生成PKCS10格式的證書請求文件輸入綁定的證書和私鑰。私鑰和口令保護服務(wù)檢查私鑰口令更改私鑰口令檢查PIN更改PIN編碼服務(wù)ASE64的編碼功能BASE64的解碼功能性能精度TSP響應(yīng)時間1s;OCSP響應(yīng)時間1s;LDAP服務(wù)單元響應(yīng)速度0.5s時間特性客戶端RSA簽名2次/秒驗簽5次/秒服務(wù)
26、器端RSA簽名20次/秒驗簽100次/秒靈活性可以靈活支持多種硬件介質(zhì)和硬件加密卡;可以提供C/C+、Java、C#等應(yīng)用接口;一套軟件結(jié)構(gòu)可以同時為CA和應(yīng)用提供服務(wù);可以支持33算法、RC4算法、DES/3DES算法;運行環(huán)境硬件系統(tǒng)適用于各種PC兼容機、服務(wù)器、小型機等等支撐軟件WINDOWS 2000,WindowsXP,LINUX(RedHat9.0與Advanced Server2.1)開發(fā)說明描述系統(tǒng)為二次開發(fā)工作提供的接口、約束等。安全中間件分為客戶端和服務(wù)端2部分,安全中間件客戶端主要的功能是在客戶端通過對硬件存儲介質(zhì)的操作完成一些密碼運算。服務(wù)端主要是通過調(diào)用密碼服務(wù)器為應(yīng)
27、用服務(wù)提供所需的密碼服務(wù)??蛻舳撕头?wù)端產(chǎn)的數(shù)據(jù)格式都采用國際同意標準。服務(wù)端可以運算客戶端產(chǎn)生的數(shù)據(jù),客戶端也可以運算服務(wù)端產(chǎn)生的數(shù)據(jù)。主要用的功能為客戶端進行簽名、加密,服務(wù)端驗簽、解密或服務(wù)端簽名、加密,客戶端驗簽、解密??蛻舳伺c服務(wù)端的數(shù)據(jù)傳輸可以由應(yīng)用開發(fā)靈活處理,但要保證在傳輸前后數(shù)據(jù)的格式不發(fā)生變化。通過安全中間件提供的抽象密碼服務(wù),為應(yīng)用開發(fā)提供性,完整性,不可抵賴性方面的支持。完成身份認證,電子印章,責任認定,密文傳輸?shù)葢?yīng)用服務(wù)??蛻舳嗣枋隹蛻舳酥饕O(shè)備是硬件存儲介質(zhì)E-Key,E-Key做為數(shù)字證書的存儲設(shè)備主要存儲用戶的簽名私鑰,加密私鑰,簽名證書,加密證書。通過調(diào)用客戶
28、端控件可以使用E-Key完成簽名,加密等密碼服務(wù)。4.1.1APP客戶端控件接口說明AtvInit功能簡介控件初始化。讀取客戶端證書載體信息與其它初始化工作。調(diào)用一些主要功能接口前必須先調(diào)用本接口。接口名稱int AtvInit()參數(shù)說明入?yún)⒄f明無出參說明無返回值成功,則返回0失敗,則返回錯誤號,錯誤號小于0AtvEnd功能簡介進行開發(fā)包函數(shù)庫調(diào)用完畢后部存儲區(qū)的清除工作。接口名稱int AtvEnd();參數(shù)說明入?yún)⒄f明無出參說明無返回值成功,則返回0失敗,則返回錯誤號,小于0SetHardWare功能簡介設(shè)置客戶端硬件設(shè)備類型。接口名稱BOOL SetHardWare(long hard
29、wareType);參數(shù)說明入?yún)⒄f明hardwareTypeIN:客戶端硬件設(shè)備類型目前支持:1軟件摸擬實現(xiàn)2加密卡實現(xiàn)3SIM卡實現(xiàn)4 EKEY實現(xiàn)出參說明無返回值成功,則返回TRUE失敗,則返回FALSELogin功能簡介登錄客戶端硬件設(shè)備。接口名稱BOOL Login(int loginType, BSTR loginPin);參數(shù)說明入?yún)⒄f明loginTypeIN:用戶登陸類型,此處用戶請輸入1loginPinIN:用戶登陸PIN碼出參說明無返回值成功,則返回TRUE失敗,則返回FALSE說明調(diào)用本接口時,如果loginPin輸入為”空,則會彈出輸入口令對話框;如果不為空,則不會彈出,
30、只返回登錄是否成功。ChangeLoginPin功能簡介修改客戶端用戶登陸PIN碼。接口名稱BOOL ChangeLoginPin(BSTR keyLabel,BSTR oldPasswd,BSTR newPasswd);參數(shù)說明入?yún)⒄f明keyLabelIN: 私鑰標簽,此處請傳入“wellhope”oldPasswdIN: 舊的用戶登陸口令newPasswdIN:新的用戶登陸口令 出參說明無返回值成功,則返回TRUE失敗,則返回FALSELogout功能簡介退出客戶端硬件登錄。接口名稱BOOL Logout();參數(shù)說明入?yún)⒄f明無出參說明無返回值成功,則返回TRUE失敗,則返回FALSEGe
31、tCert功能簡介根據(jù)證書標簽和證書類型讀取客戶端用戶證書。證書標簽寫在配置文件中,見前面Client.conf配置文件。接口名稱BSTR GetCert(int certType);參數(shù)說明入?yún)⒄f明certTypeIN:證書類型 1 加密證書 2 簽名證書出參說明無返回值返回編碼后的證書信息。CheckCert功能簡介驗證證書的有效性。在驗證過程中會連接到OCSP服務(wù)器上進行證書的驗證。接口名稱BOOL CheckCert(BSTR i_inCert);參數(shù)說明入?yún)⒄f明i_inCertIN:待驗證的證書,已編碼。出參說明無返回值成功,則返回TRUE失敗,則返回FALSEGetCertInfo
32、功能簡介解析證書信息,并以XML字符串格式返回接口名稱BSTR GetCertInfo(BSTR i_inCert);參數(shù)說明入?yún)⒄f明i_inCertIN:待解析的證書,已編碼。出參說明無返回值返回采用XML標準結(jié)構(gòu)的證書信息。舉例30042SHA1RSACNShanghaiZhangjiangShanghai wellhope E-Bussiness Certificate AuthorityWELLHOPE自然人CA2003年08月21日2004年08月21日CNShanghaiZhangjiangwellhopeinfosecuser5100f34d52b7fb481752a506905
33、e5b8a0698994dc3104fc8f7d1180912c6087dee594225d4ba1946dfad58598859d3501e59fc9cbd86b50c79b2ce09630fed4896651b54c37ae98855545c1434f9f4a15e3a15e9b09997b03af16c7465f816bfe2b1a49821a0090e283f82ebf2ed7daa2e76a5ada469a14e78108dde58ac13b826fb0203010001SealEnvelope功能簡介數(shù)字信封加密。部的處理過程是首先隨機生成一對稱密鑰(由入口參數(shù)指定其算法或者通過P
34、A確定),然后用此對稱密鑰加密輸入的數(shù)據(jù),最后用公鑰加密產(chǎn)生的此對稱密鑰。這是我們推薦的一種對數(shù)據(jù)進行加密的方法,因為它不僅保證了加密的高效性(對稱密鑰的快速加密),還保證了加密的高強度性(公鑰的強加密)。此函數(shù)的加密輸出結(jié)果遵循PKCS#7的編碼標準(EnvelopedData)。接口名稱BSTR SealEnvelope( BSTR i_encCert,long i_symmAlgo,BSTR i_inData);參數(shù)說明入?yún)⒄f明i_encCertIN: 用于加密的數(shù)字證書,已編過碼。i_symmAlgoIN:信封中所用對稱算法標識。取值如下: CALG_RC4 = 26625CALG_3
35、DES = 26115CALG_33 = 9viaPA = 0,說明加密過程首先將連接到PA(策略中心)獲取相應(yīng)的參數(shù)進行后續(xù)的工作i_inDataIN:輸入原文信息,如是二進制數(shù)據(jù)則已編過碼。出參說明無返回值輸出的已編碼的密文結(jié)果。SealEnvelopeEx功能簡介用多證書批量生成數(shù)字信封。此函數(shù)的加密輸出結(jié)果遵循PKCS#7的編碼標準(EnvelopedData)。接口名稱BSTR SealEnvelopeEx(BSTR i_encCert, long i_certsize, long i_symmAlgo,BSTR i_inData);參數(shù)說明入?yún)⒄f明i_encCertIN:用于加密的
36、數(shù)字證書,已編過碼,多個證書間以“”隔開。i_certsizeIN: 保留參數(shù)i_symmAlgoIN:信封中所用對稱算法標識。CALG_RC4 = 26625CALG_3DES = 26115CALG_33 = 9viaPA = 0,說明加密過程首先將連接到PA(策略中心)獲取相應(yīng)的參數(shù)進行后續(xù)的工作i_inDataIN:輸入原文信息,如是二進制數(shù)據(jù)則已編過碼。出參說明無返回值輸出的已編碼的密文結(jié)果。OpenEnvelope功能簡介解析數(shù)字信封私鑰標簽在配置文件中定義,運行時彈出輸入框提示用戶輸入私鑰保護口令。接口名稱BSTR OpenEnvelope(BSTR i_inData);參數(shù)說明
37、入?yún)⒄f明i_inDataIN:輸入已編碼的信封數(shù)據(jù)。出參說明無返回值輸出原文信息, 如是二進制數(shù)據(jù)則已編過碼。SignData功能簡介對輸入數(shù)據(jù)進行數(shù)字簽名。私鑰標簽在配置文件中定義,運行時彈出輸入框提示用戶輸入私鑰保護口令。接口名稱BSTR SignData(BSTR i_inData,int i_algoType,int i_signType);參數(shù)說明入?yún)⒄f明i_inDataIN:輸入的待簽名數(shù)據(jù),二進制數(shù)據(jù)需要做編碼處理。i_algoTypeIN:簽名算法取值如:32772 sha1RSA32771 md5RSAsha1RSA、md5RSA說明簽名采用的是何種摘要算法簽名算法i_sig
38、nTypeIN:簽名值類型取值:0不包含原文的純簽名 1包含原文的PKCS7格式數(shù)據(jù)出參說明無返回值輸出的已編碼的簽名數(shù)據(jù)。SignDataEx功能簡介對輸入數(shù)據(jù)進行數(shù)字簽名。私鑰標簽在配置文件中定義,運行時彈出輸入框提示用戶輸入私鑰保護口令。接口名稱BSTR SignData(BSTR i_sigCert,BSTR i_inData,int i_algoType,int i_signType);參數(shù)說明入?yún)⒄f明i_sigCertIN:通信對方的證書,當需要通過PA獲取簽名算法時需輸入i_inDataIN:輸入的待簽名數(shù)據(jù),二進制數(shù)據(jù)需要做編碼處理。i_algoTypeIN:簽名算法取值如:3
39、2772 sha1RSA32771 md5RSA0 viaPA等sha1RSA、md5RSA說明簽名采用的是何種摘要算法簽名算法viaPA = 0,說明簽名過程首先將連接到PA(策略中心)獲取相應(yīng)的參數(shù)進行后續(xù)的工作i_signTypeIN:簽名值類型取值:0不包含原文的純簽名 1包含原文的符合PKCS7格式的數(shù)據(jù)出參說明無返回值輸出的已編碼的簽名數(shù)據(jù)。VerifySign功能簡介對輸入數(shù)據(jù)進行數(shù)字簽名的驗證接口名稱BOOL VerifySign( BSTR i_checkCert, BSTR i_clearText,BSTR i_signature,int i_algoType,int i_
40、signType);參數(shù)說明入?yún)⒄f明i_checkCert IN:驗證所用的證書。i_clearText IN:簽名的原文。如簽名值包含原文,置空即可。i_signature IN:待驗證的簽名數(shù)據(jù)。i_algoTypeIN:簽名算法。如簽名值不符合PKCS7標準,需要輸入簽名算法。取值如:32772 sha1RSA32771 md5RSA0 viaPA等sha1RSA、md5RSA說明簽名采用的是何種摘要算法簽名算法viaPA參數(shù)說明簽名過程將連接到PA(策略中心)獲取相應(yīng)的簽名參數(shù)進行后續(xù)的工作。i_signTypeIN:簽名值類型取值:0不包含原文(純簽名值)1包含原文的符合PKCS7格
41、式的數(shù)據(jù)出參說明無返回值TRUE:成功FALSE:失敗說明目前的用法是:當驗證純簽名值時,需要輸入簽名算法或者通過策略解析器獲取匹配算法;當驗證PKCS7格式的簽名容時,由于本身自帶了簽名算法,因此沒有必要再次調(diào)用相應(yīng)的策略解析器了。GenRandom功能簡介生成一定長度的隨機數(shù)/對稱密鑰。接口名稱BSTR GenRandom(int len);參數(shù)說明入?yún)⒄f明lenIN:指定的長度(字節(jié)數(shù))。出參說明無返回值輸出已編碼的隨機數(shù)/對稱密鑰。HashData功能簡介對輸入數(shù)據(jù)進行哈希運算。接口名稱BSTR HashData( int hashAlgo,BSTR inData );參數(shù)說明入?yún)⒄f明
42、hashAlgoIN: 哈希算法標識 ALGO_SHA1 32772 ALGO_MD5 32771inDataIN: 輸入數(shù)據(jù)信息,如是二進制數(shù)據(jù)則已編碼。出參說明無返回值返回編碼后的哈希值。SymmEncrypt功能簡介用指定產(chǎn)生的對稱密鑰KEY來加密數(shù)據(jù)。接口名稱BSTR SymmEncrypt(long i_symmAlgo,BSTR i_symmkey,BSTR i_indata);參數(shù)說明入?yún)⒄f明i_symmAlgoIN:對稱算法標識。 例如: CALG_RC4 = 26625CALG_3DES = 26115CALG_33 = 9i_symmKeyIN:對稱密鑰,已編碼。i_inD
43、ataIN: 輸入的原文,二進制數(shù)據(jù)流先編碼。出參說明無返回值輸出已編碼后的密文。SymmDecrypt功能簡介用指定產(chǎn)生的對稱密鑰KEY來解密密文數(shù)據(jù)。接口名稱BSTR SymmDecrypt(long i_symmAlgo,BSTR i_symmkey,BSTR i_indata);參數(shù)說明入?yún)⒄f明i_symmAlgoIN:對稱算法標識。 例如: CALG_RC4 = 26625CALG_3DES = 26115CALG_33 = 9i_symmKeyIN:對稱密鑰,已編碼。i_inDataIN:輸入的密文,已編碼。出參說明無返回值輸出解密后的原文,如是二進制數(shù)據(jù)則已編碼。GetCertF
44、romLDAP功能簡介從LDAP服務(wù)器查詢和獲取用戶證書。接口名稱BSTR GetCertFromLDAP(long i_searchType, long i_certType, BSTR i_searchValue);參數(shù)說明入?yún)⒄f明i_searchTypeIN:查找類型取值圍為 1 按用戶ID查詢 2 按用戶地址查詢 3 按證書ID查詢i_certTypeIN: 證書類型取值圍為 1 加密證書 2 簽名證書此參數(shù)對于按證書ID查詢無效i_searchValueIN:查詢字符串信息當searchType取值為1時,此參數(shù)為用戶ID字符串當searchType取值為2時,此參數(shù)為用戶字符串當s
45、earchType取值為3時,此參數(shù)為證書ID字符串出參說明無返回值輸出已編碼后的證書信息。GetAndSaveCRL功能簡介從LDAP服務(wù)器獲取CRL列表信息,并保存在本地。寫入的文件路徑在注冊表中指定。HKEY_LOCAL_MACHINESOFTWAREwellhopesettingCRLSettingCRLData=C:WINNTSystem32CRLDATA.crl接口名稱BOOL GetAndSaveCRL();參數(shù)說明入?yún)⒄f明無出參說明無返回值TRUE:成功FALSE:失敗ReadFromFile功能簡介從本地讀取文件容。接口名稱BSTR ReadFromFile(BSTR fil
46、eName);參數(shù)說明入?yún)⒄f明fileNameIN: 要讀取的文件全路徑名。如果為”空,則彈出文件選擇對話框。出參說明無返回值輸出已編碼過的文件數(shù)據(jù)信息WriteToFile功能簡介將數(shù)據(jù)寫入到本地文件。接口名稱BOOL WriteToFile(BSTR fileNameBSTR writeData);參數(shù)說明入?yún)⒄f明fileNameIN: 要保存的文件名稱writeDataIN: 要寫入文件的數(shù)據(jù),已編碼。出參說明無返回值TRUE:成功FALSE:失敗GetStamp功能簡介對輸入數(shù)據(jù)加蓋時間戳。接口名稱BSTR GetStamp(BSTR inData);參數(shù)說明入?yún)⒄f明inDataIN:
47、 要加蓋時間戳的數(shù)據(jù),如是二進制數(shù)據(jù)則已編碼。出參說明無返回值返回已編碼的蓋戳數(shù)據(jù)。VerifyStamp功能簡介驗證時間戳,如果成功返回蓋戳?xí)r間。接口名稱BSTR VerifyStamp(BSTR inData,BSTR inStampData)參數(shù)說明入?yún)⒄f明inDataIN: 加蓋時間戳的原文數(shù)據(jù),如是二進制數(shù)據(jù)則已編碼。inStampDataIN: 時間戳簽名數(shù)據(jù)出參說明無返回值返回蓋戳?xí)r間字符串。日期格式:03 09 02 17 27 30 年 月 日時 分 秒GetAlgoFromPA功能簡介通過策略解析器從PA獲取通信雙方相應(yīng)的策略證書,并加以匹配,確定通信過程中使用的具體算法。
48、接口名稱long GetAlgoFromPA(BSTR ownerCert,BSTR otherCert,int algoKind,int priorityKind);參數(shù)說明入?yún)⒄f明ownerCertIN:自己的證書otherCertIN:對方的證書algoKindIN:要獲取的密碼算法的種類表示非對稱算法表示對稱算法表示摘要算法今后可以擴充priorityKindIN:通信雙方所屬機構(gòu)在通信中算法集匹配時的優(yōu)先級別0對方優(yōu)先級高0優(yōu)先級相等0自已優(yōu)先級高出參說明無返回值具體算法對應(yīng)的值9表示CALG_3326625表示CALG_RC426115表示CALG_3DES32772表示ALGO_
49、SHA1 32771表示ALGO_MD5 100表示ALGO_RSA101表示ALGO_ECC0表示沒有匹配的算法,無法進行相應(yīng)的通信Base64Encode功能簡介對輸入數(shù)據(jù)進行編碼接口名稱BSTR Base64Encode(BSTR inData)參數(shù)說明入?yún)⒄f明inData IN:要編碼的數(shù)據(jù)出參說明無返回值返回編碼值Base64Decode功能簡介對輸入數(shù)據(jù)進行解碼。接口名稱BSTR Base64Decode(BSTR inData)參數(shù)說明入?yún)⒄f明inData IN:要解碼的數(shù)據(jù)出參說明無返回值返回解碼后的原文GetParamValue功能簡介從配置文件(C:ConfigClient
50、.conf)中獲取相關(guān)配置信息。接口名稱BSTR GetParamValue(BSTR paramKey);參數(shù)說明入?yún)⒄f明paramKeyIN:要查找的鍵名出參說明無返回值返回相應(yīng)鍵的鍵值服務(wù)端描述4.2.1 APP應(yīng)用服務(wù)器端JAVA接口4.2.1.1 release功能簡介進行開發(fā)包函數(shù)庫調(diào)用完畢后部存儲區(qū)的清除工作。接口名稱boolean release();參數(shù)說明入?yún)⒄f明無出參說明無返回值成功:true失?。篺alse4.2.1.2GetCurStatus功能簡介得到當前狀態(tài)代碼。接口名稱int GetCurStatus();參數(shù)說明入?yún)⒄f明無出參說明無返回值返回當前狀態(tài)代碼。4.
51、2.1.3AdvBase64Encode功能簡介對二進制數(shù)據(jù)進行BASE64編碼。接口名稱String AdvBase64Encode(byte i_inData);參數(shù)說明入?yún)⒄f明i_inDataIN: 要編碼的二進制數(shù)據(jù)出參說明無返回值輸出已編碼的數(shù)據(jù)。4.2.1.4 AdvBase64Decode功能簡介對BASE64編碼數(shù)據(jù)解碼。接口名稱byte AdvBase64Decode(String i_inData);參數(shù)說明入?yún)⒄f明i_inDataIN:要解碼的BASE64編碼數(shù)據(jù)出參說明無返回值輸出解碼后的二進制數(shù)據(jù)。4.2.1.5AdvGetCert功能簡介根據(jù)證書標簽和證書類型讀取服
52、務(wù)器證書。證書標簽寫在配置文件中,見前面Client.conf配置文件。接口名稱String AdvGetCert(int certType);參數(shù)說明入?yún)⒄f明certTypeIN:證書類型 1 加密證書 2 簽名證書出參說明無返回值返回編碼后的證書信息。4.2.1.6AdvCheckCert功能簡介驗證證書的有效性。在驗證過程過本地CRL列表進行證書的驗證。接口名稱boolean AdvCheckCert(String i_inCert);參數(shù)說明入?yún)⒄f明i_inCertIN:待驗證的證書,已編碼。出參說明無返回值成功:true失?。篺alse4.2.1.7AdvGetCertInfo功能簡
53、介解析證書信息,并以XML字符串格式返回接口名稱StringAdvGetCertInfo(String i_inCert);參數(shù)說明入?yún)⒄f明i_inCertIN:待解析的證書,已編碼。出參說明無返回值返回采用XML標準結(jié)構(gòu)的證書信息。舉例30042SHA1RSACNShanghaiZhangjiangShanghai wellhope E-Bussiness Certificate AuthorityWELLHOPE自然人CA2003年08月21日2004年08月21日CNShanghaiZhangjiangwellhopeinfosecuser5100f34d52b7fb481752a506
54、905e5b8a0698994dc3104fc8f7d1180912c6087dee594225d4ba1946dfad58598859d3501e59fc9cbd86b50c79b2ce09630fed4896651b54c37ae98855545c1434f9f4a15e3a15e9b09997b03af16c7465f816bfe2b1a49821a0090e283f82ebf2ed7daa2e76a5ada469a14e78108dde58ac13b826fb02030100014.2.1.8AdvSealEnvelope功能簡介數(shù)字信封加密。部的處理過程是首先隨機生成一對稱密鑰(由入
55、口參數(shù)指定其算法或者通過PA確定),然后用此對稱密鑰加密輸入的數(shù)據(jù),最后用公鑰加密產(chǎn)生的此對稱密鑰。這是我們推薦的一種對數(shù)據(jù)進行加密的方法,因為它不僅保證了加密的高效性(對稱密鑰的快速加密),還保證了加密的高強度性(公鑰的強加密)。此函數(shù)的加密輸出結(jié)果遵循PKCS#7的編碼標準(EnvelopedData)。接口名稱String AdvSealEnvelope(String i_encCert, int i_symmAlgo,byte i_inData);參數(shù)說明入?yún)⒄f明i_encCertIN:用于加密的數(shù)字證書,已編過碼。i_symmAlgoIN:信封中所用對稱算法標識。CALG_RC4 =
56、 26625CALG_3DES = 26115CALG_33 = 9viaPA = 0,說明加密過程首先將連接到PA(策略中心)獲取相應(yīng)的參數(shù)進行后續(xù)的工作i_inDataIN:輸入原文信息。出參說明無返回值輸出的已編碼的密文結(jié)果。4.2.1.9 AdvSealEnvelopeEx功能簡介用多證書批量生成數(shù)字信封。此函數(shù)的加密輸出結(jié)果遵循PKCS#7的編碼標準(EnvelopedData)。接口名稱String AdvSealEnvelopeEx(String i_encCert,int i_certnum,int i_symmAlgo,byte i_inData);參數(shù)說明入?yún)⒄f明i_enc
57、CertIN:用于加密的數(shù)字證書,已編過碼,多個證書間以“”隔開。i_certnumIN: 生成信封的證書數(shù)目i_symmAlgoIN:信封中所用對稱算法標識。CALG_RC4 = 26625CALG_3DES = 26115CALG_33 = 9viaPA = 0,說明加密過程首先將連接到PA(策略中心)獲取相應(yīng)的參數(shù)進行后續(xù)的工作i_inDataIN:輸入原文信息。出參說明無返回值輸出的已編碼的密文結(jié)果。4.2.1.10 AdvOpenEnvelope功能簡介對數(shù)字信封進行解密工作,即拆封工作。私鑰標簽在配置文件中定義。接口名稱byte AdvOpenEnvelope(String key
58、Passwd,String i_inData);參數(shù)說明入?yún)⒄f明keyPasswdIN: 解密私鑰的保護口令。i_inDataIN:輸入已編碼的信封數(shù)據(jù)。出參說明無返回值輸出原文信息。4.2.1.11 AdvSignData功能簡介對輸入數(shù)據(jù)進行數(shù)字簽名。私鑰標簽在配置文件中定義。 接口名稱String AdvSignData(String keyPasswd,byte i_inData,int i_algoType,int i_signType);參數(shù)說明入?yún)⒄f明keyPasswdIN:簽名私鑰的保護口令。i_inDataIN:輸入的待簽名數(shù)據(jù)。i_algoTypeIN:簽名算法取值如:32
59、772 sha1RSA32771 md5RSAsha1RSA、md5RSA說明簽名采用的是何種摘要算法簽名算法i_signTypeIN:簽名值類型取值:0不包含原文的純簽名 1包含原文的符合PKCS7格式的數(shù)據(jù)出參說明無返回值輸出的已編碼的簽名數(shù)據(jù)。4.2.1.12 AdvSignDataEx功能簡介對輸入數(shù)據(jù)進行數(shù)字簽名。私鑰標簽在配置文件中定義。接口名稱String AdvSignDataEx(String i_sigCert,String keyPasswd,byte i_inData,int i_algoType,int i_signType);參數(shù)說明入?yún)⒄f明i_sigCertIN:
60、通信對方的證書,當需要通過PA獲取簽名算法時需輸入keyPasswdIN:私鑰保護口令。i_inDataIN:輸入的待簽名數(shù)據(jù),二進制數(shù)據(jù)需要做編碼處理。i_algoTypeIN:簽名算法取值如:32772 sha1RSA32771 md5RSA0 viaPA等sha1RSA、md5RSA說明簽名采用的是何種摘要算法簽名算法viaPA = 0,說明簽名過程首先將連接到PA(策略中心)獲取相應(yīng)的參數(shù)進行后續(xù)的工作i_signTypeIN:簽名值類型取值:0不包含原文的純簽名 1包含原文的符合PKCS7格式的數(shù)據(jù)出參說明無返回值輸出的已編碼的簽名數(shù)據(jù)。4.2.1.13 AdvVerifySign功
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年光伏發(fā)電系統(tǒng)設(shè)計基礎(chǔ)能力考試題及答案
- 2025年廣告學(xué)專業(yè)畢業(yè)論文答辯試題及答案
- 2025年甘肅省武威市民勤縣夾河鎮(zhèn)選聘專業(yè)化管理村文書筆試備考題庫及答案詳解1套
- 牲畜耳標使用管理制度
- 特殊場所防疫管理制度
- 特殊設(shè)備檢修管理制度
- 特種設(shè)備缺陷管理制度
- 特色活動開展管理制度
- 犬舍設(shè)施設(shè)備管理制度
- 玉林高中宿舍管理制度
- 易罐療法及其作用
- 過敏性皮炎大查房課件
- 老年健康與老年服務(wù)名詞術(shù)語
- 2023年秋季國家開放大學(xué)-02154-數(shù)據(jù)庫應(yīng)用技術(shù)期末考試題帶答案
- 山東省德州市寧津縣房地產(chǎn)市場報告
- 中華護理學(xué)會精神科??谱o士理論考試試題
- 新能源電動汽車操作安全
- 中職生職業(yè)生涯規(guī)劃課件PPT
- 《和諧與夢想》作業(yè)設(shè)計
- 北京英文介紹課件
- 消防維保協(xié)議書
評論
0/150
提交評論