安全中間件二次開發手冊范本_第1頁
安全中間件二次開發手冊范本_第2頁
安全中間件二次開發手冊范本_第3頁
安全中間件二次開發手冊范本_第4頁
安全中間件二次開發手冊范本_第5頁
已閱讀5頁,還剩43頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、 . . 2/48安全中間件二次開發手冊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術語和縮寫詞 PAGEREF _Toc125527866 h 5HYPERLINK l _Toc1255278671.4遵循標準 PAGEREF _Toc125527867 h 5HYPERLINK l _Toc1255278682系統概述 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運行環境 PAGEREF _Toc125527874 h 10HYPERLINK l _Toc1255278753.1硬件系統 PAGEREF _Toc125527875 h 10HYPERLINK l _Toc1255278763.2支撐軟件 PAGEREF _Toc

4、125527876 h 10HYPERLINK l _Toc1255278774開發說明 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服務端描述 PAGEREF _Toc125527909 h 25HYPERLINK l _Toc1255279104.2.1 APP應用服務器端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應用開發實例 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引言編寫目的該文檔主要規了PKI安全中間件的功能接口定義。在整個PKI體系中,安全中間件的作用非常關鍵,它通過調用底層的WHCSP與證書管理器等,封裝了一系列PKI應用接口,滿足上層PKI

20、具體應用的需要。本標準適用于PKI上層應用的需求,主要為CA系統。適用對象為所有采用安全中間件的系統開發人員。項目背景高級密碼服務,顧名思義,是為用戶提供相對高級和抽象的密碼服務,而不是像底層的CSP和硬件加密算法那樣,提供比較低級和具體的密碼服務。一般來說,高級的密碼服務應該能夠讓不懂加密、解密和簽名、驗簽等概念的用戶也能夠透明的使用,也就是說把密碼學算法的細節給屏蔽掉了。術語和縮寫詞縮寫、術語解 釋PKI公鑰基礎設施(Public Key Infrastructure)CSPCryptographic Service Provider(密碼服務提供者)CRL證書撤消列表( Certific

21、ate Revocation List )一個標記一系列不再被證書發布者所信任的證書的簽名列表(通稱黑)。LDAP目錄查詢協議( Lightweight Directory Access Protocol )本設計指輕型目錄訪問協議LDAP。用戶可使用LDAP協議,通過網絡到目錄服務器查詢系統中的證書或證書撤消列表。OCSP在線證書狀態查詢協議(Online Certificate Status Protocol)用戶可使用OCSP協議,通過網絡到OCSP服務器實時查詢系統中證書的當前有效/無效狀態。遵循標準列出參考資料,如:RFC 2459 PKIX PKIX證書和CRL概要IETF: PK

22、IX證書策略和證書實踐框架IETF:RFC 2510: CMP(證書管理協議)RFC 2797: CMC(CMS上的證書管理消息)RFC 2511: CRMF(證書請求消息格式) X.208 抽象語法符號1 描述(ASN.1) X.209 抽象語法符號1 基本編碼規說明(ASN.1) X.680 信息技術抽象語法符號1 (ASN.1)基本符號規X.681 信息技術抽象語法符號1 (ASN.1)信息目標規X.682 信息技術抽象語法符號1 (ASN.1)強制規X.690 信息技術ASN.1 編碼規則基本編碼規則(BER), 規編碼規則(CER)和主要編碼規則(DER) X.509v4 信息技術開

23、放式系統互連目錄:公鑰和屬性證書框架X.500 開放式系統互連目錄:概念,模型和服務概述LDAP 輕目錄訪問協議:由ISO于1997年12月發布。PKCS#1 (v1.5) RSA密碼算法PKCS#5 (v2.0) 基于口令的密碼標準PKCS#6 (v1.5)擴展的數字證書語法標準PKCS#7 (v1.5) 密文消息語法標準PKCS#8 (v1.5) 私鑰信息語法標準PKCS#9 (v2.0)可選擇的屬性類型PKCS#10 (v1.5)數字證書申請語法標準PKCS#11硬件密碼設備接口標準PKCS#12 (v1.0)個人信息交換語法PKCS#15 (v1.1)多個應用訪問標準X.509 開放式

