甘肅省公共資源交易數(shù)字證書CA互認(rèn)共享標(biāo)準(zhǔn)規(guī)范_第1頁
甘肅省公共資源交易數(shù)字證書CA互認(rèn)共享標(biāo)準(zhǔn)規(guī)范_第2頁
甘肅省公共資源交易數(shù)字證書CA互認(rèn)共享標(biāo)準(zhǔn)規(guī)范_第3頁
甘肅省公共資源交易數(shù)字證書CA互認(rèn)共享標(biāo)準(zhǔn)規(guī)范_第4頁
甘肅省公共資源交易數(shù)字證書CA互認(rèn)共享標(biāo)準(zhǔn)規(guī)范_第5頁
已閱讀5頁,還剩63頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

甘肅省公共資源交易數(shù)字證書(CA)

互認(rèn)共享標(biāo)準(zhǔn)規(guī)范

目錄

1.數(shù)字證書介質(zhì)(USBKey)兼容互認(rèn)接口技術(shù)標(biāo)準(zhǔn)錯誤!未

定義書簽。

1.1.簡介......................錯誤!未定義書簽。

1.2.算法標(biāo)識..................錯誤!未定義書簽。

1.3.數(shù)據(jù)交換結(jié)構(gòu)..............錯誤!未定義書簽。

1.4.SM2簽名時計算Z值的操作流程和相關(guān)擴(kuò)展錯誤!

未定義書簽。

2.數(shù)字證書兼容互認(rèn)接口技術(shù)標(biāo)準(zhǔn)…?….錯誤!未定義書簽。

2.1.范圍......................錯誤!未定義書簽。

2.2.應(yīng)用集成目標(biāo)..............錯誤!未定義書簽。

2.3.應(yīng)用集成要求..............錯誤!未定義書簽。

2.4.應(yīng)用集成內(nèi)容..............錯誤!未定義書簽。

2.5.數(shù)字證書兼容互認(rèn)應(yīng)用接口規(guī)范錯誤!未定義書簽。

2.5.1.B/S客戶端接口.......錯誤!未定義書簽。

2.5.2.C/S客戶端接口.......錯誤!未定義書簽。

2.53服務(wù)端接口.........錯誤!未定義書簽。

2.6.交易系統(tǒng)接入CA互聯(lián)互通流程錯誤!未定義書簽。

2.7.CA機(jī)構(gòu)接入CA互聯(lián)互通流程錯誤!未定義書簽。

3.電子簽章兼容互認(rèn)動態(tài)鏈接庫....錯誤!未定義書簽。

3.1.電子簽章驗證結(jié)果規(guī)范......錯誤!未定義書簽。

3.2.電子簽章互通標(biāo)準(zhǔn)接口定義.….錯誤!未定義書簽。

3.2.1.讀取標(biāo)準(zhǔn)印章數(shù)據(jù)....錯誤!未定義書簽。

3.2.2.讀取標(biāo)準(zhǔn)印章列表....錯誤!未定義書簽。

3.2.3.讀取具體標(biāo)準(zhǔn)印章數(shù)據(jù)..錯誤!未定義書簽。

3.3.電子印章數(shù)據(jù)格式..........錯誤!未定義書簽。

3.3.1.電子印章數(shù)據(jù).........錯誤!未定義書簽。

3.3.2.印章信息.............錯誤!未定義書簽。

3.3.3.印章頭信息...........錯誤!未定義書簽。

3.3.4.印章屬性信息.........錯誤!未定義書簽。

3.3.5.印章圖片信息.........錯誤:未定義書簽。

3.3.6.印章簽名信息.........錯誤!未定義書簽。

1.數(shù)字證書介質(zhì)(USBKey)兼容互認(rèn)接口技術(shù)標(biāo)準(zhǔn)

1.1.簡介

本規(guī)范是為同時兼容存量舊介質(zhì)和新介質(zhì)而基于CSP規(guī)范

擴(kuò)展,主要針對USBKey在國密系列(SM系列)算法上的相

關(guān)接口標(biāo)準(zhǔn)規(guī)范進(jìn)行說明,國際系列(RSA相關(guān))算法上的相

關(guān)標(biāo)準(zhǔn)規(guī)范完全按照國際CSP及相關(guān)標(biāo)準(zhǔn),本文不再贅述。

1.2.算法標(biāo)識

(一)SM1算法

標(biāo)識符值

ALG_SID_SM1IF

CALG_SM1(ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_BLOCK|

ALG_SID_SM1)

(二)SM2算法

標(biāo)識符值

ALG_TYPE_E(10?9)

CC

ALG_SID_ECC0

_ANY

ALG_SID_ECC1

_SM2

CALG.SM2(ALG_CLASS_ANY|ALG_TYPE_ECC|

ALG_SID_ECC_SM2)

CALG_SM2_SI(ALG_CLASS_SIGNATURE|ALG_TYPE_ECC|

GNATUREALG_SID_ECC_SM2)

CALG_SM2_E(ALG_CLASS_KEY_EXCHANGE|ALG_TYPE_ECC|

XCHANGEALG_SID_ECC_SM2)

CALG_SM2_E(ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_ECC|

NCRYPTALG_SID_ECC_SM2)

(三)SM3算法

標(biāo)識符值

ALG_SID_SM30x41

CALG_SM3(ALG_CLASS_HASH|ALG_TYPE_ANY|

ALG_SID_SM3)

(四)SM4

標(biāo)識符值

ALG_SID_SM420

CALG_SM4(ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_BLOCK|

ALG_SID_SM4)

13數(shù)據(jù)交換結(jié)構(gòu)

所有SM2算法相關(guān)數(shù)據(jù)均使用大端序,包括公鑰、簽名值、

密文。

(一)預(yù)定義宏

標(biāo)識符值

ECC_MAX_MODULUS_BITS256

_LEN

ECC_MAX_XCOORDINATE_256

BITS_LEN

ECC_MAX_YCOORDINATE_256

BITS_LEN

(二)SM2私鑰結(jié)構(gòu)

typedefstructStruct_ECCPRIVATEKEYBLOB

ULONGAlgID;

ULONGBitLen;

BYTE

PrivateKey[ECC_MAX_MODULUS_BITS_LEN/8];

JECCPRIVATEKEYBLOB,*PECCPRIVATEKEYBLOB;

該結(jié)構(gòu)的字段具有如下含義:

