版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、IEC62056技術(shù)文檔ASN.1語法簡(jiǎn)介深圳市航天泰瑞捷電子有限公司修訂記錄版本日期作者備注1。02012-5-23梁高強(qiáng)初版范圍:本文就IEC62056系列標(biāo)準(zhǔn)中涉及的ASN.1語法進(jìn)行簡(jiǎn)要概述,便于協(xié)助開發(fā)工程師閱讀、理解DLMS/COSEM通信協(xié)議。目錄1.ASN.1是什么52.ASN.1歷史53.應(yīng)用領(lǐng)域54.ASN.1語法75.ASN.1顯式值(Explict Value)76.ASN.1容器77.ASN.1修改器87.1. 可選(OPTIONAL)87.2. 默認(rèn)(DEFAULT)87.3. 選擇(CHOICE)88.ASN.1頭字節(jié)(tag)88.1. 類別位98.2. 結(jié)構(gòu)化
2、位98.3. 原始類型99.ASN.1長度編碼109.1. 定長方式109.1.1. 短編碼。109.1.2. 長編碼。119.2. 不定長方式1110.ASN.1的數(shù)據(jù)類型1110.1. ASN.1布爾類型1210.2. ASN.1整數(shù)類型1210.3. ASN.1位串類型1310.4. ASN.1八位位組串類型1310.5. 空類型1410.6. 對(duì)象標(biāo)識(shí)標(biāo)符類型1410.7. ASN.1序列和集合類型1410.8. ASN.1可打印字符串和IA5String類型1510.9. ASN.1世界協(xié)調(diào)時(shí)類型15ASN.1 語法簡(jiǎn)介1. ASN.1是什么ASN.1全稱為abstract synt
3、ax notation dot one ,抽象語法1(數(shù)字1被ISO加在ASN的后邊,是為了保持ASN的開放性,可以讓以后功能更加強(qiáng)大的ASN被命名為ASN.2等,但至今也沒有出現(xiàn)),是一種獨(dú)立于機(jī)器的描述語言,用于描述在網(wǎng)絡(luò)上傳遞的消息。通俗的來講,抽象語法就是協(xié)議采用ASN.1規(guī)范描述的描述文本,這里涉及到另一個(gè)語法:傳輸語法,就是實(shí)際通訊系統(tǒng)間的碼流。例如字母A為抽象語法,0X41為傳輸語法。2. ASN.1歷史開始于1982年,許多開發(fā)應(yīng)用層標(biāo)準(zhǔn)的人意識(shí)到他們面臨同一個(gè)問題:數(shù)據(jù)結(jié)構(gòu)變得越來越復(fù)雜,難以用預(yù)定的規(guī)程來編碼比特或字節(jié),ASN.1由此而生,它特別適合表示現(xiàn)代通信應(yīng)用中那些復(fù)
4、雜的、變化的及可擴(kuò)展的數(shù)據(jù)結(jié)構(gòu),它不是用一些表格,及一些固定的幀格式來描述的,而是用一種抽象語法語言來描述。這樣做的好處是,極大的提高了協(xié)議的抽象性和通用性,可擴(kuò)展性。3. 應(yīng)用領(lǐng)域在GSM系統(tǒng)中,空中接口上傳遞的補(bǔ)充業(yè)務(wù)內(nèi)容采用了ASN.1的BER編碼格式,其RRM模塊以及其他層3消息均采用ASN.1編碼。3G移動(dòng)系統(tǒng)使用ASN.1標(biāo)準(zhǔn)數(shù)據(jù)交換的第三代移動(dòng)通信網(wǎng)絡(luò)。這一系統(tǒng)基于UMTS(通用移動(dòng)通信系統(tǒng))標(biāo)準(zhǔn),其使用了ASN.1和分組編碼標(biāo)準(zhǔn)(PER)。在3GPP的層3消息體系中,使用ASN.1描述層3消息(包括Uu,Iub,Iur,Iu等接口的層3消息)使用ITU-T建議X.691的各種算
5、法進(jìn)行編解碼,如RRC消息采用UPER編碼格式。IP語音在通信領(lǐng)域中的另一個(gè)重要應(yīng)用是通過包轉(zhuǎn)換網(wǎng)絡(luò)(如因特網(wǎng))傳遞語音數(shù)據(jù)。多媒體數(shù)據(jù)信號(hào)編解碼器(CODEC)標(biāo)準(zhǔn)(H.323等等)基于ASN.1并且使用于分組編碼標(biāo)準(zhǔn)來獲取理想的數(shù)據(jù)傳輸速率。安全應(yīng)用因特網(wǎng)安全授權(quán)同樣也使用了ASN。1。高級(jí)編碼標(biāo)準(zhǔn)在數(shù)據(jù)表示方面形成了 一個(gè)方便的、平臺(tái)無關(guān)的標(biāo)準(zhǔn),比加密要優(yōu)越。PKIX、PKCS和X。509也是我們所熟悉的標(biāo)準(zhǔn),它們也是基于ASN.1的。傳統(tǒng)通信網(wǎng)絡(luò)ASN.1和基本編碼規(guī)則(BER)已經(jīng)在主要通信領(lǐng)域流行了很長一段時(shí)間,所有的ss7到ISDN 的一切都使用了ASN.1 BER信息在各種類型
6、的設(shè)備和計(jì)算機(jī)之間傳遞信號(hào)。軍事和空間應(yīng)用美國國家宇航局(NASA)在其航空通信網(wǎng)規(guī)范中,也正在使用ASN.1和分組編碼規(guī)則作為空對(duì)地或地對(duì)空協(xié)議。在DLMS中的應(yīng)用如下圖所示:例COSEM-OPEN.request服務(wù)原語,用ASN。1描述出來如下所示AARQ-apdu := APPLICATION 0 IMPLICIT SEQUENCEprotocol-version 0 IMPLICIT BIT STRING version1 (0) DEFAULTversion1,application-context-name 1 Application-context-name,called-AP
7、-title2 AP-title OPTIONAL,called-AE-qualifier3 AE-qualifier OPTIONAL,called-AP-invocation-id4 AP-invocation-identifier OPTIONAL,called-AE-invocation-id 5 AE-invocation-identifier OPTIONAL,calling-AP-title6 AP-title OPTIONAL,calling-AE-qualifier 7 AE-qualifier OPTIONAL,calling-AP-invocation-id 8 AP-i
8、nvocation-identifier OPTIONAL,calling-AE-invocation-id9 AE-invocation-identifier OPTIONAL,. The following field shall not be present if only the kernel is used。. sender-acse-requirements 10 IMPLICIT ACSE-requirements OPTIONAL,- The following field shall only be present if the authentication function
9、al unit is selected。mechanism-name 11 IMPLICIT mechanism-name OPTIONAL,- The following field shall only be present if the authentication functional unit is selected。calling-authentication-value12 EXPLICIT authentication-value OPTIONAL,implementation-information 29 IMPLICIT implementation-data OPTION
10、AL,user-information 30 IMPLICIT association-information OPTIONAL4. ASN.1語法ASN.1語法遵循傳統(tǒng)的巴科斯范式BNF風(fēng)格,最基本的表達(dá)式如:Name := type 。 表示為定義某個(gè)名稱為Name的元素,它的類型為type。例如:MyName := IA5String。表示為定義了一個(gè)名為MyName的元素或變量,其類型為ASN.1類型IA5String (類似于ASCII字符串)。 一個(gè)用ASN.1語法描述的數(shù)據(jù)幀,看上去應(yīng)該是下面的樣子:Name := tag IMPLICIT/ EXPLICIT Data type
11、null-data 0 IMPLICIT NULL,item11 IMPLICIT/ EXPLICITData type A1 OPTIONALitem22 IMPLICIT/ EXPLICITData type A2 OPTIONALitem33 Data type 5. ASN.1顯式值(Explict Value)有些時(shí)候,我們需要定義一種ASN.1類型,它的子集元素包含預(yù)定義值。Name := type (Explict Value)。顯式值(Explict Value)必須是ASN.1類型允許選擇的值,而且也必須是元素所允許的值。例: MyName := IA5String (Tom
12、) 表示MyName是字符串Tom的IA5String編碼。又例如: MyName := IA5String(Tom|Joe) 表示字符串的值既可以是Tom, 也可以是Joe。這種語法的使用是為了擴(kuò)展確定的解碼器,例:Data-Access-Result := ENUMERATEDSuccess (0)Hardware-flaut (1)Temporary-failure (2)Read-write-denied (3)Other-reason (250)6. ASN.1容器容器是值一個(gè)包含了其他相同或者不同類型元素的數(shù)據(jù)類型(例如序列值SEQUENCE或集合值SET類型)目的是為了組合一些復(fù)
13、雜的數(shù)據(jù)類型集ASN.1規(guī)范定義了4種容器類型:序列,單一序列(SEQUENCE OF),集合和單一集合(SET OF)雖然它們意義不同,但是語法是一樣的。Name := Container Name Type Name Type。方括號(hào)中的內(nèi)容和容器的元素個(gè)數(shù)都是可選項(xiàng)。還可以進(jìn)行嵌套定義。例:Get-Request-With-List := SEQUENCEInvoke-id-and-priority Invoke-And-PriorityAttribute-descriptor-list SEQUENCE OF Cosem-Attribute-Descriptor-With-Select
14、ion7. ASN.1修改器ASN.1定義了各種修改器,如可選(OPTIONAL),默認(rèn)(DEFAULT),和選擇(CHOICE)。 他們可以改變表達(dá)式的聲明典型地用于定義一種要求編碼靈活,而定義又不繁瑣的類型。7.1. 可選(OPTIONAL)顧名思義,其表示改變一個(gè)元素以便在編碼時(shí)它的類型是可選擇的即編碼器可以忽略這個(gè)元素,解碼器不能假設(shè)它將出現(xiàn)。定義: Name := Type OPTIONAL7.2. 默認(rèn)(DEFAULT)默認(rèn)修改器允許容器包含默認(rèn)值如果待編碼的數(shù)據(jù)值等同于它的默認(rèn)值,那么它將在發(fā)送的數(shù)據(jù)流中被忽略。7.3. 選擇(CHOICE)選擇修改器允許一個(gè)元素在給定的實(shí)例中可
15、以有多個(gè)可能值。GET-Respose :=CHOICEget-respone-normal 1IMPLICIT Get-Response-Normalget-response-with-datablock 2 IMPLICIT Get-Response-With-Datablockget-response-with-list 3 IMPLICIT Get-Response-With-List 8. ASN.1頭字節(jié)(tag)頭字節(jié)(hearder byte)位于ASN.1編碼的開始,通常是一個(gè)八位組,由3部分組成,有如下兩種形式,如下圖:當(dāng)Tag不大于30時(shí),Tag只在一個(gè)八位組中編碼;當(dāng)T
16、ag大于30時(shí),則Tag在多個(gè)八位組中編碼。在多個(gè)八位組中編碼時(shí),第一個(gè)八位組后五位全部為1,其余的八位組最高位為1表示后續(xù)還有,為0表示Tag結(jié)束。8.1. 類別位類別位(classification bits)由兩位表示,用來描述數(shù)據(jù)將要解釋的上下文。 位7位6類別及解釋00通用(Universal)01應(yīng)用(Application)10上下文特定(Context Specific)11專用(Private)所有的類型中,通用類別最常用。8.2. 結(jié)構(gòu)化位結(jié)構(gòu)化位(constructed bit)表示一個(gè)給定的編碼是否是相同類型的多種編碼的結(jié)構(gòu)化。結(jié)構(gòu)化元素是容器類型必需的,因?yàn)樵谶壿嬌希?/p>
17、它們只是其他元素的集合。結(jié)構(gòu)化元素有自己的頭字節(jié)和長度字節(jié),之后是元素各個(gè)要素組件的單獨(dú)編碼。也就是說,這些要素組件是獨(dú)立地可解碼ASN。1數(shù)據(jù)類型。嚴(yán)格的說,容器類是唯一允許使用結(jié)構(gòu)化位的數(shù)據(jù)類型。這是因?yàn)閷?duì)于其他數(shù)據(jù)類型,給定內(nèi)容,只允許一種編碼。所以其他所有數(shù)據(jù)類型的結(jié)構(gòu)化位都為0。8.3. 原始類型ASN.1頭字節(jié)的低5位定義了32種ASN。1的原始類型(primitive type)代碼ASN。1類型作用1布爾型存儲(chǔ)布爾值2整數(shù)存儲(chǔ)整數(shù)3位串存儲(chǔ)位數(shù)組4八位位串存儲(chǔ)字節(jié)數(shù)組5空預(yù)留位(例如在選擇修改器中)6對(duì)象標(biāo)識(shí)符標(biāo)識(shí)算法及協(xié)議16序列和單一序列未分類元素的容器17集合和單一集合已
18、分類元素的容器19可打印字符串ASCII編碼(忽略一些不可打印字符)22IA5StringASCII編碼23世界協(xié)調(diào)時(shí)以統(tǒng)一格式表示的時(shí)間9. ASN.1長度編碼根據(jù)編碼的實(shí)際長度,ASN.1定義了兩種長度編碼(length encoding)方法,定長方式(長編碼和短編碼),不定長方式。編碼字節(jié)的最高位代表的是短編碼還是長編碼;而低7位則形成一個(gè)長度立即數(shù)。9.1. 定長方式9.1.1. 短編碼。在短編碼中,負(fù)載的長度必須小于128字節(jié)。長度立即數(shù)用來表示負(fù)載的長度。例如,對(duì)于一個(gè)長度為65 (0x41)的負(fù)載進(jìn)行編碼,其長度編碼字節(jié)只需簡(jiǎn)單的設(shè)置為0x41即可。因?yàn)槠渥罡呶皇?,則編碼器可
19、以判斷出這是短編碼,而且長度是65。9.1.2. 長編碼。在長編碼中,定義了附加的抽象數(shù)據(jù)來對(duì)長度進(jìn)行編碼,它僅適用于所有長度為128字節(jié)或以上的負(fù)載。在這種模式下,長度立即數(shù)存儲(chǔ)的是為了表示負(fù)載長度所需的字節(jié)數(shù)。這個(gè)長度必須以big-endian格式進(jìn)行編碼。例如,為一個(gè)長度為47310 (0xB8CE)的負(fù)載進(jìn)行編碼,因?yàn)樗拈L度大于127, 所以要采用長編碼方式。實(shí)際的長度需要1個(gè)字節(jié)來表示。則,長度編碼字節(jié)為0x81 02; 然后用big-endian格式存儲(chǔ)的長度值為0xB8 0xCE。則全部長度編碼為 0x81 02 B8 CE。9.2. 不定長方式Length所在八位組固定編碼為
20、0x80,但在Value編碼結(jié)束后以兩個(gè)0x00結(jié)尾。這種方式使得可以在編碼沒有完全結(jié)束的情況下,可以先發(fā)送部分消息給對(duì)方。圖解如下所示:10. ASN.1的數(shù)據(jù)類型ASN.1針對(duì)廣泛的應(yīng)用定義了多種數(shù)據(jù)類型,這里只討論跟DLMS相關(guān)的數(shù)據(jù)類型。我們將討論如下數(shù)據(jù)類型:布爾型 (Boolean);八位位組串 (OCTET String);位串 (BIT String);IA5String;可打印字符串 (PrintableString);整數(shù) (INTEGER);對(duì)象標(biāo)識(shí)符 (OBJECT Identifier, OID);世界協(xié)調(diào)時(shí) (UTCTIME);空 (NULL);序列,單一序列;集合
21、;單一集合;任何ASN.1編碼都是以兩個(gè)字節(jié)開始(或者八位位組,含有個(gè)二進(jìn)制位),不管什么類型它們都是通用的第一個(gè)字節(jié)是類型標(biāo)識(shí)符,也包含一些修正位;第二各字節(jié)是長度。10.1. ASN.1布爾類型布爾編碼的負(fù)載或者是全0或者是任何不是全0的八位位組。頭字節(jié)以0x01開始,長度編碼字節(jié)為0x01,負(fù)載內(nèi)容取決于布爾值的取值。布爾值編碼False0x01 01 00True0x01 01 FF10.2. ASN.1整數(shù)類型整數(shù)類型表示一個(gè)有符號(hào)的任意精度的標(biāo)量,它的編碼是可移植,平臺(tái)無關(guān)的。正整數(shù)的編碼比較簡(jiǎn)單。每個(gè)字節(jié)表示的最大整數(shù)是255 (0xFF), 存儲(chǔ)的實(shí)際數(shù)值分成字節(jié)大小的數(shù)字,并
22、且以big-endian格式存儲(chǔ)。例如:八位位組Xk, Xk-1,。, X0將以遞減的順序從Xk到X0進(jìn)行存儲(chǔ)編碼規(guī)定正整數(shù)的第一個(gè)字節(jié)的最高位必須是0,即Xk的最高為必須是0,為1的話則為負(fù)數(shù)例如:x = 49468= 193 * 256 + 60 = 0xC1 * 0x FF + 0x3C; 即X1=0xC1, X0 = 0x3C。 按正常規(guī)定,編碼應(yīng)該是 0x02 02 C1 3C, 但是X1的最高位是1, 應(yīng)該被看成負(fù)數(shù)最簡(jiǎn)單的方法是用前端零字節(jié)進(jìn)行填充編碼變?yōu)?0x02 02 00 C1 3C。負(fù)整數(shù)的編碼有些復(fù)雜要先找到一個(gè)最小的256的冪,使它比要編碼的負(fù)數(shù)的絕對(duì)值還要大例如:x
23、 = - 1555; 被1555大的256的最小的冪是2562 = 65536; 然后將這個(gè)數(shù)跟負(fù)數(shù)相加以得到2的補(bǔ)碼 65536 + (-1555) = 63981 = 0xF9 * 0xFF + 0x ED。 則編碼為 0x02 02 F9 ED。 以下是一些常用整數(shù)編碼的例子:值編碼00x02 01 0010x02 01 0120x02 01 021270x02 01 7F1280x02 02 00 80-10x02 01 FF-1280x02 01 80-327680x02 02 80 000x02 04 49 96 02 D210.3. ASN.1位串類型位串(BIT STRING)
24、類型以可移植形式表示位數(shù)組除了ASN。1頭部兩個(gè)字節(jié)之外,還有一個(gè)附加的頭部用來表示填充數(shù)據(jù)(通常是一個(gè)字節(jié),因?yàn)樘畛涫菫榱诵纬梢粋€(gè)完整的字節(jié))編碼規(guī)則:位串的第一位放到第一個(gè)負(fù)載字節(jié)的第8位;位串的第二位放到第一個(gè)負(fù)載字節(jié)的第7位; 依此類推填充滿第一個(gè)負(fù)載字節(jié),就繼續(xù)填充第二個(gè)負(fù)載字節(jié)如果最后一個(gè)負(fù)載字節(jié)未被填充滿,空的位用0來填充, 0的個(gè)數(shù)存放到頭部用來表示填充數(shù)據(jù)的那個(gè)字節(jié)里下面舉例說明:有一個(gè)位串1,0,0,0,1,1,1,0,1,0,0,1,開始填充負(fù)載字節(jié)第一個(gè)字節(jié)填充后為 = 0x 8E; 第二個(gè)字節(jié)填充后為 = 0x90, 低位4個(gè)0為填充的空位則,負(fù)載為2個(gè)字節(jié)加上表示填
25、充0個(gè)數(shù)的一個(gè)字節(jié)0x04總共3個(gè)字節(jié)則完整的編碼為:0x03 03 04 8E 90。解碼器通過計(jì)算8 * 負(fù)載長度 - 填充數(shù) 來得到存儲(chǔ)輸出所需要的位數(shù)10.4. ASN.1八位位組串類型八位位組串(OCTET STRING)是保存字節(jié)數(shù)組,它和位串類型(BIT STRING)很相似這種編碼非常簡(jiǎn)單,像其他類型一樣對(duì)頭部進(jìn)行編碼,然后直接將八位位組復(fù)制過去即可例如:對(duì)FE, ED, 6A, B4編碼;首先存儲(chǔ)類型0x04, 接著是長度0x04,然后是字節(jié)本身0xFE ED 6A B4; 完整的編碼為 0x04 04 FE ED 6A B4。10.5. 空類型空(NULL)類型實(shí)際上是占位
26、符, 它是含有空白選項(xiàng)的選擇修改器所特有。例如: MyAccount := SEQUENCE Name IA5String,Group IA5String,Credentials CHOICE rsaKey RSAPublicKey,passwdHash OCTET STRING,none NULL 在上面這個(gè)結(jié)構(gòu)中,帳號(hào)的證書應(yīng)該包含一個(gè)RSA密鑰或一個(gè)密碼散列值或什么都沒有空類型的編碼是 0x05 00。10.6. 對(duì)象標(biāo)識(shí)標(biāo)符類型對(duì)象標(biāo)識(shí)符(OBJECT IDENTIFIER, OID)類型用層次的形式來表示標(biāo)準(zhǔn)規(guī)范。標(biāo)識(shí)符樹通過一個(gè)點(diǎn)分的十進(jìn)制符號(hào)來定義,這個(gè)符號(hào)以組織,子部分然后是標(biāo)
27、準(zhǔn)的類型和各自的子標(biāo)識(shí)符開始。例如:Application-context-name的LN引用 表示為joint-iso-ccitt(2) country (16) country-name(756) identified-organization(5) DLMS-UA (8) Application-context (1) context_id(1)對(duì)OID的編碼規(guī)則: 前兩部分如果定義為x。y, 那么它們將合成一個(gè)字40*x + y, 其余部分單獨(dú)作為一個(gè)字節(jié)進(jìn)行編碼。每個(gè)字首先被分割為最少數(shù)量的沒有頭零數(shù)字的7位數(shù)字。這些數(shù)字以big-endian格式進(jìn)行組織,并且一個(gè)接一個(gè)地組合成字節(jié)。 除了編碼的最后一個(gè)字節(jié)外,其他所有字節(jié)的最高位(位8)都為0。Application-context-nameOID的編碼:第一步:將2.16.756.5.8.1.1轉(zhuǎn)換成字?jǐn)?shù)組 96, 756, 5, 8, 1,1。第二步:將每個(gè)字分割為帶有最高位的7位數(shù)字,0x60,ox85,0x74,0x05,0x02,0x08,0x01,0x01。第三步:完整的編碼為 06 07 60 85 74 05 02 08 01 01。10.7. ASN.1序列和集合類型序列(SEQUENCE)和單一序列(SEQUENCE OF)以及相應(yīng)的集合(SE
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版小程序SDK接入授權(quán)合同模板3篇
- 2025年度美容院加盟店品牌形象保護(hù)合同范本4篇
- 2025版國際合同授權(quán)委托書定制模板3篇
- 城市配送與物流配送環(huán)節(jié)的信息互聯(lián)互通考核試卷
- 常州鋰電池生產(chǎn)廠2025年度消防設(shè)備采購合同2篇
- 二零二五年度古法工藝木屋建造技藝傳承合同4篇
- 物業(yè)設(shè)施設(shè)備維護(hù)2025年度合同3篇
- 設(shè)備租賃公司二零二五年度施工塔吊租賃合同
- 2025年代理銷售分銷鏈銷售協(xié)議
- 2025年因施工責(zé)任賠償協(xié)議
- 開展課外讀物負(fù)面清單管理的具體實(shí)施舉措方案
- 2025年云南中煙工業(yè)限責(zé)任公司招聘420人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025-2030年中國洗衣液市場(chǎng)未來發(fā)展趨勢(shì)及前景調(diào)研分析報(bào)告
- 2024解析:第三章物態(tài)變化-基礎(chǔ)練(解析版)
- 北京市房屋租賃合同自行成交版北京市房屋租賃合同自行成交版
- 《AM聚丙烯酰胺》課件
- 技術(shù)支持資料投標(biāo)書
- 老年人意外事件與與預(yù)防
- 預(yù)防艾滋病、梅毒和乙肝母嬰傳播轉(zhuǎn)介服務(wù)制度
- 《高速鐵路客運(yùn)安全與應(yīng)急處理》課程標(biāo)準(zhǔn)
- 23J916-1:住宅排氣道(一)
評(píng)論
0/150
提交評(píng)論