24、系統互連目錄:公鑰和授權證書框架ITU-T X.500 開放式系統互連目錄:概念,模型和服務概述CORBA(公共對象請求代理體系結構)v2.4系統概述在PKI體系結構中見上圖,安全中間件總攬了證書管理器和CSP的所有功能。它在PC端和PKI服務器端都是直接面向最終用戶的調用接口,因此,它必須能夠屏蔽掉PC端和PKI服務器端的不同情況。安全中間件是為用戶提供相對高級和抽象的密碼服務,而不是像底層的CSP和硬件加密算法那樣,提供比較低級和具體的密碼服務。一般來說,安全中間件服務應該能夠讓不懂加密、解密和簽名、驗簽等概念的用戶也能夠透明的使用,也就是說把密碼學算法的細節給屏蔽掉了。功能抽象的算法服務

25、對指定的明文進行加密的功能,包括口令加密、對稱密鑰加密和公開密鑰加密。對指定的密文進行解密的功能,包括對稱密鑰解密和公開密鑰解密。對指定的明文進行簽名的功能。對指定的簽名進行驗簽的功能封裝PKCS7數字信封解開PKCS7數字信封對明文進行散列。產生隨機數。抽象的證書服務根據標簽得到證書驗證證書的有效性生成PKCS10格式的證書請求文件輸入綁定的證書和私鑰。私鑰和口令保護服務檢查私鑰口令更改私鑰口令檢查PIN更改PIN編碼服務ASE64的編碼功能BASE64的解碼功能性能精度TSP響應時間1s;OCSP響應時間1s;LDAP服務單元響應速度0.5s時間特性客戶端RSA簽名2次/秒驗簽5次/秒服務

26、器端RSA簽名20次/秒驗簽100次/秒靈活性可以靈活支持多種硬件介質和硬件加密卡;可以提供C/C+、Java、C#等應用接口;一套軟件結構可以同時為CA和應用提供服務;可以支持33算法、RC4算法、DES/3DES算法;運行環境硬件系統適用于各種PC兼容機、服務器、小型機等等支撐軟件WINDOWS 2000,WindowsXP,LINUX(RedHat9.0與Advanced Server2.1)開發說明描述系統為二次開發工作提供的接口、約束等。安全中間件分為客戶端和服務端2部分,安全中間件客戶端主要的功能是在客戶端通過對硬件存儲介質的操作完成一些密碼運算。服務端主要是通過調用密碼服務器為應

27、用服務提供所需的密碼服務。客戶端和服務端產的數據格式都采用國際同意標準。服務端可以運算客戶端產生的數據,客戶端也可以運算服務端產生的數據。主要用的功能為客戶端進行簽名、加密,服務端驗簽、解密或服務端簽名、加密,客戶端驗簽、解密。客戶端與服務端的數據傳輸可以由應用開發靈活處理,但要保證在傳輸前后數據的格式不發生變化。通過安全中間件提供的抽象密碼服務,為應用開發提供性,完整性,不可抵賴性方面的支持。完成身份認證,電子印章,責任認定,密文傳輸等應用服務。客戶端描述客戶端主要設備是硬件存儲介質E-Key,E-Key做為數字證書的存儲設備主要存儲用戶的簽名私鑰,加密私鑰,簽名證書,加密證書。通過調用客戶

28、端控件可以使用E-Key完成簽名,加密等密碼服務。4.1.1APP客戶端控件接口說明AtvInit功能簡介控件初始化。讀取客戶端證書載體信息與其它初始化工作。調用一些主要功能接口前必須先調用本接口。接口名稱int AtvInit()參數說明入參說明無出參說明無返回值成功,則返回0失敗,則返回錯誤號,錯誤號小于0AtvEnd功能簡介進行開發包函數庫調用完畢后部存儲區的清除工作。接口名稱int AtvEnd();參數說明入參說明無出參說明無返回值成功,則返回0失敗,則返回錯誤號,小于0SetHardWare功能簡介設置客戶端硬件設備類型。接口名稱BOOL SetHardWare(long hard

29、wareType);參數說明入參說明hardwareTypeIN:客戶端硬件設備類型目前支持:1軟件摸擬實現2加密卡實現3SIM卡實現4 EKEY實現出參說明無返回值成功,則返回TRUE失敗,則返回FALSELogin功能簡介登錄客戶端硬件設備。接口名稱BOOL Login(int loginType, BSTR loginPin);參數說明入參說明loginTypeIN:用戶登陸類型,此處用戶請輸入1loginPinIN:用戶登陸PIN碼出參說明無返回值成功,則返回TRUE失敗,則返回FALSE說明調用本接口時,如果loginPin輸入為”空,則會彈出輸入口令對話框;如果不為空,則不會彈出,