AlgID算法標(biāo)識號

值為

CALG_SM2_EXCHANGE

CALG_SM2_ENCRYPT

CALG_SM2_SIGNATURE

之一

BitLen模數(shù)的實際長度

PrivateKey[]私鑰256位數(shù)據(jù)

(三)SM2公鑰結(jié)構(gòu)

typedefstructStruct_ECCPUBLICKEYBLOB

{

ULONGAlgID;

ULONGBitLen;

BYTE

XCoordinate[ECC_MAX_XCOORDINATE_BITS_L

EN/8];

BYTE

YCoordinate[ECC_MAX_YCOORDINATE_BITS_L

EN/8];

JECCPUBLICKEYBLOB,*PECCPUBLICKEYBLOB;

該結(jié)構(gòu)的字段具有如下含義:

AlgID算法標(biāo)識號

值為

CALG_SM2_EXCHANGE

CALG_SM2_ENCRYPT

CALG_SM2_SIGNATURE

之一

BitLen模數(shù)的實際長度

XCoordinate[]公鑰曲線X坐標(biāo)

YCoordinate[]公鑰曲線Y坐標(biāo)

(四)SM2簽名傳出傳入結(jié)構(gòu)

typedefstructStruct_ECCSIGNATUREBLOB

{

BYTEr[ECC_MAX_XC00RDINATE_BITS_LEN/8];

BYTEs[ECC_MAX_YCOORDINATE_BITS_LEN/8];

}ECCSIGNATUREBLOB,*PECCSIGNATUREBLOB;

該結(jié)構(gòu)的字段具有如下含義:

r[]簽名值第一部分,參見SM2簽名算法

規(guī)范

s[]簽名值第二部分,參見SM2簽名算法

規(guī)范

(五)SM2密文傳出傳入結(jié)構(gòu)

typedefstructStruct_ECCCIPHERBLOB

BYTE

XCoordinate[ECC_MAX_XCOORDINATE_BITS_L

EN/8];

BYTE

YCoordinate[ECC_MAX_XCOORDINATE_BITS_L

EN/8];

BYTEHASH[32];

BYTECipher[l];

}ECCCIPHERBLOB,*PECCCIPHERBLOB;

該結(jié)構(gòu)的字段具有如下含義:

XCoordinate加密曲線X坐標(biāo),參見SM2加密算法

規(guī)范

^Coordinate加密曲線Y坐標(biāo),參見SM2加密算法

規(guī)范

HASH口SM3(X坐標(biāo)|原文|Y坐標(biāo)),參見SM2

加密算法規(guī)范

Cipher[]密文數(shù)據(jù),參見SM2加密算法規(guī)范

(六)SM2私鑰導(dǎo)出導(dǎo)入結(jié)構(gòu)

struct_ERHeader

BLOBHEADERblobheader;

ECCPUBLICKEYBLOBsm2PubKey;

ECCPRIVATEKEYBLOBsm2PriKey;

);

該結(jié)構(gòu)的字段具有如下含義:

blobheaderPRIVATEKEYBLOB該結(jié)構(gòu)的

aiKeyAlg的值為CALG.SM2

sm2PubKey該結(jié)構(gòu)的AligID的值:

如果是簽名密鑰對則為

CALG_SM2_SIGNATURE

如果密鑰交換的則為

CALG_SM2_EXCHANGE

sm2PriKey該結(jié)構(gòu)的AligID的值:

如果是簽名密鑰對則為

CALG_SM2_SIGNATURE

如果密鑰交換的則為

CALG_SM2_EXCHANGE

(七)SM2公鑰導(dǎo)出導(dǎo)入結(jié)構(gòu)

struct_PHeader

(

BLOBHEADERblobheader;

ECCPUBLICKEYBLOBsm2PubKey;

);

該結(jié)構(gòu)的字段具有如下含義:

blobheaderPUBLICKEYBLOB該結(jié)構(gòu)aiKeyAlg

的值為CALG_SM2

sm2PubKey該結(jié)構(gòu)的AligID的值:

如果是簽名密鑰對則為

CALG_SM2_SIGNATURE

如果密鑰交換的則為

CALG_SM2_EXCHANGE

(A)密文導(dǎo)入SM私鑰方法:

首先,導(dǎo)入用非對稱密鑰(通常是簽名密鑰對)加密的對

稱密鑰,采用SIMPLEBLOB

BLOBHEADERblobheader;〃參考下邊的BLOGHEADER

ALGIDalg;〃如果該對稱密鑰是被SM2公鑰

加密,則此處的alg為CALG_SM2_EXCHANGE,如果是被RSA

公鑰加密,則alg為CALG_RSA_KEYX;

BYTEencryptedKey[];〃如果該對稱密鑰是被SM2公鑰

加密,則參考本文SM2密文結(jié)構(gòu);如果是被RSA公鑰加密,

則為微軟RSA密文結(jié)構(gòu)

ion=CUR_BLOB_VERSION;

=SIMPLEBLOB;

ved=0;

Alg=algid;//對稱密鑰的算法SM1標(biāo)識為

CALG.SM1,SM4標(biāo)識為CALG_SM4其他采用微軟默認(rèn)標(biāo)識

然后用上一步導(dǎo)入的對稱密鑰,導(dǎo)入密文的SM2密鑰,采

用PRIVATEKEYBLOB

如果導(dǎo)入的是SM2密鑰對,參考定義的(六)中SM2密

鑰導(dǎo)入結(jié)構(gòu),具體如下:

typedefstruct_ERHeader〃用于導(dǎo)出導(dǎo)入SM2的私鑰

BLOBHEADERblobheader;//PRIVATEKEYBLOB

ECCPUBLICKEYBLOBsm2PubKey;

ECCPRIVATEKEYBLOBsm2PriKey;

}ECCPRIKEYHEADER,*PECCPRIKEYHEADER;

其中:

(0)blobheader

=PRIVATEKEYBLOB;

ion=CUR_BLOB_VERSION;

ved=0;

Alg=CALG_SM2_EXCHANGE;

//CALG_SM2_EXCHANGE為加密密鑰對;

CALG_SM2_SIGNATURE為簽名密鑰對(很少用)

(1)ECCPRIVATEKEYBLOB

typedefstructStruct_ECCPRIVATEKEYBLOB

