GMT 0131-2023 電子簽章應(yīng)用接口規(guī)范_第1頁
GMT 0131-2023 電子簽章應(yīng)用接口規(guī)范_第2頁
GMT 0131-2023 電子簽章應(yīng)用接口規(guī)范_第3頁
GMT 0131-2023 電子簽章應(yīng)用接口規(guī)范_第4頁
GMT 0131-2023 電子簽章應(yīng)用接口規(guī)范_第5頁
已閱讀5頁,還剩114頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

電子簽章應(yīng)用接口規(guī)范國家密碼管理局發(fā)布I Ⅲ 1 1 14縮略語 2 2 25.2服務(wù)調(diào)用接口 45.3組件調(diào)用接口 4 46.1基礎(chǔ)接口 46.2綜合接口 7組件調(diào)用接口 217.1基礎(chǔ)接口 7.2綜合接口 28 附錄B(規(guī)范性)自定義C語言數(shù)據(jù)結(jié)構(gòu) 附錄C(資料性)典型服務(wù)調(diào)用接口示例 附錄D(資料性)典型組件調(diào)用接口示例 附錄E(規(guī)范性)錯誤代碼定義 ⅢGB/T20518信息安全技術(shù)公鑰基礎(chǔ)設(shè)施數(shù)字證書格式GB/T20520信息安全技術(shù)公鑰基礎(chǔ)設(shè)施時間戳規(guī)范GB/T32010.1文獻管理可移植文檔格式第1部分:PDF1.7電子文件存儲與交換格式版式文檔2簽章服務(wù)electronicsealsignatureservice提供支持OFD和PDF等格式的數(shù)字電文的電子印章簽署服務(wù)。電子簽章系統(tǒng)electronicsealsignaturesystem對數(shù)據(jù)電文提供電子簽章、數(shù)字簽名、簽名驗證等服務(wù)的軟件系統(tǒng)。分散式簽章decentralizedeleetronicsealsignature在電子印章所有者掌控的密碼模塊中實現(xiàn)電子印章私鑰的存儲及具計算。集中式簽章centralizedelectronicsealsignature電子印章私鑰統(tǒng)一存儲在指定的密碼設(shè)備中,該密碼設(shè)備由電子簽章系統(tǒng)掌控。電子印章使用者通過電子簽章系統(tǒng)實現(xiàn)對電子印章的使用。用戶在電子簽章系統(tǒng)重被度權(quán)的電子印用戶證書usercertilicate用戶在電子簽章系統(tǒng)里被段權(quán)的數(shù)字證B/S模式browser/serrerzmode客戶端統(tǒng)一為WEB瀏覽器,系統(tǒng)功能實現(xiàn)的核心部分集市到服務(wù)器工的一種應(yīng)用系統(tǒng)模式。4縮略語下列縮略語適用于本文件DER:可辨別編碼規(guī)則(DistinguishedEncodiHTTP:超文本傳輸協(xié)議(HIyperTextTransfer-Protocol)OFD:開放式版式文檔(OpenFixedlayoutDocument)OID:對象標(biāo)識符(ObjectID)PDF:可移植文檔格式(PortableDocumentFormat)PKI:公鑰基礎(chǔ)設(shè)施(PublicKeyInfrastructure)SDK:軟件開發(fā)工具包(SoftwareDevelopmentKit)5電子簽章應(yīng)用接口概述5.1通用要求本文件在GM/T0094—2020中第4章的公鑰密碼應(yīng)用技術(shù)體系框架中的位置見圖1。3應(yīng)用1~應(yīng)用應(yīng)用1~應(yīng)用N基礎(chǔ)設(shè)電子簽章應(yīng)用接口包括服務(wù)調(diào)用接口和組件調(diào)用接口兩種接口形式。服務(wù)調(diào)用可采用HTTP或HTTPS服務(wù)。組件調(diào)用可采用部署在用戶端的DLL/SO等SDK組件。這兩種接口形式分別包含基礎(chǔ)應(yīng)用接口和綜合應(yīng)用接口,支持分散式簽章和集中式簽章兩種模式。電子簽章應(yīng)用接口列表如表1接口名接口1獲取簽章服務(wù)信息2345678SEF_AddTimestampToSi9獲取錯誤信息接口1文件定位簽章2文件關(guān)鍵字簽章3文件加蓋騎縫章4文件數(shù)字簽名54表1電子簽章應(yīng)用接口列表(續(xù))接口名接口6789文件簽章/簽名驗證,驗證所有簽章和簽名本文件所涉及的OED文件應(yīng)銜合GB/T33190和GM/T0099的規(guī)定,PDF文件應(yīng)符合電子簽章的簽名算法應(yīng)與電子印章的簽名算法一致,如果簽名算法是SM2,則電子印章結(jié)構(gòu)、電子簽章結(jié)構(gòu)應(yīng)符合GB/T38540或GM/T0031的規(guī)定,簽名值應(yīng)符合GB/T35275的規(guī)定,電子印章和電子簽章數(shù)據(jù)結(jié)構(gòu)的數(shù)字證書應(yīng)符合GB/T20518的規(guī)定。當(dāng)雜湊算法使用SM3時,雜湊值應(yīng)符合所有涉及電子印章私鑰腺作的接日應(yīng)及施私鑰驗流安全桃制。智能密碼鑰匙私鑰操作應(yīng)符合GB/T35291的規(guī)定,密碼設(shè)備私鑰操佰應(yīng)符合GB/T36322-的肌癥。服務(wù)端狹取用戶印章信息列表和服務(wù)端獲取用戶證書信息列是的接的應(yīng)進行身份。用戶身份率列流程可參考文獻[1][2][3]。自定義JsON報文數(shù)服結(jié)構(gòu)應(yīng)符合附的規(guī)定義C語言數(shù)據(jù)結(jié)構(gòu)應(yīng)符合附錄B的規(guī)定,典型服務(wù)調(diào)用接口示例見附C,典型調(diào)用接示例見附錄D誤代碼定義應(yīng)符合附錄E的規(guī)定。智能鱉碼鑰匙操作應(yīng)符否GE/工33291的規(guī)定,密碼設(shè)備操作應(yīng)符合GBZT36222的規(guī)定。5.2服務(wù)調(diào)用接口服務(wù)調(diào)用接口為請求/響應(yīng)服務(wù)的形式,可用于B/S模式的應(yīng)用系統(tǒng)??蛷]端通過網(wǎng)絡(luò)數(shù)據(jù)報文方式發(fā)送請求數(shù)據(jù),并接收服務(wù)端的響應(yīng)數(shù)據(jù)報文。請求數(shù)據(jù)和響應(yīng)數(shù)據(jù)采角JsON報文數(shù)據(jù)格式封裝,JSON數(shù)據(jù)中的二進制數(shù)據(jù)應(yīng)進行Base64編碼,編碼方式應(yīng)符合RFC4648中第4章的規(guī)定。String類型的數(shù)據(jù)除非特別說明。默認(rèn)使用UTF-8編碼。5.3組件調(diào)用接口組件調(diào)用接口由電子簽章系統(tǒng)通過SDK組件的方式為應(yīng)用系統(tǒng)提供本地化的接口調(diào)用。SDK組件直接部署在應(yīng)用系統(tǒng)中,采用本地化接口調(diào)用方式提供服務(wù)。組件接口中int類型大小為32比特。6服務(wù)調(diào)用接口6.1基礎(chǔ)接口5是是與resultCode對應(yīng)的文字說明(UTF-8編碼)是是是否是時間值,為當(dāng)前時間的毫秒數(shù),用于超時校驗否否用,適用于集中式簽章是是認(rèn)證類型,0:無認(rèn)證;1:token認(rèn)證否6是是與resultCode對應(yīng)的文字說明(UTF-8編碼)是是時間值,為當(dāng)前時間的毫秒數(shù),用于超時校驗否印章名稱否印章ID是印章狀態(tài),0:所有;1:有效;2:無效;3:凍結(jié)是是與rcsultCode對應(yīng)的文字說明(UTF-8編碼)是印章數(shù)據(jù)信息列表,對應(yīng)印章數(shù)據(jù)信息JSON報文結(jié)構(gòu)定功能描述:獲取用戶證書信息列表。分散式用章枚舉智能密碼鑰匙里的數(shù)字證書,集中式用章只能獲取指定的用戶證書。本接口只獲取對應(yīng)的簽名證書,數(shù)字證書格式符合7是時間值,為當(dāng)前時間的毫秒數(shù),用于超時校驗否否用,適用于集中式簽章是是認(rèn)證類型,0:無認(rèn)證;1:token認(rèn)證是認(rèn)證類型,0:無認(rèn)證;1:token認(rèn)證是是與resuliCode對應(yīng)的文字說明(UTF-8編碼)是用戶數(shù)字證書列表,對應(yīng)的用戶證書信息JSON報文結(jié)構(gòu)定義應(yīng)符合表A.3的規(guī)定6.1.5根據(jù)證書ID獲取數(shù)字證書是時間值,為當(dāng)前時間的毫秒數(shù),用于超時校驗是是8是是與resultCode對應(yīng)的文字說明(UTF-8編碼)是Base64編碼證書數(shù)據(jù),如果數(shù)字證書簽名算法使用是是ID數(shù)據(jù)是是與resultCode對應(yīng)的文字說明(UTF-8編碼)是雜湊算法標(biāo)識的OID,應(yīng)符合GB/T33560的規(guī)定是簽名算法標(biāo)識的OID,應(yīng)符合GB/T39表13封裝簽章結(jié)構(gòu)的請求參數(shù)是時間值,為當(dāng)前時間的毫秒數(shù),用于超時校驗否否用,適用于集中式簽章是印章標(biāo)識否是是認(rèn)證類型,0:無認(rèn)證;1:token認(rèn)證否響應(yīng)參數(shù):封裝簽章結(jié)構(gòu)的JSON格式響應(yīng)參數(shù)見表14。表14封裝簽章結(jié)構(gòu)的響應(yīng)參數(shù)是是與resultCode對應(yīng)的文字說明(UTF-8編碼)是Basc64編碼的簽章數(shù)據(jù)結(jié)構(gòu),如果簽名算法使用S符合GB/T38540的規(guī)定6.1.8添加時間戳到簽章結(jié)構(gòu)體功能描述:把時間戳封裝到簽章結(jié)構(gòu)體中,簽章結(jié)構(gòu)體應(yīng)符合GB/T38540的規(guī)定,時間戳數(shù)據(jù)應(yīng)符合GB/T20520的規(guī)定。接口地址:HTTP(S)://SERVER:PORT/SEF/V1/SEF_AddTimest請求參數(shù):添加時間戳到簽章結(jié)構(gòu)體的JSON格式請求參數(shù)見表15。表15添加時間戳到簽章結(jié)構(gòu)體請求參數(shù)是時間值,為當(dāng)前時間的毫秒數(shù),用于超時校驗是Base64編碼的簽章結(jié)構(gòu)(不帶時間戳)是Base64編碼的時間戳,應(yīng)符合GB/T20520表16添加時間戳到簽章結(jié)構(gòu)體響應(yīng)參數(shù)是是與resultCode對應(yīng)的文字說明(UTF-8編碼)是Base64編碼的帶時間戳的簽章結(jié)構(gòu),如果簽功能描述:調(diào)用戶印章私釧進行數(shù)字簽名,封裝不含時間戳的消息簽名數(shù)據(jù),如果簽名算法是SM2,消息簽名數(shù)據(jù)應(yīng)符合GB/T35275—2017中第8章規(guī)定的簽名數(shù)據(jù)類型。調(diào)用方式HTTPPOST(JSON)表1二封裝消息簽名結(jié)構(gòu)的請求參數(shù)型是而時間為當(dāng)前時間的皂秒數(shù),用于超時校驗用D?分散式用章時過為零集中式用章時不能為空正書序列號是Basc64編碼的簽章保護原文數(shù)據(jù)的雜倭值(不帶ID)是原文雜湊算法OID,應(yīng)符合GB/T33560的規(guī)定是認(rèn)證類型,0:無認(rèn)證;1:token伙證;否表18封裝消息簽名結(jié)構(gòu)的響應(yīng)參數(shù)是是與resultCode對應(yīng)的文字說明(UTF-8編碼)是Base64編碼的消息簽名數(shù)據(jù),如果使用SM2算法驗證流程進行驗證;消息簽名數(shù)據(jù)應(yīng)按照GB/T35275的規(guī)定對消息簽名格式進行是時間值,為當(dāng)前時間的毫秒數(shù),用于超時校驗是是是簽章或者簽名格式類型,0:未知;1:GB/T38540;2:GB/T35275;3:GM/T0031;4:pkc是是與resultCode對應(yīng)的文字說明(UTF-8編碼)是時間值,為當(dāng)前時間的毫秒數(shù),用于超時校驗是是表22解析簽章數(shù)據(jù)的響應(yīng)參數(shù)是是與resultCode對應(yīng)的文字說明(UTF-8編碼)是請求參數(shù)解析印章數(shù)據(jù)的JSON格式請求參數(shù)見表23。表23解析明章數(shù)據(jù)請求參數(shù)頭型SBasa碼印章數(shù)據(jù),如果印章簽名算法合GB38540或者GM/T0031的規(guī)定是表24解析印章數(shù)據(jù)響應(yīng)參數(shù)是與jresnhCode對應(yīng)的文字說明(UTF-8編碼)印章數(shù)據(jù)結(jié)構(gòu),對應(yīng)印章信息JSON報文結(jié)構(gòu)應(yīng)符合表是時間值,是UTF-8編碼的文件名是數(shù)據(jù)電文類型是Base64編碼待簽章數(shù)據(jù)電文或者UTF-8編碼是是否鎖定文件;式鎖定否否用,適用于集中式簽章是返回數(shù)據(jù)類型,positionScalSignIn-是文結(jié)構(gòu)應(yīng)符合表A.6的規(guī)定是否是是與resultCode對應(yīng)的文字說明(UTF-8編碼)是是Base64編碼的輸出數(shù)據(jù)電文流,或者UTF-8編碼的輸出數(shù)據(jù)地址,具體根據(jù)入?yún)utFileDataType確定表27文件關(guān)鍵字簽章請求參數(shù)是時間,為當(dāng)前時間的毫秒數(shù)。該時間用于超時校驗,不要用做簽章時間是UTF-8編碼的文件名是是Base64編碼待簽章數(shù)據(jù)電文或者UTF-8編碼是否否用,適用于集中式簽章是返回數(shù)據(jù)類型,keyWordScalSignIn-是關(guān)鍵字簽章的印章信息列表,對應(yīng)關(guān)鍵字簽章印章信息是否表28文件關(guān)鍵字簽章響應(yīng)參數(shù)是是與resultCode對應(yīng)的文字說明(UTF-8編碼)是返回數(shù)據(jù)類型,是Base64編碼的輸出數(shù)據(jù)電文流,或者UTF-8編碼的輸出數(shù)據(jù)地址,具體根據(jù)入?yún)utFileDataType確定是驗,不要用做簽章時間是UTF-8編碼的文件名是是Basc64編碼待簽章數(shù)據(jù)電文或者UTF-8編碼是式鎖定否用戶ID,否外部應(yīng)用ID,可區(qū)分不同外部應(yīng)用,適用于服務(wù)器簽章是是符合表A.8的規(guī)定是否認(rèn)證值數(shù)據(jù);表30文件加蓋騎縫章響應(yīng)參數(shù)是是與resultCode對應(yīng)的文字說明(UTF-8編碼)是返回數(shù)據(jù)類型,是Base64編碼的輸出數(shù)據(jù)電文流,或者UTF-8編碼的輸出數(shù)據(jù)地址,具體根據(jù)入?yún)utFileDataType確定據(jù)應(yīng)符合GB/T35275—2017中第8章規(guī)定的簽名數(shù)據(jù)類型。表31文件數(shù)字簽名請求參數(shù)是時間值,為當(dāng)前時間的毫秒數(shù),用于超時校驗是UTF-8編碼的文件名是是Base64編碼待簽章數(shù)據(jù)電文或者UTF-8編碼是是否鎖定文件,定文檔,第二個鎖定文檔否否外部應(yīng)用ID,可區(qū)分不同外部應(yīng)用,適用于服務(wù)器簽章是是是否是是與resultCode對應(yīng)的文字說明(UTF-8編碼)是返回數(shù)據(jù)類型,是Base64編碼的輸出數(shù)據(jù)電文流,或者UTF-8編碼的輸出數(shù)據(jù)地址,具體根據(jù)入?yún)utFileDataType確定是時間值,為當(dāng)前時間的毫秒數(shù),用于超時校驗是UTF-8編碼的文件名是是Basc64編碼待簽章數(shù)據(jù)電文或者UTF-8編碼是是符合表A.9的規(guī)定是是與resultCode對應(yīng)的文字說明(UTF-8編碼)是返回數(shù)據(jù)類型,是Base64編碼的輸出數(shù)據(jù)電文流,或者UTF-8編碼的輸出數(shù)據(jù)地址,具體根據(jù)入?yún)utFileDataType確定是UTF-8編碼的文件名是數(shù)據(jù)電文類型,是Base64編碼待簽章數(shù)據(jù)電文或者UTF-8編碼表36文件簽章驗證的響應(yīng)參數(shù)參數(shù)名稱類型是森塑與rsshCode對的的文字說明(UTF-8編碼)FileVcdy行諾表五正的規(guī)定是時間值,是UTF-8編碼的文件名是數(shù)據(jù)電文類型,是Base64編碼待簽章數(shù)據(jù)電文或者UTF-8編碼是是與rcsultCode對應(yīng)的文字說明(UTF-8編碼)是對應(yīng)文件驗證結(jié)果JSON報文結(jié)構(gòu)應(yīng)符合表39獲取文件簽章/簽名個數(shù)請求參數(shù)是時間值,為當(dāng)前時間的毫秒數(shù),用于超時校驗是UTF-8編碼的文件名是是Base64編碼待簽章數(shù)據(jù)電文或者UTF-8編碼表40獲取文件簽章/簽名個數(shù)響應(yīng)參數(shù)是是與resultCode對應(yīng)的文字說明(UTF-8編碼)是是時間值,為當(dāng)前時間的毫秒數(shù),用于超時校驗是是是Basc64編碼待簽章數(shù)據(jù)電文或者UTF-8編碼簽章/簽名索引是是括簽消息簽驗結(jié)果一對應(yīng)簽章消息簽名驗證結(jié)果JSO脆文結(jié)構(gòu)應(yīng)符合表A.直的規(guī)定是時間值是UTF-8編碼的文件名是是Base64編碼待簽章數(shù)據(jù)電文或者UTF-8編碼是圖像類型,支持“PNG”“JPG”“BMP”是是起始頁索引,0為首頁是是是與resultCode對應(yīng)的文字說明(UTF-8編碼)是頁面圖像信息列表,對應(yīng)頁面圖像信息JSON報文結(jié)構(gòu)應(yīng)符合表A.12的規(guī)定是時間值,為當(dāng)前時間的毫秒數(shù),用于超時校驗是UTF-8編碼的文件名是是Base64編碼待簽章數(shù)據(jù)電文或者UTF-8編碼的是是與resultCode對應(yīng)的文字說明(UTF-8編碼)是char*pchProviderCompany,int*piProvidechar*pchProviderVersion,int*piProvidechar*pchExtendParam,int*piExtpchProviderName[in/opchProviderCompany[in/opiProviderCompanyLen[in/opchProviderVersion[in/opiProviderVersionLen[in/o簽章服務(wù)名稱(UTF-8編碼),當(dāng)為NULL簽章服務(wù)版本(UTF-8編碼),當(dāng)為NULLintSEF_GetUserScalInfoList(constintiRequestTime,constpchUserID,constchar*pchSiteconstunsignedchar*puchUSERSEALINFO*pUserSealInfoList,int*piUserScalInfoLi用戶ID,分散式用章時可為NULL,如果是集intSEF_QueryScalsByNamconstchar*pchScalID,constchar*pchScalNamc,constSEALDATAINFO*pScalDataInfoList,int*pipScalDataInfoList[in/opScalDataInfoList[in/o印章數(shù)據(jù)信息列表,當(dāng)為NULL時,通過intSEF_GetUserCertInfoList(constintiRequestTime,constpchUserID,constchar*pchSiteconstunsignedchar*puchUSERCERTINFO*pUscrCertInfoList,int*piUserCertInfoL用戶ID,分散式用章時可為NULL,如果是集pUserCertInfoList[in/o用戶證書信息列表,當(dāng)為NULL時,通過intSEF_GetCertByCeconstintiStatus,unsignedchar*pchDigestAlgOID,int*piDigechar*pchSignAlgOID,int*piSigpuchDigestAlgOID[in/o型為1時表示證書ID雜湊算法標(biāo)識的OID,應(yīng)符合GB/T33560的piDigestAlgOIDLen[in/opuchSignAlgOID[in/ou簽名算法標(biāo)識的OID,應(yīng)符合GB/T33560piDigestAlgOIDLen[in/opuchSignAlgOID[in/oupiSignAlgOIDLen[in/ointSEF_PackSignedVaconstchar*pchSitcID,constconstchar*pchPropertyInfo,constunsignedconstintiDataHashLenconstunsignedchar*puchunsignedchar*puchScalSignedValuc,int*piScalSignedValucLen);用戶ID,分散式用章時可為NULL,如果是集用SM2,應(yīng)符合GB/T38540的規(guī)定,當(dāng)為NULL時,通過piScalSignedValucLen給出intSEF_AddTimestampToScalSignedValue(constintiRequestTimc,constunsignedchar*puchScalSigncdValuc,constintiScalSignedValucLen,constunsignedchar*puchTimcstamp,constint*iTimestampLen,unsignedchar*puchOutScalSignedValuc,int*piOutScalSignedValucLen);puchSealSignedValuc[DER編碼的時間戳,應(yīng)符合GB/T20520的puchOutScalSignedVaNULL時,通過piOutScalSignedpiOutScalSignedValue錯誤碼*intSEF_PackSignedMessage(constintiR*pchUserID,constchar*pchSiteID,constchar*pchCentSN,constchar*pchDigestAlgOID,consiintiDataHashlcconstunsigncdchanCpuchuibVahue,conSImt息簽名數(shù)應(yīng)符合G5275戮的消息簽名數(shù)如果簽名算法是SM2,消外部應(yīng)用D,當(dāng)有多個外部應(yīng)用時可區(qū)分不同原文雜湊算法OID應(yīng)符合GB/T33560的認(rèn)證類型當(dāng)為NULL時,通過piSignedMessageLen給函數(shù)原型intSEF_VcrifySignedDatDataHash,constintiDataHashLen,constintiSignStructType,unsignedchar*puchSignedData,int*piSignedDataLen);功能描述驗證電子簽章/簽名數(shù)據(jù),對于簽章數(shù)據(jù),按照GB/T38540—2020中7.3或者GM/T0031—2014中6.2.3的電子簽章驗證流程進行驗證;對于簽名數(shù)據(jù),按照GB/T35275—2017中第8章簽名數(shù)據(jù)類型格式進行驗證。puchDataHash[in]印章保護原文的hash值iDataHashLen[in]puchSignedData[in]DER編碼的簽章/簽名數(shù)據(jù)結(jié)構(gòu)體piSignedDataLen[in]簽章參數(shù)chSignedValuc,constintpSignedValucLen,constintiVersion,SIGNEDVALUEINFO*pSignedValueInfo,int*piS38540和GM/T0031規(guī)定的電子簽章數(shù)據(jù)。SigncdValucInfoLcn給出長度,簽章信息數(shù)據(jù)結(jié)構(gòu)定義應(yīng)符合B.5的規(guī)定參數(shù)intSEF_GetScalInfo(constintiRconstunsignedchar*puchScalData,constintiScalDataSEALINFO*pSealInfo,in章人證書等信息。至少應(yīng)支持GB/T385DER編碼的印章數(shù)據(jù)結(jié)構(gòu)體印章數(shù)據(jù)結(jié)構(gòu)體長度印章數(shù)據(jù)版本印章信息數(shù)據(jù)結(jié)構(gòu)體,當(dāng)為NULL時,通過piSealInfoLen給出長度,印章數(shù)據(jù)結(jié)構(gòu)定義應(yīng)符合B.6的規(guī)定印章數(shù)據(jù)結(jié)構(gòu)體長度返回值成功函數(shù)原型intSeF_GetEmMessage(cons功能描述根據(jù)錯誤代碼獲取錯誤信息。參數(shù)iErrCode[in]調(diào)用上一次接口返問的錯誤代碼puchErrMessage[in/outlUTF-8編碼的錯誤信息,當(dāng)為piEnMessageLen給出長度返回值SEF_SuC(ESS成功7.2綜合接口函數(shù)原型intSEESeaSignByPosfon(consRequcsTmconstcharXpchPdleNanic,ecistmTleLconstunsignedchar*puchFileDala,constintconsPOSITIONSEALSIGNINFO*pPositionSealSgnIeonstiniPositionSealSignInfoListLen,conconstunsignedchar*puchconstintiOutFileDaunsignedchar*puchOutFileData,inb功能描述根據(jù)簽章位置參數(shù)對文件進行簽章,其中印章及印章的位置由調(diào)用方設(shè)定,坐標(biāo)以左上角為原點,坐標(biāo)值宜采用比率,即坐標(biāo)位置與整個頁面高度/寬度的百分比。pchFileNamc[in7UTF-8編碼的文件名2:簽章后再添加消息簽名方式鎖定。puchFileData[in]文件二進制數(shù)據(jù)流或者UTF-8編碼的數(shù)據(jù)地iFileDataLen[in]數(shù)據(jù)電文長度返回值pPositionScalSignInfoList[iPositionScalSignInfoListiOutFileDatatPype[用戶ID,分散式用章時可為NULL,如果是集外部應(yīng)用ID,當(dāng)有多個外部應(yīng)用時可區(qū)分不同外部應(yīng)用,適用于集中式簽章定位簽章印章信息列表,定位簽章印章信息數(shù)據(jù)結(jié)構(gòu)定義應(yīng)符合B.7的規(guī)定定位簽章印章信息列表數(shù)組個數(shù)認(rèn)證類型,認(rèn)證數(shù)據(jù)認(rèn)證數(shù)據(jù)長度需長度成功函數(shù)原型intSEFScaSgnQnKcyoras(coconstcharX(pchUserHD),consconstKEYWORDSEALSIGNINFO*pKcyWordSealSconstintiKeyWordScalInfoListLcn,consticonstumsignedchar*puchAuthValue,constintiAutbValucLen,unsignedchar*puchOutFileData,int*piOutFileDauaLen);功能描述給定關(guān)鍵字,加蓋印章到關(guān)鍵字所在位置。當(dāng)有多個關(guān)鍵字時,可指定加蓋第幾個關(guān)鍵字,默認(rèn)加蓋所有關(guān)鍵字參數(shù)iRequestTime[in]時間值,為當(dāng)前時間的毫pchFileNamc[in]UTF-8編碼的文件名iFileLock[in]是否鎖定文件;0:不鎖定;1:簽章方式鎖定;2:簽章后再添加消息簽名方式鎖定。puchFilcData[in]文件二進制數(shù)據(jù)流或者UTF-8編碼的數(shù)據(jù)地iFileDataLen[in]數(shù)據(jù)電文長度pchUscrID[in]用戶ID,分散式用章時可為NULL,如果是集pKeyWordScalSignInfoList[puchOutFileData[in/opiOutFileDataLen[in/o返回值成功函數(shù)原型intSEF_SealSignOnCrosspages(constintiRequestTime,constunsignedchar*pconstPAGECROSSSEALSIGNINFO*pPageCrossScalInfoList,constintiPageCrossScalInfoListLen,constintiAutconstunsigncdchar*puchunsignedchar*puchOutFileData,intpchUserID[in]用戶ID,分散式用章時可為NULL,如果是集返回值pPagcCrossScalSignInfoList[iPagcCrossSealSignIiOutFileDataLcn[in/out]騎縫簽章印章信息列表,騎縫章印章信息數(shù)據(jù)結(jié)構(gòu)定義應(yīng)符合B.9的規(guī)定騎縫簽章印章信息列表數(shù)據(jù)長度認(rèn)證類型,0:無認(rèn)證;1:token認(rèn)證;2:簽名值認(rèn)證數(shù)據(jù)長度出數(shù)據(jù)地址,具體根據(jù)入?yún)OutFilcDataTyp出長度輸出數(shù)據(jù)長度成功錯誤碼7.2.4文件添加消息簽名函數(shù)原型功能描述參數(shù)intSEFCotSn(cconstinjlcLock,consFiconstmnugacdchaconstchachUserIstconstinAnyp對文佳添加消息簽名,義作可以被鎖定簽名,也可以不被鎖定簽名。如果使用SM2,消息簽名數(shù)據(jù)應(yīng)符合GB/T35275—2017中第8章規(guī)定的簽名數(shù)據(jù)類型。UTF-8編碼的文件名文件二進制數(shù)據(jù)流或者UTF-8編碼的數(shù)據(jù)地數(shù)據(jù)電文長度用戶ID,分散式用章時可為NULL,如果是集外部應(yīng)用ID,當(dāng)有多個外部應(yīng)用時可區(qū)分不同外部應(yīng)用,適用于集中式簽章證書ID認(rèn)證類型,0:無認(rèn)證;1:token認(rèn)證;2:簽名值認(rèn)證數(shù)據(jù)認(rèn)證數(shù)據(jù)長度puchOutFileData[in/opiOutFileDataLen[in/ointSEF_AddAnnot(constconstintiFileDataType,constunsignedcconstintiFileDataLen,constANNOTDATAINFO*pAnnotDataInfoList,constintiAnnotDataInfoListLen,constintiOutFileDataType,unsignedchar*puchOutFileData,int*piOutFileDpAnnotDataInfoList[puchOutFileData[in/opiOutFilcDataLen[in/constchar*pchFileName,constconstunsignedchar*puchFileData,constintiFiFILEVERIFYINFO*pFileVerifyInfo,int*piFileVerifypFileVerifyInfo[in/oconstchar*pchFileName,constconstunsignedchar*puchFilcData,constFILEVERIFYINFO*pFileVerifyInfo,int*piFileVerifyInfoLen);pFileVerifyInfo[in/opiFileVcrifyInfoLen[in/oconstintiFileDataType,constunsignedchar*pucconstchar*pchFileName,constconstunsignedchar*puchFileData,constintiVERIFYSIGNINFO*pVerifySignInfo,int*piVerifySignInpVerifySignInfo[in/oupiVerifySignInfoLen[in/o為NULL時,通過piVerifySignInfoLen給出intSEF_FileToImage(coconstintiFileDataType,constunsignedchar*pucPAGEIMAGEINFO*pPageImageInfoList,int*piPageImageInfpPagclmagcInfoList[in/opiPageImageInfoListpiPagcImageInfoListLen給出長度intSEF_VerifySignedFile(constintiRequestTime,constconstintiFilcDataTypc,Lcn,FILEVERIFYINFO*pFileVerifyInfo,int*piFileVeripFileVerifyInfo[in/opiFileVerifyInfoLen[in/o文件二進制數(shù)據(jù)流或者UTF-8編碼的數(shù)據(jù)地錯誤碼用戶印章信息JSON報文結(jié)構(gòu)見表A.1。自定義類型是印章ID是是是印章版本表A.2印章數(shù)據(jù)信息JSON報文結(jié)構(gòu)白定義類型是是印章當(dāng)前狀態(tài)是印章版本用戶證書信息JSON報文結(jié)構(gòu)見表A.3。白定義類型是是是簽章信息JSON報文結(jié)構(gòu)見表A.4。自定義類型是是是是否是Basc64編碼的簽章人證書,如果簽名使用SM2算法,應(yīng)符合GB/F20518的規(guī)定是S否Basc?4編碼的時間截,應(yīng)符合GB/T20520的自定義類型型印章標(biāo),對應(yīng)GB/T38540的csID是印章版本是是印章類型是UTT-8編碼的印章名稱是:證書;2:證書雜湊值是是是是是表A.5印章信息JSON報文結(jié)構(gòu)(續(xù))自定義類型是簽名算法OID標(biāo)識,是是印章圖像類型,支持“PNG”“BMP”“JPG”是印章圖像的高度,單位毫米是印章圖像的寬度,單位毫米A.6定位簽章印章信息JSON報文結(jié)構(gòu)定位簽章印章信息JSON報文結(jié)構(gòu)見表A.6。自定義類型是印章標(biāo)識是文件頁碼,頁碼計數(shù)從0開始是是印模左上角對應(yīng)的x坐標(biāo)與頁面寬度的比率是印模左上角對應(yīng)的y坐標(biāo)與頁面高度的比率關(guān)鍵字簽章印章信息JSON報文結(jié)構(gòu)見表A.7。自定義類型是是印章ID是騎縫章印章信息JSON報文結(jié)構(gòu)見表A.8。自定義類型是1:蓋;0:不蓋是印章標(biāo)識否否章左上角對應(yīng)的x坐標(biāo)與頁面寬度的比率,manSeal為1時必選否是是率企驗縫章印模圖片所能覆蓋的頁數(shù)(-1默A.9注釋數(shù)據(jù)信息JSON報文結(jié)構(gòu)白定義類型參數(shù)名稱是明度50%;1:普通注釋。添加到指定頁面指定位置,不透明是注釋數(shù)據(jù)類型,0;紋文字;1:圖片是dataType=0是表示文字注釋數(shù)據(jù),UTF-8否否印模左上角對應(yīng)的x坐標(biāo)與頁面寬度的比否印模左上角對應(yīng)的y坐標(biāo)與頁面高度的比否否A.10文件驗證結(jié)果JSON報文結(jié)構(gòu)文件驗證結(jié)果JSON報文結(jié)構(gòu)見表A.10。表A.10文件驗證結(jié)果JSON報文結(jié)構(gòu)自定義類型是失?。?:文件未簽署是是是簽章/消息簽名驗證結(jié)果結(jié)構(gòu)體,見表A.11簽章/消息簽名驗證結(jié)果JSON報文結(jié)構(gòu)見表A.11。表A.11簽章/消息簽名驗證結(jié)果JSON報自定義類型是簽章/簽名索引是頁面索引列表,如果一個印章同時加蓋在多返回-1(因為騎縫章默認(rèn)加蓋所有頁面)是是是是是頁面圖像信息JSON報文結(jié)構(gòu)見表A.12。自定義類型是頁面索引,0為起始頁是是是數(shù)字證書最大長度印章數(shù)據(jù)最大長度typedefstructSEF_USERS印章ID—對印章狀態(tài)要求,0:未知;1:有效;2:印章版本typedefstructSEF_SEALDunsignedchar印章當(dāng)前狀態(tài),印章版本印章數(shù)據(jù)長度typedefstructSEF_USERCtypedefstructSEF_SIGNEDVAunsignedcharunsignedcharunsignedchar電子印章數(shù)據(jù)長度原文雜湊值二進制數(shù)據(jù)原文雜湊數(shù)據(jù)長度DER編碼的簽章人證書,如果簽名使用SM2算原文屬性信息長度DER編碼的時間戳,應(yīng)符合GB/T20520時間微數(shù)據(jù)長度typedefstructSEF_Sunsignedcharb)數(shù)據(jù)項描述見表B.6表B.6印章信息數(shù)據(jù)結(jié)構(gòu)參數(shù)說明印章標(biāo)識,對應(yīng)GB/T38540的csID印章版本印章類型三應(yīng)符合GB/T338540的規(guī)定DE碼的簽章者證第列表信息器證書列表信息印章圖像二進制數(shù)據(jù)印章圖像數(shù)據(jù)長度印章圖像類型,支持“PNG”“BMP”“JPG”印章圖像的高度,單位毫米印章圖像的寬度,單位毫米B.7定位簽章印章信息數(shù)據(jù)結(jié)構(gòu)a)類型定義typedefstructSEF_POSITIONSEALSIGNINFO{}POSITIONSEALSIGNINFO,印章標(biāo)識文件頁碼,頁碼計數(shù)從0開始印章加蓋總頁數(shù)(從pageIndex開始簽章),-1表示所有頁 印模左上角對應(yīng)的x坐標(biāo)與頁面寬度的比率印模左上角對應(yīng)的y坐標(biāo)與頁面高度的比率typedefstructSEF_KEYWORDSEALSIGNINFO{charkeyWord[BUF_SIZE];intpos[BUF_SIintposNum}KEYWORDSEALSIGNINF印章ID 0:所有的關(guān)鍵字;X:從前向后找第X個關(guān)鍵字;關(guān)鍵字位置數(shù)目typedefstructSEF_PAGECROSSSEALSIGNINFO{char}PAGECROSSSEALSIGNINFO,*數(shù)據(jù)項印章標(biāo)識個騎縫意印權(quán)圖片所能覆蓋的領(lǐng)數(shù)上技示覆蓋所有頁typedefstrueLSEF_ANNOTDATAINFO{b)數(shù)據(jù)項描述見表B.100:水印注釋,注釋信息透明度50%;1:普通注釋,不透明注釋數(shù)據(jù)類型,0:文字;1:圖片dataType=0是表示文字注釋數(shù)據(jù),UTF-8編碼;dataType=1時,表示二進制的圖片數(shù)據(jù)typedefstructSEF_FILEVERIVERIFYSIGNINFO*signInfo錯誤消息,與resultCode對應(yīng)的文字描簽章/簽名索引頁面索引列表,如果一個印章同時加蓋在多頁上,應(yīng)返回所有頁面,如[0,1,2…],騎縫章返回-1(因為騎縫章默認(rèn)加蓋所有頁面)簽章或者簽名格式類型,0:未知;1:GB/T38540;2:GB/T35275;3;GM/T0031;unsigncdchar*頁面索引,0為起始頁頁面圖像二進制數(shù)據(jù)頁面圖像數(shù)據(jù)長度"providerName":"goldenr2fwJ0m9E8NYzWKVZvdVtaUgWvsds}{"resultMcssagc":"成功","sealName":"測試印章1","sealName":"測試印章2""status":1.]{r2fwJOm9E8NYzWKVZvdVtaUgWvsdsh"pageIndex":0,//從第0頁開始,連續(xù)蓋3頁{"pageIndex":10,//從第10頁開始,連續(xù)蓋2頁}響應(yīng)數(shù)據(jù)JSON樣例:"resultMessage":"成功","outFileData":"signSuccess/13454546charpchProviderName[BUF_SIZE]={0};intiProviderNameLen=BUF_SIZE;charpchProviderCompany[BUF_SIZE]={0};intiProviderCompanyLen=BUF_SIZE;charpchProviderVersion[BUF_SIZE]={0};intiVersionLecharpchProviderExtend[BUF_intiExtendLen=BUF_SIZE;intrv=SEF_GetProviderInfo(pchProviderName,&iProviderNameLen,pchProviderC&iProviderCompanyLen,pchProviderVersion,&iProviderVersionLen,pchP

溫馨提示

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

最新文檔

評論

0/150

提交評論