30、只返回登錄是否成功。ChangeLoginPin功能簡介修改客戶端用戶登陸PIN碼。接口名稱BOOL ChangeLoginPin(BSTR keyLabel,BSTR oldPasswd,BSTR newPasswd);參數說明入參說明keyLabelIN: 私鑰標簽,此處請傳入“wellhope”oldPasswdIN: 舊的用戶登陸口令newPasswdIN:新的用戶登陸口令 出參說明無返回值成功,則返回TRUE失敗,則返回FALSELogout功能簡介退出客戶端硬件登錄。接口名稱BOOL Logout();參數說明入參說明無出參說明無返回值成功,則返回TRUE失敗,則返回FALSEGe

31、tCert功能簡介根據證書標簽和證書類型讀取客戶端用戶證書。證書標簽寫在配置文件中,見前面Client.conf配置文件。接口名稱BSTR GetCert(int certType);參數說明入參說明certTypeIN:證書類型 1 加密證書 2 簽名證書出參說明無返回值返回編碼后的證書信息。CheckCert功能簡介驗證證書的有效性。在驗證過程中會連接到OCSP服務器上進行證書的驗證。接口名稱BOOL CheckCert(BSTR i_inCert);參數說明入參說明i_inCertIN:待驗證的證書,已編碼。出參說明無返回值成功,則返回TRUE失敗,則返回FALSEGetCertInfo

32、功能簡介解析證書信息,并以XML字符串格式返回接口名稱BSTR GetCertInfo(BSTR i_inCert);參數說明入參說明i_inCertIN:待解析的證書,已編碼。出參說明無返回值返回采用XML標準結構的證書信息。舉例30042SHA1RSACNShanghaiZhangjiangShanghai wellhope E-Bussiness Certificate AuthorityWELLHOPE自然人CA2003年08月21日2004年08月21日CNShanghaiZhangjiangwellhopeinfosecuser5100f34d52b7fb481752a506905

33、e5b8a0698994dc3104fc8f7d1180912c6087dee594225d4ba1946dfad58598859d3501e59fc9cbd86b50c79b2ce09630fed4896651b54c37ae98855545c1434f9f4a15e3a15e9b09997b03af16c7465f816bfe2b1a49821a0090e283f82ebf2ed7daa2e76a5ada469a14e78108dde58ac13b826fb0203010001SealEnvelope功能簡介數字信封加密。部的處理過程是首先隨機生成一對稱密鑰(由入口參數指定其算法或者通過P

34、A確定),然后用此對稱密鑰加密輸入的數據,最后用公鑰加密產生的此對稱密鑰。這是我們推薦的一種對數據進行加密的方法,因為它不僅保證了加密的高效性(對稱密鑰的快速加密),還保證了加密的高強度性(公鑰的強加密)。此函數的加密輸出結果遵循PKCS#7的編碼標準(EnvelopedData)。接口名稱BSTR SealEnvelope( BSTR i_encCert,long i_symmAlgo,BSTR i_inData);參數說明入參說明i_encCertIN: 用于加密的數字證書,已編過碼。i_symmAlgoIN:信封中所用對稱算法標識。取值如下: CALG_RC4 = 26625CALG_3

35、DES = 26115CALG_33 = 9viaPA = 0,說明加密過程首先將連接到PA(策略中心)獲取相應的參數進行后續的工作i_inDataIN:輸入原文信息,如是二進制數據則已編過碼。出參說明無返回值輸出的已編碼的密文結果。SealEnvelopeEx功能簡介用多證書批量生成數字信封。此函數的加密輸出結果遵循PKCS#7的編碼標準(EnvelopedData)。接口名稱BSTR SealEnvelopeEx(BSTR i_encCert, long i_certsize, long i_symmAlgo,BSTR i_inData);參數說明入參說明i_encCertIN:用于加密的