{

ULONGAlgID;〃算法標(biāo)識號

CALG_SM2_EXCHANGE/CALG_SM2_SIGNATURE

ULONGBitLen;〃模數(shù)的實際位長度

BYTE

PrivateKeyLECC_MAX_MODULUS_BlTS_LEN/8J;〃該結(jié)

構(gòu)的私鑰部分為被對稱密鑰加密的32字節(jié)密文

}ECCPRIVATEKEYBLOB,

*PECCPRIVATEKEYBLOB;

(2)ECCPUBLICKEYBLOB

typedefstructStruct_ECCPUBLICKEYBLOB

{

ULONGAlgID;〃算法標(biāo)識號

CALG_SM2_EXCHANGE/CALG_SM2_SIGNATURE

ULONGBitLen;〃模數(shù)的實際位長度

BYTE

XCoordinate[ECC_MAX_XCOORDINATE_BITS_LEN/8];//

曲線上點的X坐標(biāo)

BYTE

YCoordinate[ECC_MAX_YCOORDINATE_BITS_LEN/8];//

曲線上點的Y坐標(biāo)

}ECCPUBLICKEYBLOB,*PECCPUBLICKEYBLOB;

1.4.SM2簽名時計算Z值的操作流程和相關(guān)擴(kuò)展

CSP在進(jìn)行SM2簽名時,如果未設(shè)置與Z值計算有關(guān)的

UserID和公鑰時,簽名不計算Z值。

以下部分可選擇實現(xiàn)。

1.通過CryptSetHashParam方法實現(xiàn)三個擴(kuò)展

1)使用HP_USERID0x101設(shè)置UserID。

例:

CryptSetHashParam(hHash,HP_USERID,

(PBYTE)pbUserlD,0);

//pbUserlD為16字節(jié)長的UserID

2)使用HP_SM2_PUBLICKEY0x102設(shè)置公鑰,通過傳

入ECCPUBLICKEYBLOB結(jié)構(gòu)實現(xiàn)。

例:

CryptSetHashParam(hHash,HP_SM2_PUBLICKEY_H,(PB

YTE)&EccPubLickeyBlob,0);

//EccPubLickeyBlob為ECCPUBLICKEYBLOB結(jié)構(gòu)

3)使用HP_SM2_PUBLICKEY_H0x104設(shè)置公鑰,通過

傳入HCRYPTKEY句柄的實現(xiàn)。

例:

CryptSetHashParam(hHash,HP_SM2_PUBLICKEY_H,(PB

YTE)&hKey,0);

//hKey為HCRYPTKEY句柄

2.通過句柄設(shè)置公鑰時,句柄可以是其他容器中的密鑰,

且不管是簽名密鑰或加密密鑰,都可用于計算。

3.如果既通過結(jié)構(gòu)設(shè)置了公鑰,又通過句柄設(shè)置了公鑰,

則使用句柄設(shè)置的公鑰進(jìn)行計算。

4.如果未通過HP_SM2_PUBLICKEY或HP_SM2_PUB

LICKEY.H設(shè)置公鑰,不計算Z值。

5.如果這樣調(diào)用CryptSetHashParam(hHash,HP_SM2_PU

BLICKEY,NULL,0),則視為沒有設(shè)置。如果先前設(shè)置過,則

取消設(shè)置。

6.如果這樣調(diào)用CryptSe田ashParam(hHash,HP_SM2_PU

BLICKEY_H,NULL,0),則視為沒有設(shè)置。如果先前設(shè)置過,

則取消設(shè)置。

7.在已設(shè)置公鑰但未設(shè)置UserID的情況下,使用默認(rèn)Us

erlD“5678”計算。在設(shè)置了UserID的情況下,使用設(shè)置的Us

erlD計算Z值。

8.設(shè)置UserID時傳入NULL,應(yīng)報錯。

2.數(shù)字證書兼容互認(rèn)接口技術(shù)標(biāo)準(zhǔn)

2.1.范圍

本規(guī)范參照國家密碼管理局“公鑰密碼基礎(chǔ)設(shè)施應(yīng)用技術(shù)體

系''系列技術(shù)規(guī)范,結(jié)合系統(tǒng)業(yè)務(wù)特點,提出系統(tǒng)數(shù)字證書應(yīng)

用集成目標(biāo)、集成要求、集成內(nèi)容,定義統(tǒng)一的證書應(yīng)用接口,

并提供證書應(yīng)用接口的典型部署示例、登錄認(rèn)證流程示例和簽

名驗證流程示例等。

2.2.應(yīng)用集成目標(biāo)

1)遵循本規(guī)范要求新建或者修改的信息系統(tǒng),使用不同

CA機(jī)構(gòu)頒發(fā)的數(shù)字證書,實現(xiàn)數(shù)字證書的互通互認(rèn),并確保系

統(tǒng)訪問控制的高安全性和高可靠性;

2)對信息系統(tǒng)的重要操作環(huán)節(jié)和重要數(shù)據(jù)實現(xiàn)基于多CA

數(shù)字證書的數(shù)字簽名功能,保護(hù)數(shù)據(jù)的完整性,并為后期糾紛

處理及責(zé)任認(rèn)定提供合法電子證據(jù);

3)對信息系統(tǒng)的敏感信息實現(xiàn)支持多CA的數(shù)字證書的數(shù)

據(jù)加密功能,確保敏感信息在傳輸和存儲階段的安全性及多CA

支持。

2.3.應(yīng)用集成要求

在證書應(yīng)用集成時,應(yīng)根據(jù)應(yīng)用系統(tǒng)本身的業(yè)務(wù)特點和業(yè)

務(wù)需求,確定需要使用數(shù)字證書認(rèn)證的用戶及范圍、確定需要

加密、簽名的重要操作環(huán)節(jié)和數(shù)據(jù),具體集成要求如下:

1)對于具有操作行為責(zé)任認(rèn)定、證據(jù)保存需求的應(yīng)用系

統(tǒng),應(yīng)集成基于數(shù)字證書的數(shù)字簽名的功能;

2)對于具有數(shù)據(jù)加密和解密需求的信息系統(tǒng),應(yīng)集成基于

數(shù)字證書的信息加密、信息解密功能;

2.4.應(yīng)用集成內(nèi)容

應(yīng)用系統(tǒng)數(shù)字證書應(yīng)用集成內(nèi)容如下:

1)數(shù)字簽名和驗證

