衛(wèi)生系統(tǒng)數(shù)字證書應(yīng)用集成規(guī)范.doc_第1頁
衛(wèi)生系統(tǒng)數(shù)字證書應(yīng)用集成規(guī)范.doc_第2頁
衛(wèi)生系統(tǒng)數(shù)字證書應(yīng)用集成規(guī)范.doc_第3頁
衛(wèi)生系統(tǒng)數(shù)字證書應(yīng)用集成規(guī)范.doc_第4頁
衛(wèi)生系統(tǒng)數(shù)字證書應(yīng)用集成規(guī)范.doc_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

衛(wèi)生部辦公廳2010年4月30日衛(wèi)生系統(tǒng)電子認(rèn)證服務(wù)體系系列規(guī)范-衛(wèi)生系統(tǒng)數(shù)字證書應(yīng)用集成規(guī)范(試行)目 錄1 范圍12 應(yīng)用集成目標(biāo)13 應(yīng)用集成要求14 應(yīng)用集成內(nèi)容15 統(tǒng)一證書應(yīng)用接口規(guī)范25.1 統(tǒng)一證書應(yīng)用接口概述25.2 證書應(yīng)用綜合服務(wù)接口概述25.3 證書應(yīng)用綜合服務(wù)接口客戶端接口函數(shù)定義45.4 證書應(yīng)用綜合服務(wù)接口服務(wù)器端COM組件函數(shù)定義95.5 證書應(yīng)用綜合服務(wù)接口服務(wù)器端JAVA組件函數(shù)定義175.6 證書應(yīng)用綜合服務(wù)接口相關(guān)代碼表26附錄A (資料性附錄) 證書應(yīng)用接口實(shí)施示例32附錄B (資料性附錄) 名詞解釋35II1 范圍本規(guī)范依據(jù)衛(wèi)生系統(tǒng)電子認(rèn)證服務(wù)管理辦法(試行),參照國家密碼管理局“公鑰密碼基礎(chǔ)設(shè)施應(yīng)用技術(shù)體系”系列技術(shù)規(guī)范,結(jié)合衛(wèi)生系統(tǒng)業(yè)務(wù)特點(diǎn),提出衛(wèi)生系統(tǒng)數(shù)字證書應(yīng)用集成目標(biāo)、集成要求、集成內(nèi)容,定義統(tǒng)一的證書應(yīng)用接口,并提供證書應(yīng)用接口的典型部署示例、登錄認(rèn)證流程示例和簽名驗(yàn)證流程示例。本規(guī)范用于指導(dǎo)并規(guī)范衛(wèi)生信息系統(tǒng)證書應(yīng)用集成實(shí)施工作,指導(dǎo)電子認(rèn)證服務(wù)機(jī)構(gòu)開發(fā)標(biāo)準(zhǔn)統(tǒng)一的證書應(yīng)用接口,規(guī)范衛(wèi)生信息系統(tǒng)實(shí)現(xiàn)基于數(shù)字證書的安全登錄、數(shù)字簽名和加密解密等安全功能。2 應(yīng)用集成目標(biāo)1) 在目前衛(wèi)生信息系統(tǒng)普遍使用的用戶名/口令認(rèn)證方式基礎(chǔ)上,引入數(shù)字證書技術(shù),建立基于數(shù)字證書的身份認(rèn)證機(jī)制,確保系統(tǒng)訪問控制的高安全性和高可靠性;2) 對衛(wèi)生信息系統(tǒng)的重要操作環(huán)節(jié)和重要數(shù)據(jù)實(shí)現(xiàn)基于數(shù)字證書的數(shù)字簽名功能,保護(hù)數(shù)據(jù)的完整性,并為后期糾紛處理及責(zé)任認(rèn)定提供合法電子證據(jù);3) 對衛(wèi)生信息系統(tǒng)的敏感信息實(shí)現(xiàn)基于數(shù)字證書的數(shù)據(jù)加密功能,確保敏感信息在傳輸和存儲階段的安全性。3 應(yīng)用集成要求在證書應(yīng)用集成時(shí),應(yīng)根據(jù)衛(wèi)生系統(tǒng)各應(yīng)用單位的業(yè)務(wù)特點(diǎn)和業(yè)務(wù)需求,確定需要改造的業(yè)務(wù)系統(tǒng)數(shù)量及名稱、確定需要使用證書認(rèn)證的用戶及范圍、確定需要加密簽名的重要操作環(huán)節(jié)和數(shù)據(jù),具體集成要求如下:1) 衛(wèi)生信息系統(tǒng)在集成數(shù)字證書的安全功能時(shí),首先應(yīng)實(shí)現(xiàn)基于數(shù)字證書的身份認(rèn)證功能;2) 對于具有操作行為責(zé)任認(rèn)定、證據(jù)保存需求的衛(wèi)生信息系統(tǒng),應(yīng)實(shí)現(xiàn)基于數(shù)字證書的數(shù)字簽名的功能;3) 對于具有數(shù)據(jù)加密和解密需求的衛(wèi)生信息系統(tǒng),應(yīng)實(shí)現(xiàn)基于數(shù)字證書的信息加密、信息解密功能;4) 對于具有可信時(shí)間需求的衛(wèi)生信息系統(tǒng),應(yīng)集成時(shí)間戳功能;5) 對于具有信息共享需求的多個(gè)應(yīng)用系統(tǒng),可采用統(tǒng)一的身份認(rèn)證模式,實(shí)現(xiàn)統(tǒng)一的身份認(rèn)證管理、用戶信息共享和單點(diǎn)登錄等功能。4 應(yīng)用集成內(nèi)容衛(wèi)生信息系統(tǒng)證書應(yīng)用集成內(nèi)容如下:1) 基于數(shù)字證書的身份認(rèn)證證書登錄認(rèn)證過程中,應(yīng)完成以下安全認(rèn)證工作:a) 證書保護(hù)口令校驗(yàn);b) 每次登錄認(rèn)證是基于隨機(jī)數(shù)的簽名和驗(yàn)證,防止重放攻擊;c) 驗(yàn)證用戶證書的信任鏈;d) 驗(yàn)證用戶證書有效期;e) 基于最新的黑名單文件,驗(yàn)證用戶證書是否被吊銷;f) 驗(yàn)證證書信息是否在信息系統(tǒng)具有對應(yīng)的用戶賬戶及操作權(quán)限。在證書應(yīng)用集成時(shí),同時(shí)應(yīng)實(shí)現(xiàn)用戶安裝和使用的方便性,如證書介質(zhì)的即插即用功能。2) 數(shù)字簽名和驗(yàn)證衛(wèi)生信息系統(tǒng)中關(guān)鍵業(yè)務(wù)數(shù)據(jù)和操作的數(shù)字簽名,應(yīng)滿足電子簽名法以及其他相關(guān)政策法規(guī)規(guī)定的書面形式、原件形式及文件保存等要求,至少應(yīng)包括數(shù)據(jù)原文、電子簽名、可信時(shí)間等內(nèi)容,并可在需要時(shí)查詢、閱讀、下載、驗(yàn)證,具備作為電子證據(jù)的真實(shí)性、可靠性和可驗(yàn)證性。數(shù)字簽名可以和圖章結(jié)合起來應(yīng)用,實(shí)現(xiàn)電子簽章功能,從而實(shí)現(xiàn)電子簽名的可視化管理,方便用戶查看、審閱和驗(yàn)證。3) 數(shù)據(jù)加密和解密數(shù)據(jù)加密時(shí)應(yīng)采用對稱算法和非對稱算法相結(jié)合的方式,既保障加密機(jī)制的安全性、密鑰分發(fā)的方便性,同時(shí)又提高了加解密操作的效率。根據(jù)業(yè)務(wù)需求,可使用單個(gè)數(shù)字證書加密,也可使用多個(gè)數(shù)字證書對數(shù)據(jù)共同加密,形成密文數(shù)據(jù)。密文數(shù)據(jù)應(yīng)安全存儲在數(shù)據(jù)庫或磁盤上,待解密時(shí)間達(dá)到后方可解密。數(shù)據(jù)解密時(shí),須使用數(shù)字證書對應(yīng)的密碼設(shè)備或證書介質(zhì)解密。如果證書介質(zhì)損壞或丟失,電子認(rèn)證服務(wù)機(jī)構(gòu)應(yīng)在安全可控的前提下,為用戶及時(shí)提供密鑰恢復(fù)服務(wù)。4) 時(shí)間戳應(yīng)用電子認(rèn)證服務(wù)機(jī)構(gòu)提供的時(shí)間戳服務(wù)應(yīng)基于可靠的標(biāo)準(zhǔn)時(shí)間源,確保時(shí)間的準(zhǔn)確和可信。5) 密碼設(shè)備應(yīng)用衛(wèi)生信息系統(tǒng)在使用數(shù)字證書安全功能時(shí),應(yīng)基于密碼設(shè)備提供的密碼服務(wù)。密碼設(shè)備包括客戶端用戶使用的證書介質(zhì)和服務(wù)器端使用的密碼設(shè)備??蛻舳俗C書介質(zhì)是指具有密碼許可資質(zhì)的USBKey、智能IC卡等PC終端上的密碼設(shè)備,以及符合國家密碼政策管理規(guī)定的SIM卡、SD卡等手機(jī)終端上的密碼設(shè)備。證書介質(zhì)應(yīng)用接口應(yīng)支持所有主流操作系統(tǒng),并符合智能IC卡及智能密碼鑰匙密碼應(yīng)用接口規(guī)范。服務(wù)器端密碼設(shè)備是指具有密碼許可資質(zhì)的加密機(jī)、加密卡等,應(yīng)支持所有主流操作系統(tǒng),并符合公鑰密碼基礎(chǔ)設(shè)施應(yīng)用技術(shù)體系 密碼設(shè)備應(yīng)用接口規(guī)范。通用密碼服務(wù)接口調(diào)用證書介質(zhì)應(yīng)用接口或密碼設(shè)備應(yīng)用接口,實(shí)現(xiàn)對底層密碼設(shè)備和證書介質(zhì)的調(diào)用,應(yīng)支持所有主流操作系統(tǒng),并符合公鑰密碼基礎(chǔ)設(shè)施應(yīng)用技術(shù)體系 通用密碼服務(wù)接口規(guī)范。5 統(tǒng)一證書應(yīng)用接口規(guī)范5.1 統(tǒng)一證書應(yīng)用接口概述統(tǒng)一證書應(yīng)用接口位于應(yīng)用系統(tǒng)和密碼設(shè)備之間,包括:證書介質(zhì)應(yīng)用接口、密碼設(shè)備應(yīng)用接口、通用密碼服務(wù)接口和證書應(yīng)用綜合服務(wù)接口。5.2 證書應(yīng)用綜合服務(wù)接口概述證書應(yīng)用綜合服務(wù)接口是供應(yīng)用系統(tǒng)直接調(diào)用的高級證書應(yīng)用接口,一般情況下分成客戶端接口和服務(wù)器端接口兩個(gè)模塊。客戶端接口是供應(yīng)用系統(tǒng)客戶端程序直接調(diào)用的高級接口,應(yīng)支持所有主流操作系統(tǒng)??蛻舳私涌趹?yīng)支持符合衛(wèi)生系統(tǒng)數(shù)字證書格式規(guī)范的數(shù)字證書,支持使用符合衛(wèi)生系統(tǒng)數(shù)字證書介質(zhì)技術(shù)規(guī)范的證書介質(zhì)??蛻舳私涌诳砂―LL動(dòng)態(tài)庫、ActiveX控件、Applet插件等多種產(chǎn)品形態(tài),支持B/S和C/S等架構(gòu)的應(yīng)用系統(tǒng)。客戶端接口包括以下主要函數(shù):1) 獲取接口的版本信息SOF_GetVersion 2) 設(shè)置簽名算法SOF_SetSignMethod3) 獲得當(dāng)前簽名算法SOF_GetSignMethod4) 設(shè)置加密算法SOF_SetEncryptMethod5) 獲得加密算法SOF_GetEncryptMethod6) 獲得證書列表SOF_GetUserList7) 導(dǎo)出用戶簽名證書SOF_ExportUserCert8) 校驗(yàn)證書口令 SOF_Login9) 修改證書口令 SOF_ChangePassWd10) 導(dǎo)出用戶加密證書SOF_ExportExChangeUserCert11) 獲得證書信息SOF_GetCertInfo12) 獲得證書擴(kuò)展信息SOF_GetCertInfoByOid13) 獲得用戶信息SOF_GetUserInfo14) 驗(yàn)證證書有效性SOF_ValidateCert15) 數(shù)據(jù)簽名SOF_SignData16) 驗(yàn)證簽名SOF_VerifySignedData17) 文件簽名SOF_SignFile18) 驗(yàn)證文件簽名SOF_VerifySignedFile19) 加密數(shù)據(jù)SOF_EncryptData20) 解密數(shù)據(jù)SOF_DecryptData21) 文件加密SOF_EncryptFile22) 文件解密SOF_DecryptFile23) 公鑰加密SOF_PubKeyEncrypt24) 私鑰解密SOF_PriKeyDecrypt25) PKCS#7數(shù)據(jù)簽名SOF_SignDataByP726) 驗(yàn)證PKCS#7數(shù)據(jù)簽名SOF_VerifySignedDataByP727) 解析PKCS#7簽名包信息SOF_GetP7SignDataInfo28) XML數(shù)據(jù)簽名SOF_SignDataXML29) 驗(yàn)證XML數(shù)據(jù)簽名SOF_VerifySignedDataXML30) 解析XML簽名數(shù)據(jù)SOF_GetXMLSignatureInfo31) 檢查控件支持SOF_CheckSupport32) 產(chǎn)生隨機(jī)數(shù)SOF_GenRandom服務(wù)器端接口是供應(yīng)用系統(tǒng)服務(wù)器端程序直接調(diào)用的高級接口,應(yīng)支持所有主流操作系統(tǒng),支持B/S和C/S等系統(tǒng)架構(gòu),支持符合衛(wèi)生系統(tǒng)數(shù)字證書格式規(guī)范的數(shù)字證書,可通過添加證書信任列表的方式實(shí)現(xiàn)不同電子認(rèn)證服務(wù)機(jī)構(gòu)證書之間的交叉認(rèn)證和互信互認(rèn)。服務(wù)器端接口可包括COM組件、JAVA組件等多種形態(tài)。服務(wù)器端接口應(yīng)提供以下函數(shù):1) 初始化環(huán)境SOF_GetInstance(JAVA組件專用)2) 設(shè)置證書信任列表SOF_SetCertTrustList3) 查詢證書信任列表別名SOF_QueryCertTrustListAltNames4) 查詢證書信任列表SOF_QueryCertTrustList5) 刪除證書信任列表SOF_DelCertTrustList6) 設(shè)置Web應(yīng)用名稱SOF_SetWebAppName (COM組件專用)7) 設(shè)置簽名算法SOF_SetSignMethod8) 獲得當(dāng)前簽名算法SOF_GetSignMethod9) 設(shè)置加密算法SOF_SetEncryptMethod10) 獲得加密算法SOF_GetEncryptMethod11) 獲得服務(wù)器證書SOF_GetServerCertificate12) 產(chǎn)生隨機(jī)數(shù)SOF_GenRandom13) 獲得證書信息SOF_GetCertInfo14) 獲得證書擴(kuò)展信息SOF_GetCertInfoByOid15) 驗(yàn)證證書有效性SOF_ValidateCert16) 數(shù)據(jù)簽名SOF_SignData17) 驗(yàn)證簽名SOF_VerifySignedData18) 文件簽名SOF_SignFile19) 驗(yàn)證文件簽名SOF_VerifySignedFile20) 對稱算法加密數(shù)據(jù)SOF_EncryptData21) 解密對稱算法加密數(shù)據(jù)SOF_DecryptData22) 文件加密SOF_EncryptFile23) 文件解密SOF_DecryptFile24) 公鑰加密SOF_PubKeyEncrypt25) 私鑰解密SOF_PriKeyDecrypt26) PKCS#7數(shù)據(jù)簽名SOF_SignDataByPkcs727) 驗(yàn)證 PKCS#7數(shù)據(jù)簽名SOF_VerifySignedDataByPkcs728) 解析PKCS#7簽名包信息SOF_GetP7SignDataInfo29) XML數(shù)據(jù)簽名SOF_SignDataXML30) 驗(yàn)證XML數(shù)據(jù)簽名SOF_VerifySignedDataXML31) 解析XML簽名數(shù)據(jù)SOF_GetXMLSignatureInfo32) 創(chuàng)建時(shí)間戳請求SOF_CreateTimeStampRequest33) 創(chuàng)建時(shí)間戳響應(yīng)SOF_CreateTimeStampResponse34) 驗(yàn)證時(shí)間戳SOF_VerifyTimeStamp35) 解析時(shí)間戳SOF_GetTimeStampInfo36) 獲得錯(cuò)誤碼SOF_GetLastError(COM組件專用)5.3 證書應(yīng)用綜合服務(wù)接口客戶端接口函數(shù)定義1) 獲取接口版本信息 SOF_GetVersion原型:int SAF_GetVersion(unsigned int *puiVersion)描述:獲取接口的版本號參數(shù):puiVersion out版本號返回值:0 成功非0失敗,返回錯(cuò)誤代碼備注:版本號的格式為:0xAAAABBBB,其中AAAA為主版本號,BBBB為次版本號。2) 設(shè)置簽名算法SOF_SetSignMethod原型:Void SOF_SetSignMethod (int SignMethod);描述:設(shè)置控件簽名使用的簽名算法。參數(shù):SignMethod in簽名算法標(biāo)識,見表5“算法代碼表”。返回值:無3) 獲得當(dāng)前簽名算法SOF_GetSignMethod原型:BSTR SOF_GetSignMethod();描述:獲得控件簽名使用的簽名算法參數(shù):無返回值:當(dāng)前的簽名算法4) 設(shè)置加密算法SOF_SetEncryptMethod原型:Void SOF_SetEncryptMethod (int EncryptMethod) ;描述:設(shè)置控件使用的對稱加解密算法。參數(shù):SetEncryptMethodIN對稱加解密算法見表5“算法代碼表”。返回值:無5) 獲得加密算法SOF_GetEncryptMethod原型:BSTR SOF_GetEncryptMethod ();描述:獲得控件使用的對稱加解密算法參數(shù):無返回值:當(dāng)前控件使用的加密算法6) 獲得證書列表SOF_GetUserList原型:BSTR SOF_GetUserList();描述:取得當(dāng)前已安裝證書的用戶列表參數(shù):無返回值:BSTR ret 用戶列表字符串?dāng)?shù)據(jù)格式:(用戶1|標(biāo)識1&用戶2|標(biāo)識2&)備注:根據(jù)證書應(yīng)用的策略不同會得到不同的證書列表7) 導(dǎo)出用戶簽名證書SOF_ExportUserCert原型:BSTR SOF_ExportUserCert(BSTR CertID);描述:根據(jù)證書實(shí)體唯一標(biāo)識,獲取Base64編碼的證書字符串。參數(shù):BSTR CertID in輸入?yún)?shù),證書實(shí)體唯一標(biāo)識返回值:BSTR rv證書字符串空失敗空值備注:如果是雙證書,導(dǎo)出的是簽名證書。8) 校驗(yàn)證書口令 SOF_Login原型:BOOL SOF_Login(BSTR CertID, BSTR PassWd,short nRetryCount)描述:校驗(yàn)證書口令參數(shù):BSTR CertID in輸入?yún)?shù),證書實(shí)體唯一標(biāo)識BSTR PassWd inShort RetryCountout輸入?yún)?shù),口令剩余口令重試次數(shù)返回值:成功 TRUE,失敗 FALSE9) 修改證書口令 SOF_ChangePassWd原型:BOOL SOF_ChangePassWd(BSTR CertID, BSTR OldPassWd,BSTR NewPassWd)描述:修改證書口令參數(shù):BSTR CertID in輸入?yún)?shù),證書實(shí)體唯一標(biāo)識BSTR OldPassWd in輸入?yún)?shù),舊口令BSTR NewPassWd in輸入?yún)?shù),新口令返回值:成功 TRUE,失敗 FALSE10) 導(dǎo)出用戶加密證書SOF_ExportExChangeUserCert原型:BSTR SOF_ExportExChangeUserCert (BSTR CertID) ;描述:根據(jù)證書實(shí)體唯一標(biāo)識,獲取Base64編碼的證書字符串。指定獲取加密(交換)證書參數(shù):BSTR CertIDin證書實(shí)體唯一標(biāo)識返回值:BSTR rv獲取Base64編碼的證書字符串空值失敗11) 獲得證書信息SOF_GetCertInfo原型:BSTR SOF_GetCertInfo(BSTR Cert, short Type);描述:獲取證書信息參數(shù):BSTR sCertinBase64編碼的證書short Typein獲取信息的類型,TYPE參數(shù)見表3“證書信息解析代碼表”。返回值:BSTRret證書信息空值失敗12) 獲得證書擴(kuò)展信息SOF_GetCertInfoByOid原型:BSTR SOF_GetCertInfoByOid(BSTR Cert, BSTR Oid) ;描述:根據(jù)OID獲取證書私有擴(kuò)展項(xiàng)信息參數(shù):BSTR sCertinBase64編碼的證書BSTR oid in私有擴(kuò)展對象ID,比如“1.2.156.xxx”返回值:BSTR ret證書OID對應(yīng)的值空值失敗13) 獲得用戶信息SOF_GetUserInfo原型:BSTR SOF_GetUserInfo (BSTR CertId, short type) ;描述:獲得用戶信息參數(shù):BSTR Certidin證書標(biāo)識typein信息類別,參數(shù)和意義見表4“證書對應(yīng)信息表”。返回值:BSTR rettype對應(yīng)的值空值失敗14) 驗(yàn)證證書有效性SOF_ValidateCert原型:BOOL SOF_ValidateCert(BSTR Cert) ;描述:驗(yàn)證證書有效性參數(shù):BSTR sCertinBase64編碼的證書返回值:TRUE成功FALSE失敗空值失敗15) 數(shù)據(jù)簽名SOF_SignData原型:BSTR SOF_SignData(BSTR CertID, BSTR InData,short InDataLen) ;描述:對字符串?dāng)?shù)據(jù)進(jìn)行數(shù)字簽名,簽名格式為PKCS#1參數(shù):BSTR sCertIDin證書標(biāo)識BSTR sInDatainShort InDataLenin 簽名原文簽名原文長度返回值:BSTR ret簽名結(jié)果空值失敗16) 驗(yàn)證簽名SOF_VerifySignedData原型:BOOL SOF_VerifySignedData(BSTR Cert, BSTR InData, short InDataLen, BSTR SignValue) ;描述:驗(yàn)證數(shù)字簽名參數(shù):BSTR sCertin簽名者證書,BASE64編碼BSTR sInDatain簽名原文Short InDataLenin簽名原文長度BSTR sSignValuein簽名值,BASE64編碼返回值:TRUE成功FALSE失敗17) 文件簽名SOF_SignFile原型:BSTR SOF_SignFile(BSTR CertID, BSTR InFile) ;描述:對文件數(shù)字簽名參數(shù):BSTR sCertIDin證書標(biāo)識BSTR sInFilein簽名原文文件路徑返回值:BSTR ret簽名結(jié)果空值失敗18) 驗(yàn)證文件簽名SOF_VerifySignedFile原型:BOOL SOF_VerifySignedFile(BSTR Cert, BSTR InFile, BSTR SignValue) ;描述:驗(yàn)證文件數(shù)字簽名參數(shù):BSTR sCertin簽名者證書BSTR sInFilein簽名原文文件路徑BSTR sSignValuein簽名值返回值:TRUE成功FALSE失敗19) 加密數(shù)據(jù)SOF_EncryptData原型:BSTR SOF_EncryptData(BSTR SymmKey, BSTR Indata) ;描述:使用對稱算法加密數(shù)據(jù)參數(shù):BSTR sKeyin加密密鑰BSTR sIndatain待加密的明文返回值:BSTR rv加密后的密文空值失敗20) 解密數(shù)據(jù)SOF_DecryptData原型:BSTR SOF_DecryptData(BSTR SymmKey, BSTR Indata) ;描述:使用對稱算法解密數(shù)據(jù)參數(shù):BSTR SymmKeyin解密密鑰BSTR sIndatain待解密的密文返回值:BSTR rv解密后的明文空值失敗21) 文件加密SOF_EncryptFile原型:BOOL SOF_EncryptFile(BSTR SymmKey, BSTR InFile, BSTR OutFile) ;描述:使用對稱算法加密文件參數(shù):BSTR SymmKeyin加密密鑰BSTR InFilein待加密的明文文件路徑BSTR OutFilein密文文件保存路徑返回值:TRUE成功FALSE失敗22) 文件解密SOF_DecryptFile原型:BOOL SOF_DecryptFile(BSTR SymmKey, BSTR InFile, BSTR OutFile) ;描述:使用對稱算法解密文件參數(shù):BSTR SymmKeyin解密密鑰BSTR InFilein待解密的密文文件路徑BSTR OutFilein明文文件保存路徑返回值:TRUE成功FALSE失敗23) 公鑰加密SOF_PubKeyEncrypt原型:BSTR SOF_PubKeyEncrypt(BSTR Cert, BSTR InData) ;描述:使用證書對數(shù)據(jù)加密。(PKCS#1格式)參數(shù):BSTR Certin證書BSTR InDatain待加密的數(shù)據(jù)返回值:BSTR rv成功加密后的密文空值失敗備注:因?yàn)槭荘KCS#1格式,故加密的數(shù)據(jù)長度要小于證書的位數(shù)。比如1024位的證書,InData長度必須小于12824) 私鑰解密SOF_PriKeyDecrypt原型:BSTR SOF_PriKeyDecrypt(BSTR CertID, BSTR InData) ;描述:私鑰解密(PKCS#1格式)參數(shù):BSTR CertIDin證書IDBSTR InDatain待解密的數(shù)據(jù)返回值:BSTR rv成功解密后的明文空值失敗25) PKCS#7數(shù)據(jù)簽名SOF_SignDataByP7原型:BSTR SOF_SignDataByP7(BSTR CertID, BSTR InData)描述:對字符串?dāng)?shù)據(jù)進(jìn)行數(shù)字簽名,簽名格式為PKCS#7參數(shù):BSTR sCertIDin證書標(biāo)識BSTR sInDatain簽名原文返回值:BSTR ret 簽名結(jié)果空值失敗備注:PKCS#7簽名結(jié)果包含原文+簽名者證書+簽名值。26) 驗(yàn)證PKCS#7數(shù)據(jù)簽名SOF_VerifySignedDataByP7原型:BOOL SOF_VerifySignedDataByP7 (BSTR P7Data) ;描述:驗(yàn)證數(shù)字簽名參數(shù):BSTR P7DatainPKCS#7簽名包返回值:TRUE成功FALSE失敗27) 解析PKCS#7簽名包信息SOF_GetP7SignDataInfo原型:BSTR SOF_GetP7SignDataInfo ( BSTR P7Data,short type) ;描述:解析PKCS#7簽名包的信息,可獲得原文、簽名值、簽名證書等信息參數(shù):BSTR P7DatainPKCS#7簽名包short typein類型返回值:TRUE成功FALSE失敗備注:類型:1:原文;2:簽名者證書;3:簽名值 28) XML數(shù)據(jù)簽名SOF_SignDataXML原型:BSTR SOF_SignDataXML(BSTR CertID, BSTR InData) ;描述:對XML數(shù)據(jù)進(jìn)行數(shù)字簽名,輸出符合國際標(biāo)準(zhǔn)的XML簽名結(jié)果參數(shù):BSTR sCertIDin證書標(biāo)識BSTR InDatain簽名原文,XML格式返回值:BSTR ret簽名結(jié)果空值失敗備注:XML簽名標(biāo)準(zhǔn)見 /TR/xmldsig-core/29) 驗(yàn)證XML數(shù)據(jù)簽名SOF_VerifySignedDataXML原型:BOOL SOF_VerifySignedDataXML (BSTR InData) ;描述:驗(yàn)證xml簽名參數(shù):BSTR InDatainXML簽名值返回值:TRUE成功FALSE失敗備注:XML簽名標(biāo)準(zhǔn)見 /TR/xmldsig-core/30) 解析XML簽名數(shù)據(jù)SOF_GetXMLSignatureInfo原型:BSTR SOF_GetXMLSignatureInfo (BSTR XMLSignedData,short type) ;描述:解析XML簽名數(shù)據(jù),獲取簽名值、XML原文、證書等信息參數(shù):BSTR XMLSignedDatainXML格式的簽名數(shù)據(jù)Typein待解析的參數(shù)類型返回值:各項(xiàng)對應(yīng)的信息備注:type可選的參數(shù)和意義:1:xml原文;2:摘要;3:簽名值;4:簽名證書;5:摘要算法;6:簽名算法。31) 檢查控件支持SOF_CheckSupport原型:short SOF_CheckSupport();描述:檢查控件是否支持當(dāng)前操作系統(tǒng)和瀏覽器版本參數(shù):無返回值:int rv0表示支持,1表示不支持。32) 產(chǎn)生隨機(jī)數(shù)SOF_GenRandom原型:BSTR SOF_GenRandom(short len);描述:產(chǎn)生隨機(jī)數(shù)參數(shù):int RanddomLenin待產(chǎn)生的隨機(jī)數(shù)長度(bytes,字節(jié)長度)返回值:BSTR rv隨機(jī)數(shù)值(Base64編碼后的)5.4 證書應(yīng)用綜合服務(wù)接口服務(wù)器端COM組件函數(shù)定義1) 設(shè)置證書信任列表SOF_SetCertTrustList原型:short SOF_SetCertTrustList(BSTR CTLAltName, BSTR CTLContent, int CTLContentLen);描述:設(shè)置證書信任列表參數(shù):CTLAltNamein證書信任列表別名CTLContentin證書信任列表內(nèi)容(Base64編碼格式)CTLContentLenin證書信任列表長度返回值:0成功其他失敗,詳見錯(cuò)誤碼列表備注:錯(cuò)誤代碼:SOR_PARAMERR:參數(shù)錯(cuò)誤2) 查詢證書信任列表別名SOF_QueryCertTrustListAltNames原型:BSTR SOF_QueryCertTrustListAltNames();描述:查詢證書信任列表別名參數(shù):無返回值:非空成功,信任列表別名的字符串組合,如“CA001CA002CA003”其他失敗,詳見錯(cuò)誤碼列表備注:錯(cuò)誤代碼:SOR_CTLNOTFOUND:沒有信任列表3) 查詢證書信任列表SOF_QueryCertTrustList原型:BSTR SOF_QueryCertTrustList (BSTR CTLAltName);描述:根據(jù)別名查詢證書信任列表參數(shù):BSTR CTLAltNamein證書信任列表別名返回值:非空成功,Base64編碼格式的證書信任列表;其他失敗,詳見錯(cuò)誤碼列表備注:SOR_CTLNOTFOUND:沒有信任列表SOR_PARAMERR:參數(shù)錯(cuò)誤。4) 刪除證書信任列表SOF_DelCertTrustList原型:short SOF_DelCertTrustList(BSTR CTLAltName);描述:根據(jù)別名刪除證書信任列表參數(shù):CTLAltNamein證書信任列表別名返回值:0成功其他失敗,詳見錯(cuò)誤碼列表備注:SOR_NULLPOINTER:參數(shù)為空指針SOR_CTLNOTFOUND:沒有對應(yīng)的信任列表5) 設(shè)置Web應(yīng)用名稱SOF_SetWebAppName 原型:short SOF_SetWebAppName(BSTR WebAppName);描述:設(shè)置web應(yīng)用的名稱。該名稱要和服務(wù)器xml文件對應(yīng)。接口從xml文件中讀取webapp的屬性包括使用的證書、可信的根證書、證書驗(yàn)證的策略等參數(shù):WebAppNamein應(yīng)用的名稱返回值:0成功其他失敗,詳見錯(cuò)誤碼列表備注:SOR_NULLPOINTER:參數(shù)為空指針。SOR_APPNOTFOUND:應(yīng)用沒發(fā)現(xiàn)6) 設(shè)置簽名算法SOF_SetSignMethod原型:Short SOF_SetSignMethod(BSTR signMethod);描述:設(shè)置COM組件簽名運(yùn)算使用的簽名算法。缺省為“RSA-SHA1”。參數(shù):signMethodIN簽名算法返回值:0成功其他失敗詳見附錄錯(cuò)誤碼定義備注:SOR_NULLPOINTER:參數(shù)為空指針。SOR_PARAMETERNOTSUPPORT :不支持的參數(shù)7) 獲得當(dāng)前簽名算法SOF_getSignMethod原型:BSTR SOF_signMethod GetSignMethod();描述:獲得組件簽名運(yùn)算使用的簽名算法參數(shù):無返回值:當(dāng)前的簽名算法8) 設(shè)置加密算法SOF_SetEncryptMethod原型:short SOF_SetEncryptMethod(BSTR EncryptMethod); 描述:設(shè)置組件對數(shù)據(jù)加解密使用的對稱算法參數(shù):EncryptMethodIN對稱加解密算法見表5“算法代碼表”。返回值:0成功備注:錯(cuò)誤代碼:SOR_NULLPOINTER:參數(shù)為空指針。SOR_PARAMETERNOTSUPPORT :不支持的參數(shù)9) 獲得加密算法SOF_GetEncryptMethod原型:BSTR SOF_GetEncryptMethod();描述:獲得組件使用的對稱加解密算法參數(shù):無返回值:當(dāng)前控件使用的加密算法10) 獲得服務(wù)器證書SOF_GetServerCertificate原型:BSTR SOF_GetServerCertificate(int CertUsage);描述:讀取當(dāng)前應(yīng)用指定的服務(wù)器證書參數(shù):INT certUsage 證書用途證書用途法1:交換證書、2:簽名證書返回值:Base64編碼的服務(wù)器證書成功null失敗備注:錯(cuò)誤代碼SOR_PARAMETERNOTSUPPORT:不支持的參數(shù)11) 產(chǎn)生隨機(jī)數(shù)SOF_GenRandom原型:BSTR SOF_GenRandom(int len);描述:產(chǎn)生指定長度的隨機(jī)數(shù)參數(shù):int lenin待產(chǎn)生的隨機(jī)數(shù)長度(bytes,字節(jié)長度)返回值:隨機(jī)數(shù)值Base64編碼后的備注:bytes,字節(jié)長度12) 獲得證書信息SOF_GetCertInfo原型:BSTR SOF_GetCertInfo(BSTR Base64EncodeCert, int type);描述:獲取證書信息參數(shù):BSTR Base64EncodeCertBase64編碼的X.509數(shù)字證書int type獲取證書信息的類型,見表3“證書信息解析代碼表”。返回值:BSTR ret 證書信息空值失敗備注:錯(cuò)誤代碼:SOR_NULLPOINTER:某一個(gè)參數(shù)為空指針。SOR_CERTENCODE:證書編碼格式錯(cuò)誤SOR_PARAMETERNOTSUPPORT :不支持的參數(shù)13) 獲得證書擴(kuò)展信息SOF_GetCertInfoByOid原型:BSTR SOF_GetCertInfoByOid(BSTR Base64EncodeCert, BSTR oid);描述:根據(jù)OID獲取證書私有擴(kuò)展項(xiàng)信息參數(shù):BSTR Base64EncodeCertBase64編碼的證書BSTR oid私有擴(kuò)展對象ID,如“1.2.156.xxx”返回值:BSTR ret證書OID對應(yīng)的值空值出錯(cuò)備注:錯(cuò)誤代碼:SOR_NULLPOINTER:某一個(gè)參數(shù)為空指針。SOR_CERTENCODE:證書編碼格式錯(cuò)誤。14) 驗(yàn)證證書有效性SOF_ValidateCert原型:short SOF_ValidateCert(BSTR Base64EncodeCert)描述:根據(jù)應(yīng)用的策略根據(jù)驗(yàn)證證書有效性參數(shù):Base64EncodeCertIN待驗(yàn)證的base64編碼證書返回值:0驗(yàn)證成功其他驗(yàn)證失敗,見錯(cuò)誤代碼備注:錯(cuò)誤代碼:SOR_NULLPOINTER: Base64EncodeCert為null。SOR_CERTENCODE:證書編碼格式錯(cuò)誤。SOR_CERTINVALID證書無效,不是可信ca頒發(fā)的證書。SOR_CERTNOTYETVALID證書未生效。SOR_CERTHASEXPIRED證書已過期。SOR_CERTREVOKED證書已經(jīng)被吊銷15) 數(shù)據(jù)簽名SOF_SignData原型:BSTR SOF_SignData(BSTR InData,int InDataLen);描述:對字符串?dāng)?shù)據(jù)進(jìn)行數(shù)字簽名,簽名格式為PKCS#1參數(shù):InDataIN 待簽名的數(shù)據(jù)原文InDataLenIN待簽名的數(shù)據(jù)原文長度返回值:返回PKCS#1格式的簽名值的base64編碼成功備注:錯(cuò)誤代碼:SOR_NULLPOINTER: InData為null。SOR_SIGNDATA:簽名失敗。16) 驗(yàn)證簽名SOF_VerifySignedData原型:short SOF_VerifySignedData(BSTR Base64EncodeCert, BSTR InData,int InDataLen ,BSTR SignValue);描述:驗(yàn)證數(shù)字簽名參數(shù):Base64EncodeCertINbase64編碼的簽名證書InDataIN待驗(yàn)證的原文InDataLenIN待驗(yàn)證的原文長度SignValueIN簽名值返回值:0驗(yàn)證成功其他驗(yàn)證失敗備注:錯(cuò)誤代碼:SOR_NULLPOINTER: 其中一個(gè)輸入?yún)?shù)為null。SOR_CERTENCODE:證書編碼錯(cuò)誤。SOR_VERIFYSIGNDATA:驗(yàn)證簽名失敗17) 文件簽名SOF_SignFile原型:BSTR SOF_SignFile(BSTR InFile);描述:對文件數(shù)字簽名。得到base64編碼后的PKCS#1格式的簽名數(shù)據(jù)。參數(shù):InFileIN 待簽名的文件路徑返回值:base64編碼后的PKCS#1格式的簽名數(shù)據(jù)備注:錯(cuò)誤代碼:SOR_NULLPOINTER: InFile為null。SOR_READFILE:讀文件異常,可能文件不存在或沒有讀取權(quán)限等。18) 驗(yàn)證文件簽名SOF_VerifySignedFile原型:short SOF_VerifySignedFile(BSTR Base64EncodeCert, BSTR InFile, BSTR SignValue);描述:驗(yàn)證文件數(shù)字簽名參數(shù):Base64EncodeCertIN base64編碼的簽名證書InFileIN待驗(yàn)證的原文SignValueIN簽名值返回值:0驗(yàn)證成功其他驗(yàn)證失敗,見錯(cuò)誤代碼備注:錯(cuò)誤代碼:SOR_NULLPOINTER: 其中一個(gè)輸入?yún)?shù)為null。SOR_READFILE:讀文件異常,可能文件不存在或沒有讀取權(quán)限等。SOR_CERTENCODE:證書編碼錯(cuò)誤。SOR_VERIFYSIGNDATA:驗(yàn)證簽名失敗。 19) 對稱算法加密數(shù)據(jù)SOF_EncryptData原型:BSTR SOF_EncryptData(BSTR key, BSTR InData);描述:使用對稱算法加密數(shù)據(jù)參數(shù):BSTR keyIN加密密鑰BSTR InDataIN待加密的明文返回值:成功加密后的密文Base64編碼后的空值失敗備注:SOR_NULLPOINTER: 其中一個(gè)輸入?yún)?shù)為null。SOR_ENCRYPTDATA:數(shù)據(jù)加密失敗。20) 解密數(shù)據(jù)SOF_DecryptData原型:BSTR SOF_DecryptData(BSTR key, BSTR InData);描述:使用對稱算法解密數(shù)據(jù)參數(shù):BSTR keyIN解密密鑰BSTR InDataIN待解密的密文返回值:解密后的明文成功空值失敗備注:錯(cuò)誤代碼:SOR_NULLPOINTER: 其中一個(gè)輸入?yún)?shù)為null。SOR_DECRYPTDATA: 數(shù)據(jù)解密失敗。21) 文件加密SOF_EncryptFile原型:Short SOF_EncryptFile(BSTR key, BSTR InFile, BSTR OutFile);描述:使用對稱算法加密文件參數(shù):BSTR keyIN加密密鑰BSTR InFileIN待加密的明文文件路徑BSTR OutFileIN密文文件保存路徑返回值:0成功其他見錯(cuò)誤碼備注:SOR_NULLPOINTER: 其中一個(gè)輸入?yún)?shù)為null。SOR_READFILE: 讀文件異常,可能文件不存在或沒有讀取權(quán)限等。SOR_WRITEFILE寫文件異常,可能文件不存在或沒有寫權(quán)限等SOR_ENCRYPTDATA:數(shù)據(jù)加密失敗22) 文件解密SOF_DecryptFile原型:short SOF_DecryptFile(BSTR key, BSTR InFile, BSTR OutFile);描述:使用對稱算法解密文件參數(shù):BSTR key IN解密密鑰BSTR InFileIN待解密的密文文件路徑BSTR OutFileIN明文文件保存路徑返回值:0成功其他見錯(cuò)誤代碼表備注:錯(cuò)誤代碼:SOR_NULLPOINTER: 其中一個(gè)輸入?yún)?shù)為null。SOR_READFILE: 讀文件異常,可能文件不存在或沒有讀取權(quán)限等。SOR_WRITEFILE寫文件異常,可能文件不存在或沒有寫權(quán)限等。SOR_DECRYPTDATA:數(shù)據(jù)解密失敗23) 公鑰加密SOF_PubKeyEncrypt原型:BSTR SOF_PubKeyEncrypt(BSTR Base64EncodeCert, BSTR InData); 描述:使用證書對數(shù)據(jù)加密。(PKCS#1格式)參數(shù):BSTR Base64EncodeCert IN證書BSTR InDataIN待加密的數(shù)據(jù)返回值:返回加密后的密文base64編碼后的數(shù)據(jù)空失敗備注:錯(cuò)誤代碼:SOR_NULLPOINTER: 其中一個(gè)輸入?yún)?shù)為null。SOR_CERTENCODE:證書編碼格式錯(cuò)誤。SOR_ENCRYPTDATA:數(shù)據(jù)加密失敗。因?yàn)槭荘KCS#1格式,故加密的數(shù)據(jù)長度要小于證書的位數(shù)。比如1024位的證書,InData長度必須小于128。24) 私鑰解密SOF_PriKeyDecrypt原型:BSTR SOF_PriKeyDecrypt(BSTR InData);描述:私鑰解密(PKCS#1格式)參數(shù):BSTR InDataIN待解密的數(shù)據(jù)返回值:返回解密后的明文成功空失敗備注:錯(cuò)誤代碼:SOR_NULLPOINTER: 其中一個(gè)輸入?yún)?shù)為null。SOR_DECRYPTDATA:數(shù)據(jù)解密失敗。25) PKCS#7數(shù)據(jù)簽名SOF_SignDataByP7原型:BSTR SOF_SignDataByP7 (BSTR InData);描述:對字符串?dāng)?shù)據(jù)進(jìn)行數(shù)字簽名,簽名格式為PKCS#7參數(shù):InDataIN 待簽名的數(shù)據(jù)原文返回值:返回PKCS#7格式的簽名值的b

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論