36、數字證書,已編過碼,多個證書間以“”隔開。i_certsizeIN: 保留參數i_symmAlgoIN:信封中所用對稱算法標識。CALG_RC4 = 26625CALG_3DES = 26115CALG_33 = 9viaPA = 0,說明加密過程首先將連接到PA(策略中心)獲取相應的參數進行后續的工作i_inDataIN:輸入原文信息,如是二進制數據則已編過碼。出參說明無返回值輸出的已編碼的密文結果。OpenEnvelope功能簡介解析數字信封私鑰標簽在配置文件中定義,運行時彈出輸入框提示用戶輸入私鑰保護口令。接口名稱BSTR OpenEnvelope(BSTR i_inData);參數說明

37、入參說明i_inDataIN:輸入已編碼的信封數據。出參說明無返回值輸出原文信息, 如是二進制數據則已編過碼。SignData功能簡介對輸入數據進行數字簽名。私鑰標簽在配置文件中定義,運行時彈出輸入框提示用戶輸入私鑰保護口令。接口名稱BSTR SignData(BSTR i_inData,int i_algoType,int i_signType);參數說明入參說明i_inDataIN:輸入的待簽名數據,二進制數據需要做編碼處理。i_algoTypeIN:簽名算法取值如:32772 sha1RSA32771 md5RSAsha1RSA、md5RSA說明簽名采用的是何種摘要算法簽名算法i_sig

38、nTypeIN:簽名值類型取值:0不包含原文的純簽名 1包含原文的PKCS7格式數據出參說明無返回值輸出的已編碼的簽名數據。SignDataEx功能簡介對輸入數據進行數字簽名。私鑰標簽在配置文件中定義,運行時彈出輸入框提示用戶輸入私鑰保護口令。接口名稱BSTR SignData(BSTR i_sigCert,BSTR i_inData,int i_algoType,int i_signType);參數說明入參說明i_sigCertIN:通信對方的證書,當需要通過PA獲取簽名算法時需輸入i_inDataIN:輸入的待簽名數據,二進制數據需要做編碼處理。i_algoTypeIN:簽名算法取值如:3

39、2772 sha1RSA32771 md5RSA0 viaPA等sha1RSA、md5RSA說明簽名采用的是何種摘要算法簽名算法viaPA = 0,說明簽名過程首先將連接到PA(策略中心)獲取相應的參數進行后續的工作i_signTypeIN:簽名值類型取值:0不包含原文的純簽名 1包含原文的符合PKCS7格式的數據出參說明無返回值輸出的已編碼的簽名數據。VerifySign功能簡介對輸入數據進行數字簽名的驗證接口名稱BOOL VerifySign( BSTR i_checkCert, BSTR i_clearText,BSTR i_signature,int i_algoType,int i_

40、signType);參數說明入參說明i_checkCert IN:驗證所用的證書。i_clearText IN:簽名的原文。如簽名值包含原文,置空即可。i_signature IN:待驗證的簽名數據。i_algoTypeIN:簽名算法。如簽名值不符合PKCS7標準,需要輸入簽名算法。取值如:32772 sha1RSA32771 md5RSA0 viaPA等sha1RSA、md5RSA說明簽名采用的是何種摘要算法簽名算法viaPA參數說明簽名過程將連接到PA(策略中心)獲取相應的簽名參數進行后續的工作。i_signTypeIN:簽名值類型取值:0不包含原文(純簽名值)1包含原文的符合PKCS7格

41、式的數據出參說明無返回值TRUE:成功FALSE:失敗說明目前的用法是:當驗證純簽名值時,需要輸入簽名算法或者通過策略解析器獲取匹配算法;當驗證PKCS7格式的簽名容時,由于本身自帶了簽名算法,因此沒有必要再次調用相應的策略解析器了。GenRandom功能簡介生成一定長度的隨機數/對稱密鑰。接口名稱BSTR GenRandom(int len);參數說明入參說明lenIN:指定的長度(字節數)。出參說明無返回值輸出已編碼的隨機數/對稱密鑰。HashData功能簡介對輸入數據進行哈希運算。接口名稱BSTR HashData( int hashAlgo,BSTR inData );參數說明入參說明