信息系統(tǒng)中關(guān)鍵業(yè)務(wù)數(shù)據(jù)和操作的數(shù)字簽名,應(yīng)滿足《電

子簽名法》以及其他相關(guān)政策法規(guī)規(guī)定的書面形式、原件形式

及文件保存等要求,至少應(yīng)包括數(shù)據(jù)原文、電子簽名、可信時

間等內(nèi)容,并可在需要時查詢、閱讀、下載、驗證,具備作為

電子證據(jù)的真實性、可靠性和可驗證性。

2)數(shù)據(jù)加密和解密

數(shù)據(jù)加密時應(yīng)采用對稱算法和非對稱算法相結(jié)合的方式,

既保障加密機(jī)制的安全性、密鑰分發(fā)的方便性,同時又提高了

加解密操作的效率。根據(jù)業(yè)務(wù)需求,可使用單個數(shù)字證書加密,

也可使用多個數(shù)字證書對數(shù)據(jù)共同加密,形成密文數(shù)據(jù)。

密文數(shù)據(jù)應(yīng)安全存儲在數(shù)據(jù)庫或磁盤上,待解密時間達(dá)到

后方可解密。數(shù)據(jù)解密時,須使用數(shù)字證書對應(yīng)的密碼設(shè)備或

證書介質(zhì)解密。如果證書介質(zhì)損壞或丟失,電子認(rèn)證服務(wù)機(jī)構(gòu)

應(yīng)在安全可控的前提下,為用戶及時提供密鑰恢復(fù)服務(wù)。

25數(shù)字證書兼容互認(rèn)應(yīng)用接口規(guī)范

數(shù)字證書兼容互認(rèn)應(yīng)用接口規(guī)范是應(yīng)用系統(tǒng)可直接調(diào)用的

應(yīng)用接口,分為B/S客戶端接口、C/S客戶端接口和服務(wù)端接口。

2.5.1.B/S客戶端接口

B/S客戶端接口是B/S客戶端應(yīng)用程序直接調(diào)用的接口,支

持主流操作系統(tǒng),支持IE、Chrome>Firefox等主流瀏覽器。支

持使用符合《數(shù)字證書介質(zhì)(USBKey)兼容互認(rèn)接口接口技術(shù)

標(biāo)準(zhǔn)》的數(shù)字證書介質(zhì)。支持符合國際RSA算法和國家密碼管

理局制定的SM2算法的數(shù)字證書。

2.5.1.L功能介紹

CertKitWinClient是一套用于Windows平臺下B/S客戶端的

證書應(yīng)用套件。由一組JS接口和客戶端組件組成。

CertKit支持的功能和特性如下:

1.證書應(yīng)用。如:基于證書的加密解密、簽名驗簽。

2.JS接口和客戶端組件支持多種瀏覽器,如:IE32/64位、

Chrome、Firefoxo

3.CertKit提供的功能均支持RSA和SM2證書。

CertKitWinClient提供了以下JS對象:

l.TCAo用于對CertKitWinClient提供配置,并提供了多個

常量值。

2.CertStoreo提供列舉證書的多種證書管理功能。

3.Certificateo證書對象,可用于獲取證書信息和部分證書操

作。

4.CertSeto證書集合,由一組證書對象組成的證書集合,包

含多個過濾方法,并提供了部分證書操作。

5.PKCS7o用于操作PKI體系中的PKCS7結(jié)構(gòu),同時作為

部分接口的返回值。

2.5.L2.接口說明

2.5J.2.1.TCA

2.5.L2.1.L概述

TCA對象用于配置CertKitWinClient,并提供了多個PKI相

關(guān)常量值。

2.5.1.2.L2,構(gòu)造方法

2.5.1.2.L3.成員方法

.1.4.常量

TCA提供多個常量值,可作為一些接口的參數(shù)使用。

用于表示算法的常量

1

2

4

3

1024

2048

用于表示密鑰用法的常量

alSignature

pudiation

cipherment

ncipherment

reement

rtSign

gn

herOnly

herOnly

ntCommitment

用于表示擴(kuò)展密鑰用法的常量

rAuth

tAuth

igning

Protection

EndSystem

Tunnel

User

tamping

igning

ertAAServerAuth

esponder

erPPP

erLAN

erver

lient

IKE

pAC

pWTP

cardlogon

.1.5.靜態(tài)方法

.1.5.1.TopESAConfigO

描述

此方法用于配置CertKitWinCliento

這個方法必須在調(diào)用其他對象和方法之前調(diào)用。

參數(shù)

返回值

true/false

.2.CertStore

.2.1.概述

CertStore提供了列舉證書的功能。

.2.2.構(gòu)造方法:

2.5?1?2?2.3.靜態(tài)方法:

.2.3.1.listAHCerts()

描述

用于列舉當(dāng)前系統(tǒng)中“個人”存儲區(qū)下的所有證書。

CertStore不會主動從“個人”存儲區(qū)以外讀取證書。

對于UKey或其他密碼設(shè)備中的證書,需要由廠商將

證書注冊到“個人”存儲區(qū)下。

參數(shù)

無。

返回值

CertSet類型。

.2.3.2.byName(name)

描述

獲取指定名字的CertStore對象

參數(shù)

nameString類型

返回值

CertStore類型。

2?5?1.2?2?3.3.byCertificate(cert)

描述

獲取指定證書所在的CertStore對象

參數(shù)

certCertificate類型

返回值

CertStore類型

.2.4.成員方法:

.2A.1.listCerts()

描述

獲取當(dāng)前CertStore下的證書

參數(shù)

返回值

CertSet對象

.3.CertSet

2.5.L2.3.1.概述

CertSet用于儲存一組Certificate對象,并提供了數(shù)個過濾

方法。

2.5.1.23.2.構(gòu)造方法

.3.2.1.CertSet(pkcs7)

描述

讀取PKCS7中的證書,并用其中的證書構(gòu)造CertSet

對象。

參數(shù)

pkcs7Base64編碼的PKCS7

2.5.1?2?3?2.2.CertSet(b64Certs)

描述

使用一個字符串?dāng)?shù)組構(gòu)造CertSet對象。

參數(shù)

b64Certs字符串?dāng)?shù)組,每一項都是Base64編碼后的證

書數(shù)據(jù)。

2.5?L.CertSet(certs)

描述

使用一個Certificate對象數(shù)組構(gòu)造CertSet對象。