42、hashAlgoIN: 哈希算法標識 ALGO_SHA1 32772 ALGO_MD5 32771inDataIN: 輸入數據信息,如是二進制數據則已編碼。出參說明無返回值返回編碼后的哈希值。SymmEncrypt功能簡介用指定產生的對稱密鑰KEY來加密數據。接口名稱BSTR SymmEncrypt(long i_symmAlgo,BSTR i_symmkey,BSTR i_indata);參數說明入參說明i_symmAlgoIN:對稱算法標識。 例如: CALG_RC4 = 26625CALG_3DES = 26115CALG_33 = 9i_symmKeyIN:對稱密鑰,已編碼。i_inD

43、ataIN: 輸入的原文,二進制數據流先編碼。出參說明無返回值輸出已編碼后的密文。SymmDecrypt功能簡介用指定產生的對稱密鑰KEY來解密密文數據。接口名稱BSTR SymmDecrypt(long i_symmAlgo,BSTR i_symmkey,BSTR i_indata);參數說明入參說明i_symmAlgoIN:對稱算法標識。 例如: CALG_RC4 = 26625CALG_3DES = 26115CALG_33 = 9i_symmKeyIN:對稱密鑰,已編碼。i_inDataIN:輸入的密文,已編碼。出參說明無返回值輸出解密后的原文,如是二進制數據則已編碼。GetCertF

44、romLDAP功能簡介從LDAP服務器查詢和獲取用戶證書。接口名稱BSTR GetCertFromLDAP(long i_searchType, long i_certType, BSTR i_searchValue);參數說明入參說明i_searchTypeIN:查找類型取值圍為 1 按用戶ID查詢 2 按用戶地址查詢 3 按證書ID查詢i_certTypeIN: 證書類型取值圍為 1 加密證書 2 簽名證書此參數對于按證書ID查詢無效i_searchValueIN:查詢字符串信息當searchType取值為1時,此參數為用戶ID字符串當searchType取值為2時,此參數為用戶字符串當s

45、earchType取值為3時,此參數為證書ID字符串出參說明無返回值輸出已編碼后的證書信息。GetAndSaveCRL功能簡介從LDAP服務器獲取CRL列表信息,并保存在本地。寫入的文件路徑在注冊表中指定。HKEY_LOCAL_MACHINESOFTWAREwellhopesettingCRLSettingCRLData=C:WINNTSystem32CRLDATA.crl接口名稱BOOL GetAndSaveCRL();參數說明入參說明無出參說明無返回值TRUE:成功FALSE:失敗ReadFromFile功能簡介從本地讀取文件容。接口名稱BSTR ReadFromFile(BSTR fil

46、eName);參數說明入參說明fileNameIN: 要讀取的文件全路徑名。如果為”空,則彈出文件選擇對話框。出參說明無返回值輸出已編碼過的文件數據信息WriteToFile功能簡介將數據寫入到本地文件。接口名稱BOOL WriteToFile(BSTR fileNameBSTR writeData);參數說明入參說明fileNameIN: 要保存的文件名稱writeDataIN: 要寫入文件的數據,已編碼。出參說明無返回值TRUE:成功FALSE:失敗GetStamp功能簡介對輸入數據加蓋時間戳。接口名稱BSTR GetStamp(BSTR inData);參數說明入參說明inDataIN:

47、 要加蓋時間戳的數據,如是二進制數據則已編碼。出參說明無返回值返回已編碼的蓋戳數據。VerifyStamp功能簡介驗證時間戳,如果成功返回蓋戳時間。接口名稱BSTR VerifyStamp(BSTR inData,BSTR inStampData)參數說明入參說明inDataIN: 加蓋時間戳的原文數據,如是二進制數據則已編碼。inStampDataIN: 時間戳簽名數據出參說明無返回值返回蓋戳時間字符串。日期格式:03 09 02 17 27 30 年 月 日時 分 秒GetAlgoFromPA功能簡介通過策略解析器從PA獲取通信雙方相應的策略證書,并加以匹配,確定通信過程中使用的具體算法。