參數(shù)

certs證書對象數(shù)組

.3.3.靜態(tài)方法

3.4.成員方法

2?5?L2?3.4.Lsize()

描述

獲取當(dāng)前CertSet對象中的證書數(shù)量。

參數(shù)

返回值

當(dāng)前CertSet對象中的證書數(shù)量。

3.4.2.get(idx)

描述

使用索引獲取證書

參數(shù)

idx指定索引

返回值

Certificate類型

2?5?1?2?3?4?3?encryptMessage(origin)

描述

使用當(dāng)前CertSet對象中的證書進(jìn)行加密

參數(shù)

origin字符串類型。原文。

返回值

字符串類型。加密后的密文。

3.4.4.forSign()

描述

過濾含有簽名用法的證書集合

參數(shù)

返回值

CertSet類型。其中的證書是當(dāng)前CertSet中含有簽名用

法的所有證書。

.3?4.5.forEncrypt()

描述

過濾含有加密用法的證書集合。

參數(shù)

返回值

CertSet類型。其中的證書是當(dāng)前CertSet中含有加密用

法的所有證書。

2.5?L.byKeyUsage(intKeyUsage)

描述

過濾含有指定密鑰用法的證書集合

參數(shù)

intKeyUsageint類型,用于指定密鑰用法。

取值可使用TCA中的密鑰用法常量組合得

出。

請參見TCA中的密鑰用法常量

返回值

CertSet類型。其中的證書是當(dāng)前CertSet中含有指定密

鑰用法的所有證書。

.3.4.7.byKeyUsage(strarrKeyUsage)

描述

過濾含有指定密鑰用法的證書集合

參數(shù)

strarrKeyUsage字符串?dāng)?shù)組,用于指定密鑰用法。

返回值

CertSet類型。其中的證書是當(dāng)前CertSet中含有指定密

鑰用法的所有證書。

3.4.8.byValidity()

描述

過濾在當(dāng)天有效的證書。

日期取自客戶端。

參數(shù)

返回值

CertSet類型。其中的證書是當(dāng)前CertSet中在當(dāng)天有效

的所有證書。

2?5?L2?3.4.9.byValidity(date)

描述

過濾在制定日期有效的證書。

日期由調(diào)用者傳入。

參數(shù)

datajs中的Date對象

返回值

CertSet類型。其中的證書是當(dāng)前CertSet中在指定日期

有效的所有證書。

.3.4.10.bylssuer(issuer)

描述

使用指定關(guān)鍵字,通過頒發(fā)者過濾證書。

參數(shù)

issuer字符串類型。

返回值

CertSet類型。其中的證書是當(dāng)前CertSet中使用指定關(guān)

鍵字過濾后的所有證書。

.3.4.11.bySubject(subject)

描述

使用指定關(guān)鍵字。通過主題過濾證書。

參數(shù)

subject字符串類型

返回值

CertSet類型。其中的證書是當(dāng)前CertSet中使用指定關(guān)

鍵字過濾后的所有證書。

.3.4.12.bySerialnumber(serial)

描述

使用指定關(guān)鍵字。通過序列號過濾證書。

請注意,此接口為精確匹配。

參數(shù)

serial字符串類型

返回值

CertSet類型。其中的證書是當(dāng)前CertSet中使用序列號

過濾后的證書。

2?5?L2.4.Certificate

2?5?L2?4.1.概述

Certificate用于表示一張證書,提供了多個方法用于獲取

證書信息,并提供了一些證書應(yīng)用的接口。

.4.2.構(gòu)造方法:

.4.2.1.Certificate(b64str)

描述

使用Base64證書數(shù)據(jù)構(gòu)造Certificate對象

參數(shù)

b64str字符串類型。Base64編碼后的證書數(shù)據(jù)

靜態(tài)方法

.4.3.用于獲取證書信息的成員方法

Certificate提供了多個用于獲取證書信息接口,這些接口均

無參數(shù)。

這些接口如下:

serialNumber()

issuer()

subject()

notBefore()

notAfter()

keyUsage()

extededKeyUsage()

crlUrl()

.4.4.用于證書應(yīng)用的成員方法

.4.4.1.signMessage(plaintext)

描述

使用證書對消息進(jìn)行簽名。

需要注意的是,簽名實際使用的是證書所對應(yīng)的私鑰。

如果你僅持有證書而沒有私鑰,此方法會報錯。

簽名結(jié)果為P7,包含原文。

參數(shù)

plaintext字符串類型。原文。

返回值

String類型,Base64編碼后的P7數(shù)據(jù),包含原文。

.4.4.2.signLogondata(plaintext)

描述

使用證書對消息進(jìn)行登錄的簽名,簽名時會在消息原

文前追加LOGONDATA:字符,驗簽時需要注意同步追加。

需要注意的是,簽名實際使用的是證書所對應(yīng)的私鑰。

如果你僅持有證書而沒有私鑰,此方法會報錯。

簽名結(jié)果為P7,包含原文。

參數(shù)

plaintext字符串類型。原文。

返回值

String類型,Base64編碼后的P7數(shù)據(jù),包含原文。

2.5?L.signMessage(plaintext,b)

描述

使用證書對消息進(jìn)行簽名。

需要注意的是,簽名實際使用的是證書所對應(yīng)的私鑰。

如果你僅持有證書而沒有私鑰,此方法會報錯。

簽名結(jié)果為P7,由調(diào)用者決定是否原文。

參數(shù)

plaintext字符串類型。原文。

bbool類型。true時,會輸出包含原文的P7簽名。

false時,會輸出不包含原文的P7簽名。

返回值

String類型,Base64編碼后的P7數(shù)據(jù)。

2.5.1?2.4?4.4.encryptMessage(origin)

描述

使用證書對消息進(jìn)行加密。

參數(shù)

origin

返回值

String類型,Base64編碼后的P7數(shù)據(jù)

2?5?1?2.4?4.5.toBase64()

描述

導(dǎo)出證書的Base64字符串

參數(shù)

返回值

證書的Base64字符串

.5.PKCS7

.5.1.概述

PKCS7用于操作PKI體系中的PKCS7數(shù)據(jù)結(jié)構(gòu)。

2.5A.2.5.2.構(gòu)造方法

.5.2.1.PKCS7(cms)

描述

使用Base64編碼后的P7數(shù)據(jù)構(gòu)造PKCS7對象

參數(shù)

cms字符串類型。Base64編碼后的數(shù)據(jù)結(jié)構(gòu)。

2?5?.靜態(tài)方法

.5.4.成員方法

2?5?1?2?5?4.LcontentMessage()

描述

獲取P7簽名中的原文信息。

請注意,如果當(dāng)前的PKCS7對象不是簽名P7,此方法

會報錯。

參數(shù)

返回值

字符串類型,P7簽名中的原文數(shù)據(jù)。

.5.4.2.verify()

描述

驗證P7簽名。

請注意,如果當(dāng)前的PKCS7對象不是簽名P7或P7中

不包含原文,此方法會報錯。

參數(shù)

返回值

如果驗證通過,則返回Certificate對象。

.5.43.toBase64()

描述

返回base64編碼的p7

參數(shù)

返回值

base64編碼的p7

.5.4.4.verify(plaintext)

描述

驗證P7簽名。原文信息由調(diào)用者指定

請注意,如果當(dāng)前的PKCS7對象不是簽名P7,此方法

會報錯。

參數(shù)

plaintext字符串類型。原文。

返回值

如果驗證通過,則返回Certificate對象

2?5?1?2.5?4.5.decryptMessage()

描述

解密數(shù)據(jù)。

請注意,如果當(dāng)前的PKCS7對象不是加密P7,此方法

會報錯。

參數(shù)

返回值

String類型。解密后的原文

2.5.2.C/S客戶端接口

2.5.2.1.功能介紹

iTrusPTA是應(yīng)用于Windows平臺下C/S客戶端的的證書應(yīng)

用套件,采用com技術(shù),產(chǎn)品形態(tài)為dll動態(tài)庫。

iTrusPTA依托于微軟CSP密碼體系規(guī)范,基于微軟

CryptoAPI開發(fā)和擴(kuò)展,同時支持符合國際RSA算法體系和國

家密碼管理局制定的SM2算法體系的數(shù)字證書。

iTrusPTA組■件層次結(jié)構(gòu)圖如下:

iTni^PTA

IVfirrnQnftCrvntnAPT

MicrcscftThirdSoft|INRKev

圖2.1

iTrusPTA基于CSP密碼體系規(guī)范,借助MicrosoftCryptoAPI

實現(xiàn),通過不同加密服務(wù)提供者,對各種證書軟硬件需求提供

靈活地支持。

2.5?22數(shù)據(jù)結(jié)構(gòu)說明

2.5.22L密鑰用法類型

說明:用于證書擴(kuò)展項〈密鑰用法〉的表述。

類型:枚舉

定義:

typedefenum_MIDLMIDL_itfLPTA_0000_0001

{KEY_USAGE_CRL_SIGN=0x2,

KEY_USAGE_CERT_SIGN=0x4,

KEY_USAGE_KEY_AGREEMENT=0x8,

KEY_USAGE_DATA_ENCIPHERMENT=0x10,

KEY_USAGE_KEY_ENCIPHERMENT=0x20,

KEY_USAGE_NON_REPUDIATION=0x40,

KEY_USAGE_DIGITAL_SIGNATURE=0x80

}KEY_USAGE_TYPE;

具體含義可參見RFC5280。

2?522?2.消息指示類型

說明:用于指示輸入/輸出消息編碼類型和內(nèi)容選項。

類型:枚舉

定義:

typedefenum_MIDLMIDL_itLPTA_0000_0002

{INPUT_BASE64=0x1,

INPUT_HEX=0x2,

OUTPUT_BASE64=0x4,

OUTPUT_HEX=0x8,

INNER.CONTENT=0x10,

PLAINTEXT_UTF8=0x20,

MIN.CERTSTORE=0x40,

MSG_BASE64=0x4,

MSG_HEX=0x8

}OPTION;

具體含義如下:

INPUT_BASE64:指示輸入的消息為base64編碼

INPUTHEX:指示輸入的消息為16進(jìn)制編碼

OUTPUT_BASE64:指示輸出的消息為base64編碼

OUTPUT.HEX:指示輸出的消息為16進(jìn)制編碼

INNER.CONTENT:指示PKCS7簽名結(jié)果需要包含明

PLAINTEXT.UTF8:指示明文為UTF8編碼格式字符串

MIN.CERTSTORE:指示消息的PKCS7簽名結(jié)果不含

證書鏈

MSG_BASE64:指示驗證簽名時輸入的明文為base64

編碼

MSG.HEX:指示驗證簽名時輸入的明文為16進(jìn)

制編碼

2?5?2?2.3.證書編碼類型

說明:用于指示證書的編碼類型。

類型:枚舉

定義:

typedefenum_MIDLMIDL_itf_PTA_0000_0003

{CERT_ENCODE_DER=0,

CERT_ENCODE_PEM=1,

CERT_ENCODE_BASE64=2

}CERT_ENCODING;

具體含義如下:

CERT_ENCODE_DER:指示證書為二進(jìn)制編碼

CERT_ENCODE_PEM:指示證書為pem編碼

CERT_ENCODE_BASE64:指示證書為base64編碼

2.5.23.接口說明

.1.ICertFilter

ICertFilter是證書過濾條件的設(shè)置接口,其本身不獨立工

作,它作為liltrusPTA的證書過濾屬性影響liltrusPTA的證書集

合屬性。

2.5.23.1.1.屬性

2?5?2?3?1.1.LSubject

類型:BSTR

說明:證書過濾的主題條件,支持正則表達(dá)式。

.1.1.2.Issuer

類型:BSTR

說明:證書過濾的頒發(fā)者條件,支持正則表達(dá)式。

2.5.2?3.1?1.3.SerialNumber

類型:BSTR

說明:證書過濾的序列號條件。

.1.4.CSP

類型:BSTR

說明:證書過濾的CSP條件。

2?5.2?3?L1.5.UseLocalMachineCertStore

類型:BOOL

說明:標(biāo)識是使用本機(jī)證書store還是使用當(dāng)前用戶證書

store的標(biāo)記。TRUE表示使用本機(jī)證書store,FALSE表示使用

當(dāng)前用戶證書storeo

.1.2.方法

.2.1.Clear

原型:HRESULTClear()

說明:用于清除已經(jīng)設(shè)置的過濾屬性條件,清除范圍包含

如下屬性:Subject、Issuer>SerialNumber和CSP。