48、接口名稱long GetAlgoFromPA(BSTR ownerCert,BSTR otherCert,int algoKind,int priorityKind);參數說明入參說明ownerCertIN:自己的證書otherCertIN:對方的證書algoKindIN:要獲取的密碼算法的種類表示非對稱算法表示對稱算法表示摘要算法今后可以擴充priorityKindIN:通信雙方所屬機構在通信中算法集匹配時的優先級別0對方優先級高0優先級相等0自已優先級高出參說明無返回值具體算法對應的值9表示CALG_3326625表示CALG_RC426115表示CALG_3DES32772表示ALGO_

49、SHA1 32771表示ALGO_MD5 100表示ALGO_RSA101表示ALGO_ECC0表示沒有匹配的算法,無法進行相應的通信Base64Encode功能簡介對輸入數據進行編碼接口名稱BSTR Base64Encode(BSTR inData)參數說明入參說明inData IN:要編碼的數據出參說明無返回值返回編碼值Base64Decode功能簡介對輸入數據進行解碼。接口名稱BSTR Base64Decode(BSTR inData)參數說明入參說明inData IN:要解碼的數據出參說明無返回值返回解碼后的原文GetParamValue功能簡介從配置文件(C:ConfigClient

50、.conf)中獲取相關配置信息。接口名稱BSTR GetParamValue(BSTR paramKey);參數說明入參說明paramKeyIN:要查找的鍵名出參說明無返回值返回相應鍵的鍵值服務端描述4.2.1 APP應用服務器端JAVA接口4.2.1.1 release功能簡介進行開發包函數庫調用完畢后部存儲區的清除工作。接口名稱boolean release();參數說明入參說明無出參說明無返回值成功:true失敗:false4.2.1.2GetCurStatus功能簡介得到當前狀態代碼。接口名稱int GetCurStatus();參數說明入參說明無出參說明無返回值返回當前狀態代碼。4.

51、2.1.3AdvBase64Encode功能簡介對二進制數據進行BASE64編碼。接口名稱String AdvBase64Encode(byte i_inData);參數說明入參說明i_inDataIN: 要編碼的二進制數據出參說明無返回值輸出已編碼的數據。4.2.1.4 AdvBase64Decode功能簡介對BASE64編碼數據解碼。接口名稱byte AdvBase64Decode(String i_inData);參數說明入參說明i_inDataIN:要解碼的BASE64編碼數據出參說明無返回值輸出解碼后的二進制數據。4.2.1.5AdvGetCert功能簡介根據證書標簽和證書類型讀取服

52、務器證書。證書標簽寫在配置文件中,見前面Client.conf配置文件。接口名稱String AdvGetCert(int certType);參數說明入參說明certTypeIN:證書類型 1 加密證書 2 簽名證書出參說明無返回值返回編碼后的證書信息。4.2.1.6AdvCheckCert功能簡介驗證證書的有效性。在驗證過程過本地CRL列表進行證書的驗證。接口名稱boolean AdvCheckCert(String i_inCert);參數說明入參說明i_inCertIN:待驗證的證書,已編碼。出參說明無返回值成功:true失敗:false4.2.1.7AdvGetCertInfo功能簡

53、介解析證書信息,并以XML字符串格式返回接口名稱StringAdvGetCertInfo(String i_inCert);參數說明入參說明i_inCertIN:待解析的證書,已編碼。出參說明無返回值返回采用XML標準結構的證書信息。舉例30042SHA1RSACNShanghaiZhangjiangShanghai wellhope E-Bussiness Certificate AuthorityWELLHOPE自然人CA2003年08月21日2004年08月21日CNShanghaiZhangjiangwellhopeinfosecuser5100f34d52b7fb481752a506

54、905e5b8a0698994dc3104fc8f7d1180912c6087dee594225d4ba1946dfad58598859d3501e59fc9cbd86b50c79b2ce09630fed4896651b54c37ae98855545c1434f9f4a15e3a15e9b09997b03af16c7465f816bfe2b1a49821a0090e283f82ebf2ed7daa2e76a5ada469a14e78108dde58ac13b826fb02030100014.2.1.8AdvSealEnvelope功能簡介數字信封加密。部的處理過程是首先隨機生成一對稱密鑰(由入

55、口參數指定其算法或者通過PA確定),然后用此對稱密鑰加密輸入的數據,最后用公鑰加密產生的此對稱密鑰。這是我們推薦的一種對數據進行加密的方法,因為它不僅保證了加密的高效性(對稱密鑰的快速加密),還保證了加密的高強度性(公鑰的強加密)。此函數的加密輸出結果遵循PKCS#7的編碼標準(EnvelopedData)。接口名稱String AdvSealEnvelope(String i_encCert, int i_symmAlgo,byte i_inData);參數說明入參說明i_encCertIN:用于加密的數字證書,已編過碼。i_symmAlgoIN:信封中所用對稱算法標識。CALG_RC4 =

56、 26625CALG_3DES = 26115CALG_33 = 9viaPA = 0,說明加密過程首先將連接到PA(策略中心)獲取相應的參數進行后續的工作i_inDataIN:輸入原文信息。出參說明無返回值輸出的已編碼的密文結果。4.2.1.9 AdvSealEnvelopeEx功能簡介用多證書批量生成數字信封。此函數的加密輸出結果遵循PKCS#7的編碼標準(EnvelopedData)。接口名稱String AdvSealEnvelopeEx(String i_encCert,int i_certnum,int i_symmAlgo,byte i_inData);參數說明入參說明i_enc

57、CertIN:用于加密的數字證書,已編過碼,多個證書間以“”隔開。i_certnumIN: 生成信封的證書數目i_symmAlgoIN:信封中所用對稱算法標識。CALG_RC4 = 26625CALG_3DES = 26115CALG_33 = 9viaPA = 0,說明加密過程首先將連接到PA(策略中心)獲取相應的參數進行后續的工作i_inDataIN:輸入原文信息。出參說明無返回值輸出的已編碼的密文結果。4.2.1.10 AdvOpenEnvelope功能簡介對數字信封進行解密工作,即拆封工作。私鑰標簽在配置文件中定義。接口名稱byte AdvOpenEnvelope(String key

58、Passwd,String i_inData);參數說明入參說明keyPasswdIN: 解密私鑰的保護口令。i_inDataIN:輸入已編碼的信封數據。出參說明無返回值輸出原文信息。4.2.1.11 AdvSignData功能簡介對輸入數據進行數字簽名。私鑰標簽在配置文件中定義。 接口名稱String AdvSignData(String keyPasswd,byte i_inData,int i_algoType,int i_signType);參數說明入參說明keyPasswdIN:簽名私鑰的保護口令。i_inDataIN:輸入的待簽名數據。i_algoTypeIN:簽名算法取值如:32

59、772 sha1RSA32771 md5RSAsha1RSA、md5RSA說明簽名采用的是何種摘要算法簽名算法i_signTypeIN:簽名值類型取值:0不包含原文的純簽名 1包含原文的符合PKCS7格式的數據出參說明無返回值輸出的已編碼的簽名數據。4.2.1.12 AdvSignDataEx功能簡介對輸入數據進行數字簽名。私鑰標簽在配置文件中定義。接口名稱String AdvSignDataEx(String i_sigCert,String keyPasswd,byte i_inData,int i_algoType,int i_signType);參數說明入參說明i_sigCertIN:

60、通信對方的證書,當需要通過PA獲取簽名算法時需輸入keyPasswdIN:私鑰保護口令。i_inDataIN:輸入的待簽名數據,二進制數據需要做編碼處理。i_algoTypeIN:簽名算法取值如:32772 sha1RSA32771 md5RSA0 viaPA等sha1RSA、md5RSA說明簽名采用的是何種摘要算法簽名算法viaPA = 0,說明簽名過程首先將連接到PA(策略中心)獲取相應的參數進行后續的工作i_signTypeIN:簽名值類型取值:0不包含原文的純簽名 1包含原文的符合PKCS7格式的數據出參說明無返回值輸出的已編碼的簽名數據。4.2.1.13 AdvVerifySign功

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論