輸入?yún)?shù):無

輸出參數(shù):無

返回值:無

.liltrusPTA

.1.liltrusPTA屬性

.1.1.Filter

類型:ICertFilter*

說明:證書過濾器。用于設(shè)置過濾證書的條件,只讀屬性

(本身不可改變,但其內(nèi)容可變)。

2?5?2?3?2?L2.MyCertificates

類型:ICerti行cates*

說明:當(dāng)前系統(tǒng)容器中個人證書集合,只讀屬性(本身不

可改變,但其內(nèi)容可變)。

.2.1.3.OtherCertificates

類型:ICertificates*

說明:當(dāng)前系統(tǒng)容器中其他人證書集合,只讀屬性(本身

不可改變,但其內(nèi)容可變)。

.2.1.4.CaCertificates

類型:ICertificates*

說明:當(dāng)前系統(tǒng)容器中中間證書頒發(fā)機(jī)構(gòu)證書集合,只讀

屬性(本身不可改變,但其內(nèi)容可變)。

2.5?2?3.2?1.5.RootCertificates

類型:ICerti仔cates*

說明:當(dāng)前系統(tǒng)容器中受信任根證書頒發(fā)機(jī)構(gòu)證書集合,

只讀屬性(本身不可改變,但其內(nèi)容可變)。

.2.1.6.Version

類型:BSTR

說明:文件版本號,只讀屬性。

2.5.2?3?2.1.7.LangCode

類型:BSTR

說明:語言代碼JEN”表示英語,其他表示中文。

.2.liltrusPTA方法

2?5.2?3.2.2.LDecryptMessage

原型:HRESULTDecryptMessage([in]BSTRp7msg,

[in,defaultvalue(1)]OPTIONopt,[out,retval]BSTR*m

Sg);

說明:解密PKCS7信封消息。

輸入?yún)?shù):p7msg待解密的消息

opt指示密文消息和輸出的明文消息的編碼格式,下述

值可聯(lián)合使用:

INPUT_BASE64表示密文消息為Base64編碼,

TNPUT_HEX表示密文消息為16進(jìn)制字符串,

OUTPUT_BASE64指示輸出的明文消息為Base64編碼,

OUTPUT_HEX指示輸出的明文消息為16進(jìn)制字符串

輸出參數(shù):無

返回值:明文消息。

2.S..2.VerifySignature

原型:HRESULTVerifySignature([in]BSTRmsg,[in]BSTR

sign,[in,defaultvalue(l)]OPTIONopt,[out,retval]ICertificate**

signer);

說明:驗證PKCS7簽名消息。

輸入?yún)?shù):msg消息明文,可選,當(dāng)PKCS7簽名消息內(nèi)

含明文,可不提供。

signPKCS7簽名消息

opt指示明文消息和P7簽名消息的編碼格式,下述值可聯(lián)

合使用:

MSG_BASE64表示明文消息為Base64編碼,

MSG_HEX表示明文消息為16進(jìn)制字符串,

PLAINTEXT_UTF8表示明文消息為UTF8編碼字符串,

INPUT_BASE64表示P7簽名消息為Base64編碼,

INPUT.HEX表示P7簽名消息為16進(jìn)制字符串

輸出參數(shù):無

返回值:簽名者證書。

2?5.2?3.3.【Certificate

2.5.2.33.1.屬性

2?5?2?3?3?1?1?CommonName

類型:BSTR

說明:證書的cn串,只讀屬性。

2?5?2?3.3?1.2.Subject

類型:BSTR

說明:證書主題名稱dn,只讀屬性。

2.5.2?.Issuer

類型:BSTR

說明:證書頒發(fā)者dn,只讀屬性。

2.5?2?3.3?1.4.SerialNumber

類型:BSTR

說明:證書序列號,只讀屬性。

3.1.5.ValidFrom

類型:DATE

說明:證書有效期開始時間,只讀屬性。

?3.L6.ValidTo

類型:DATE

說明:證書有效期結(jié)束時間,只讀屬性。

.3.1.7.keyUsage

類型:KEY_USAGE_TYPE

說明:證書密鑰用法,只讀屬性。

3.1.8.CSP

類型:BSTR

說明:證書所屬csp名稱,只讀屬性。

.3.1.9.KeyContainer

類型:BSTR

說明:證書密鑰容器名稱,只讀屬性。

2.5.2.33.2.方法

2.5.2?.CreateFromStream

原型:HRESULTCreateFromStream([in]BSTRstream);

說明:從流創(chuàng)建證書對象。

輸入?yún)?shù):stream證書字節(jié)流。

輸出參數(shù):無

返回值:無

3.2.2.GetEncodedCert

原型:HRESULTGetEncodedCert([in,defaultvalue(l)]CER

T_ENCODINGenc,[out,retval]BSTR*certEnc);

說明:獲取證書內(nèi)容串。

輸入?yún)?shù):enc證書內(nèi)容串編碼格式標(biāo)識

輸出參數(shù):無

返回值:證書內(nèi)容串。

3.2.3.SignMessage

原型:HRESULTSignMessage([in]BSTRmsg,[in,defaultva

lue(4)]OPTIONopt,[out,retval]BSTR*signout);

說明:PKCS7消息簽名。

輸入?yún)?shù):

msg待簽名消息

opt指示待簽名消息和簽名消息的編碼格式,下述值可聯(lián)

合使用:

INPUT_BASE64表示待簽名消息為Base64編碼,

INPUT_HEX表示待簽名消息為16進(jìn)制字符串,

PLAINTEXT_UTF8表示待簽名消息為UTF8編碼格式字符

串,

OUTPUT.BASE64指示簽名消息為Base64編碼,

OUTPUT_HEX指示簽名消息為16進(jìn)制字符串

輸出參數(shù):無

返回值:PKCS7消息

.4.Icertificates

.4.1.屬性

無自身屬性,繼承屬性參見微軟【Collection接口。

23.2.3.4.2.方法

.4.2.1.EncryptMessage

原型:HRESULTEncryptMessage([in]BSTRmsg,[in,defau

ltvalue(4)]OPTIONopt,[out,retval]BSTR*val);

說明:消息加密

輸入?yún)?shù):msg待加密消息

opt指示待加密消息和密文消息的編碼格式

輸出參數(shù):無

返回值:密文消息。

2.5.3.服務(wù)端接口

服務(wù)器端接口是供應(yīng)用系統(tǒng)服務(wù)器端程序直接調(diào)用的高級

接口,支持所有主流操作系統(tǒng),支持B/S和C/S等系統(tǒng)架構(gòu),

支持符合國際RSA算法和國家密碼管理局制定的SM2算法的

數(shù)字證書,可通過添加證書信任列表的方式實現(xiàn)不同電子認(rèn)證

服務(wù)機(jī)構(gòu)證書之間的交叉認(rèn)證和互信互認(rèn)。服務(wù)端接口使用

HTTP/HTTPS作為通訊接口協(xié)議,所有的請求都使用POST方

法,請求參數(shù)保存在POST表單域內(nèi)。

2.5.3.L互認(rèn)平臺API調(diào)用協(xié)議說明

2.5.3.L1.API調(diào)用協(xié)議詳解

互聯(lián)互通開放平臺(UAP)的API是基于HTTP協(xié)議來調(diào)

用的,開發(fā)者可以直接使用UAP提供的官方SDK及dem。(支

持多種語言,包含了請求的封裝,簽名加密,響應(yīng)解釋,性能

優(yōu)化等)來調(diào)用,也可以根據(jù)UAP的協(xié)議來自行封裝HTTP請

求進(jìn)行調(diào)用,以下主要是針對自行封裝HTTP請求進(jìn)行API調(diào)

用的原理進(jìn)行詳細(xì)解說。

2.5.3.L2,調(diào)用流程

使用官方SDK,Java和C#將自動完成以下封裝和解析過

程。

應(yīng)用系統(tǒng)可根據(jù)協(xié)議,按以下協(xié)議解析即可,根據(jù)UAP的

協(xié)議:填充參數(shù)>生成簽名>拼裝HTTP請求>發(fā)起HTTP

請求,得到HTTP響應(yīng)>解釋json結(jié)果,以下是大體的調(diào)用

過程示意圖:

服務(wù)端

(UAP)

平臺統(tǒng)一接口地址及公共參數(shù)

:82/uap/api/verify

公共參數(shù):

參數(shù)類是否必

參數(shù)名稱參數(shù)描述

型須

methodString是API接口名稱。

UAP分配給應(yīng)用的AppKeyo

這里要注意正式環(huán)境和沙箱

app_keyString是環(huán)境的AppKey是不同的(包

括AppSecret),使用時要注意

區(qū)分;

時間戳,格式為yyyy-MM-dd

HH:mm:ss,時區(qū)為GMT+8,

例如:2016-01-0112:00:00o

timestampString是

UAPAPI服務(wù)端允許客戶端

請求最大時間誤差為10分

鐘。

響應(yīng)格式。默認(rèn)為xml格式,

formatString否

可選值:xml,jsono

VString是API協(xié)議版本,可選值:1.0。

ign_metho簽名的摘要算法,可選值為:

String是

dhmaco

API輸入?yún)?shù)簽名結(jié)果,簽名

signString是

算法參照下面的介紹。

2?5?3.1.3.請求參數(shù)簽名算法

為了防止API調(diào)用過程中被黑客惡意篡改,調(diào)用任何一個

API都需要攜帶簽名,UAP服務(wù)端會根據(jù)請求參數(shù),對簽名進(jìn)

行驗證,簽名不合法的請求將會被拒絕。TOP目前支持的簽名

算法是HMAC:HMAC_MD5(sign_method=hmac),簽名大體過

程如下:

1)對所有API請求參數(shù)(包括公共參數(shù)而業(yè)務(wù)參數(shù),但

除去sign參數(shù)和byte口類型的參數(shù)),根據(jù)參數(shù)名稱的ASCII碼

表的順序排序。如:foo:1,bar:2,foo_bar:3,foobar:4排序后的順

序是bar:2,foo:l,foo_bar:3,foobar:4o

2)將排序好的參數(shù)名和參數(shù)值拼裝在一起,根據(jù)上面的

示例得到的結(jié)果為:bar2foo1foo_bar3foobar4。

3)把拼裝好的字符串采用utf-8編碼,使用簽名算法對編

碼后的字節(jié)流進(jìn)行摘要。如果使用MD5算法,則需要在拼裝的

字符串前后加上app的secret后,再進(jìn)行摘要,如:

md5(secret+bar2foo1foo_bar3foobar4+secret);如果使用

HMAC_MD5算法,則需要用app的secret初始化摘要算法后,

再進(jìn)行摘要,如:hmac_md5(bar2foo1foo_bar3foobar4)o

4)將摘要得到的字節(jié)流結(jié)果使用十六進(jìn)制表示,如:

hex(uhelloworldv.getBytes(uutf-8v))=

“68656c6c6F776F726c64”說明:HMAC_MD5是128位長

度的摘要算法,用16進(jìn)制表示,一個十六進(jìn)制的字符能表示4

個位,所以簽名后的字符串長度固定為32個十六進(jìn)制字符。

2.53.2.平臺API接口

2.5.32L簽名驗證接口

請求的業(yè)務(wù)參數(shù)

所有參數(shù)均采用UTF-8方式進(jìn)行

參數(shù)名稱說明

method接口名稱,指定為:y.verifypkcs7

to_sign簽名原文字符串

signeddata簽名值結(jié)果字符串

op_type操作內(nèi)容,如登陸簽名,標(biāo)識解密等

requestid客戶端請求流水號

返回值說明

返回值類Json格式數(shù)據(jù)

返回值(

“code":200,

“message":“操作成功”,

"requestid”:“2018-06-2913:16:470,

,'reponseidM:,"\

ndataH:{

“certCN":“企業(yè)證書”,

"entityName":”企業(yè)證書”,

ncaNumbern:n6043n,

nhexSerialNumbern:'781052dO52c13901

c5f4062d5c2491Of85a77b69”,

nnotAfter11:00,

,'notBcforc,':00,

unotAfterBjTimeStrn:"2019-10-15

15:51:33”,

MnotBeforeBjTimeStrn:n2018-10-15

15:51:33”,

McertBase64n:nMIID3zCCA4SgAwIBAg

IUeBBSOFLBOQHF9AYtXCSRD4Wne

2kwDAYIKoEczlUBg3UFADCBgzEL

MAkGA1UEBhMCQ04xQDA+BgNVB

AoMN1NpY2h1YW4gRGl

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論