版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
信息技術(shù)ASN.12:(PER)規(guī)范目??次前言 II引言 VI范圍 1規(guī)范性引用文件 1術(shù)語(yǔ)和定義 2基本記法規(guī)范 2信息客體規(guī)范 2約束規(guī)范 2ASN.1規(guī)范的參數(shù)化 2基本編碼規(guī)則 2PER編碼指令 2附加定義 2縮略語(yǔ) 6記法 7約定 7本文件定義的編碼規(guī)則 7符合性 8PER編碼指令 8PER使用的編碼方法 9類型記法的使用 9使用標(biāo)簽以提供正則次序 9PER可視約束 9編碼使用的類型和值模型 11編碼的結(jié)構(gòu) 11被編碼的類型 12編碼過(guò)程 12完整編碼的產(chǎn)生式 12開(kāi)放類型字段 13非負(fù)二進(jìn)制整數(shù)的編碼 132的補(bǔ)碼二進(jìn)制整數(shù)的編碼 14II受約束的整個(gè)數(shù)的編碼 14正常小非負(fù)整個(gè)數(shù)的編碼 15半受約束的整個(gè)數(shù)的編碼 15不受約束的整個(gè)數(shù)的編碼 16長(zhǎng)度決定因子的編碼的一般規(guī)則 16布爾類型的編碼 19整數(shù)類型的編碼 19枚舉類型的編碼 20實(shí)數(shù)類型的編碼 20位串類型的編碼 21八位位組串類型的編碼 21空值類型的編碼 22序列類型的編碼 22單一序列類型的編碼 23集合類型的編碼 24單一集合類型的編碼 25選擇類型的編碼 25客體標(biāo)識(shí)符類型的編碼 25相關(guān)客體標(biāo)識(shí)符類型的編碼 26國(guó)際化資源引用類型的編碼 26相關(guān)國(guó)際化資源引用類型的編碼 26嵌入式pdv類型的編碼 26外部類型值的編碼 27受限字符串類型的編碼 28不受限字符串類型的編碼 30時(shí)間類型、有效時(shí)間類型、已定義時(shí)間類型和附加時(shí)間類型的編碼 30傳送語(yǔ)法的客體標(biāo)識(shí)符 49附錄A(資料性)編碼實(shí)例 51不使用子類型約束的記錄 51使用子類型約束的記錄 55使用擴(kuò)展標(biāo)記的記錄 59使用擴(kuò)展附加組的記錄 65附錄B(資料性)組合PER可視約束和PER非可視約束 68概述 68IIIPER中約束的可擴(kuò)展性和可視性 68示例 71附錄C(資料性)對(duì)PER算法的支持 73附錄D(資料性)對(duì)可擴(kuò)展ASN.1規(guī)則的支持 74附錄E(資料性)關(guān)于PER編碼拼接的指導(dǎo)附錄 75附錄F(資料性)編碼規(guī)則的標(biāo)識(shí) 76IV引??言GB/T16262.1、GB/T16262.2、GB/T16262.3和GB/T16262.4共同描述了抽象語(yǔ)法記法一(ASN.1),這種記法就對(duì)等應(yīng)用之間交換的報(bào)文進(jìn)行了定義。本文件定義的編碼規(guī)則適用于使用GB/T16262.1規(guī)定的記法所確定的類型值。應(yīng)用這些編碼規(guī)則產(chǎn)生對(duì)這些值的傳送語(yǔ)法。這些編碼規(guī)則規(guī)范也隱含適用于解碼。ASN.1的類型值應(yīng)用的編碼規(guī)則可以有多種集合,本文件定義了緊縮編碼規(guī)則(PER)。之所以稱為緊縮編碼規(guī)則集合,是因?yàn)檫@種編碼規(guī)則獲得了比GB/T16263.1中描述的基本編碼規(guī)則(BER)及它派生的編碼規(guī)則更緊湊的表示,GB/T16263.1是緊縮編碼規(guī)則規(guī)范的某些部分的參考。GB/T16263擬由四個(gè)部分構(gòu)成?!?部分:基本編碼規(guī)則(BER)、正則編碼規(guī)則(CER)和非典型編碼規(guī)則(DER)規(guī)范。——第2部分:緊縮編碼規(guī)則(PER)規(guī)范?!?部分:XML編碼規(guī)則(XER)。——第5部分:W3CXML模式定義到ASN.1的映射。VI信息技術(shù)ASN.1編碼規(guī)則第2部分:緊縮編碼規(guī)則(PER)規(guī)范范圍本文件規(guī)定了緊縮編碼規(guī)則集合,它們可以用來(lái)為ISO/IEC8824-1中定義的類型值派生傳送語(yǔ)法。這些緊縮編碼規(guī)則也適用于解碼這樣的傳送語(yǔ)法,以便標(biāo)識(shí)出被傳送的數(shù)據(jù)值。本文件規(guī)定的編碼規(guī)則:——在通信時(shí)使用;——在選擇編碼規(guī)則時(shí)主要關(guān)心值的最小化表示規(guī)模的場(chǎng)合中使用;GB/T16263.1——可以根據(jù)ISO/IEC8825-6進(jìn)行修改。規(guī)范性引用文件下列文件中的內(nèi)容通過(guò)文中的規(guī)范性引用而構(gòu)成本文件必不可少的條款。其中,注日期的引用文件,僅該日期對(duì)應(yīng)的版本適用于本文件;不注日期的引用文件,其最新版本(包括所有的修改單)適用于本文件。注:本文件基于GB/T13000-2010。不能在該標(biāo)準(zhǔn)的更高版本上使用。上述引用應(yīng)解釋為對(duì)已確定的標(biāo)準(zhǔn)及其所有已發(fā)布的修訂和技術(shù)勘誤的引用。GB/T2311—2000信息技術(shù)字符代碼結(jié)構(gòu)和擴(kuò)充技術(shù)(ISO/IEC2022:1994,IDT)GB13000—2010信息技術(shù)通用多八位編碼字符集(UCS)(ISO/IEC10646:2003,IDT)GB/T16262.1AAAA信息技術(shù)抽象語(yǔ)法記法一(ASN.1)第1部分:基本記法規(guī)范(ISO/IEC8824-1:2021,IDT)GB/T16262.2—BBBB信息技術(shù)抽象語(yǔ)法記法一(ASN.1)第2部分:信息客體規(guī)范(ISO/IEC8824-2:2021,IDT)GB/T16262.3—CCCC信息技術(shù)抽象語(yǔ)法記法一(ASN.1)第3部分:約束規(guī)范(ISO/IEC8824-3:2021,IDT)GB/T16262.4—DDDD信息技術(shù)抽象語(yǔ)法記法一(ASN.1)第4部分:ASN.1規(guī)范的參數(shù)化(ISO/IEC8824-4:2021,IDT)GB/T16263.1—EEEE信息技術(shù)ASN.1編碼規(guī)則第1部分:基本編碼規(guī)則(BER)、正則編碼規(guī)則(CER)和非典型編碼規(guī)則(DER)的規(guī)范(ISO/IEC8825-1:2021,IDT)SJ/Z9047—1987信息處理信息交換用字符串形式表示數(shù)值的方法(ISO6093:1985,IDT)ISO/IEC646:1991信息技術(shù)信息交換用ISO七位編碼字符集(Informationtechnology–ISO7-bitcodedcharactersetforinformationinterchange)ISO/IEC2375:2003信息技術(shù)轉(zhuǎn)義序列和編碼字符集的登記規(guī)程(Informationtechnology–Procedureforregistrationofescapesequencesandcodedcharactersets)ISO/IEC8825-6:2021信息技術(shù)ASN.l編碼規(guī)則第6部分:PER編碼指令的注冊(cè)和應(yīng)用(Informationtechnology—ASN.lencodingrules:RegistrationandapplicationofPERencodinginstructions)1XXISO結(jié)合轉(zhuǎn)義序列使用的編碼字符集的國(guó)際登記簿術(shù)語(yǔ)和定義下列術(shù)語(yǔ)和定義適用于本文件?;居浄ㄒ?guī)范GB/T16262.1界定的所有術(shù)語(yǔ)和定義適用于本文件。信息客體規(guī)范GB/T16262.2界定的所有術(shù)語(yǔ)和定義適用于本文件。約束規(guī)范GB/T16262.3界定的下列術(shù)語(yǔ)和定義適用于本文件:組件關(guān)系約束(componentrelationconstraint);表約束(tableconstraint)。ASN.1規(guī)范的參數(shù)化GB/T16262.4界定的下列術(shù)語(yǔ)和定義適用于本文件:可變約束(variableconstraint)基本編碼規(guī)則GB/T16263.1界定的下列術(shù)語(yǔ)和定義適用于本文件:數(shù)據(jù)值(datavalue);動(dòng)態(tài)符合性(dynamicconformance);(數(shù)據(jù)值的)編碼(encoding(ofadatavalue));接收器(receiver);發(fā)送器(sender);靜態(tài)符合性(staticconformance)。PER編碼指令本文件使用ISO/IEC8825-6中定義的下列術(shù)語(yǔ)和定義:標(biāo)識(shí)關(guān)鍵字(identifyingkeyword)。附加定義下列術(shù)語(yǔ)和定義適用于本文件。3.7.12的補(bǔ)碼的二進(jìn)制整數(shù)編碼2's-complement-binary-integerencoding把整個(gè)數(shù)編碼到指定長(zhǎng)度的位字段(在ALIGNED變體中八位位組對(duì)齊)中,或者編碼到可接納該整個(gè)數(shù)編碼為2的補(bǔ)碼的整數(shù)的最小數(shù)目的八位位組中,該編碼按照11.4所規(guī)定的等于、大于或小于0的整個(gè)數(shù)提供表示。注1:2的補(bǔ)碼的二進(jìn)制數(shù)的值通過(guò)計(jì)數(shù)內(nèi)容八位位組中的位得出,計(jì)數(shù)從最后1個(gè)八位位組的位1開(kāi)始作為位0,到2第1個(gè)八位位組的位8結(jié)束。每位賦予一個(gè)2?的數(shù)值,這里N是該位在上面計(jì)數(shù)順序中的位置。2的補(bǔ)碼的二進(jìn)制數(shù)的值利用下列方法得出,即累加計(jì)算那些置1的位的數(shù)值,但不包括第1個(gè)八位位組的位8,然后,若第1個(gè)八位位組的位8置為1,則這個(gè)累加值減去賦給位8的數(shù)值。注2:整個(gè)數(shù)(wholenumber)是數(shù)學(xué)術(shù)語(yǔ)整數(shù)(integer)的同義詞。這里使用它是為了避免與ASN.1的類型整數(shù)(integer)混淆。3.7.2抽象語(yǔ)法值abstractsyntaxvalue要由PER編碼或由PER解碼生成的抽象語(yǔ)法值(定義為單個(gè)ASN.1類型值的集合)。注:與抽象語(yǔ)法相關(guān)聯(lián)的單個(gè)ASN.1類型由類“ABSTRACT-SYNTAX”的客體正式的標(biāo)識(shí)。3.7.3位字段bit-field編碼機(jī)制某一部分的產(chǎn)物,由有序的位集合構(gòu)成,這些位不必是8的倍數(shù)。注:若該術(shù)語(yǔ)的使用后面緊跟“ALIGNED變體中八位位組對(duì)齊”,這意味著對(duì)PER的對(duì)齊變體來(lái)說(shuō),該位字段要求完整的編碼在八位位組邊界上開(kāi)始。3.7.4正則編碼canonicalencoding通過(guò)應(yīng)用無(wú)實(shí)現(xiàn)相關(guān)選項(xiàng)的編碼規(guī)則所得到的抽象語(yǔ)法值的完整編碼,這種規(guī)則導(dǎo)致在傳輸語(yǔ)法中無(wú)歧義且唯一的位串和抽象語(yǔ)法中的值之間一對(duì)一映射。3.7.5復(fù)合類型compositetype集合、序列、單一集合、單一序列、選擇、嵌入式pdv、外部或者不受限的字符串類型。3.7.6復(fù)合值compositevalue復(fù)合類型的值。3.7.7受約束的整個(gè)數(shù)constrainedwholenumber受PER可視約束所約束的整個(gè)數(shù)處于“l(fā)b”到“ub”的范圍內(nèi),“l(fā)b”的值小于或等于“ub”的值,且“l(fā)b”和“ub”的值是允許的值。注:受約束的整個(gè)數(shù)出現(xiàn)在編碼中,它標(biāo)識(shí)以下內(nèi)容:選定的選擇類型的替換項(xiàng);長(zhǎng)度已經(jīng)被PER可視約束限制到最大長(zhǎng)度的字符、八位位組和位串類型的長(zhǎng)度;單一序列或單一集合類型中的組件數(shù)計(jì)數(shù)已經(jīng)被PER可視約束限制為最大組件數(shù)的計(jì)數(shù);已經(jīng)被PER可視約束所約束的處于有限最小值和最大值范圍內(nèi)的整數(shù)類型值;以及表示枚舉類型中的枚舉值。3.7.8有效長(zhǎng)度約束(受約束字符串類型的)effectivesizeconstraint(foraconstrainedstringtype)3XX單個(gè)有限長(zhǎng)度約束,它可適用于內(nèi)置串類型,并且其效果是允許且只允許全部能被受約束的串類型表示的那些長(zhǎng)度。注1:例如,下列串類型有一個(gè)有效長(zhǎng)度約束:A::=IA5String(SIZE(l..4)|SIZE(l0..15))因?yàn)樗梢杂眠m用于所有值的單個(gè)長(zhǎng)度約束改寫:A::=IA5String(SIZE(1..4)|10..15))而下面的串類型沒(méi)有有效長(zhǎng)度約束,因?yàn)槿绻摯话癮”、“b”和“c”外的任何字符,則它可以任意長(zhǎng):B::=IA5String(SIZE(l..4)|FROM("abc"))注2:有效長(zhǎng)度約束只能用來(lái)確定長(zhǎng)度的編碼。3.7.9有效允許字母約束(受約束的受限字符串類型的) effective permitted-alphabetconstraint(foraconstrainedrestrictedcharacterstringtype)單個(gè)允許字母表約束,它可以適用于內(nèi)置已知倍數(shù)字符串類型,并且其效果是允許且只允許那些能夠出現(xiàn)在某個(gè)受約束的受限字符串類型的值中至少一個(gè)字符位置上的字符。注1:例如,在:Ax::=IA5String(FROM("AB")|FROM("CD"))Bx::=IA5String(SIZE(l..4)|FROM("abc"))Ax有一個(gè)有效允許字母表約束為“ABCD”,Bx有一個(gè)由整個(gè)IA5String字母表構(gòu)成的有效允許字母表約束,因?yàn)闆](méi)有更小的允許字母表約束能夠適用于Bx的所有值。注2:有效允許字母表約束只用來(lái)確定字符的編碼。3.7.10枚舉索引enumerationindexEnumerationItem0開(kāi)始賦值,0賦值給第1個(gè)“EnumerationItem”,1賦值給第2個(gè),依此類推,直到排序表中的最后一個(gè)“EnumerationItem”。注:“RootEnumeration”中的“EnumerationItem”與“AdditionalEnumeration”中的“EnumerationItem”分開(kāi)來(lái)排序。3.7.11PER編碼的可擴(kuò)展extensibleforPERencoding一種類型特性,需要PER把值的編碼標(biāo)識(shí)為根值的編碼或擴(kuò)展附加部分的編碼。注:根值編碼一般比擴(kuò)展附加部分編碼的效率更高。3.7.12字段列表field-list位字段的有序集合,它是把這些編碼規(guī)則應(yīng)用于抽象值產(chǎn)生的結(jié)果。3.7.13不定長(zhǎng)度indefinite-length4其長(zhǎng)度大于64K-l或者其最大長(zhǎng)度不能由ASN.1記法確定的一種編碼。3.7.14固定長(zhǎng)度類型fixed-lengthtype一種類型,該類型編碼的最外層長(zhǎng)度決定因子的值可以由類型記法(僅在應(yīng)用PER可視約束之后)來(lái)確定(使用本文件規(guī)定的機(jī)制),并且對(duì)于該類型的所有可能值而言,該值相同。3.7.15固定值fixedvalue一個(gè)值,它可以確定(用本文件規(guī)定的機(jī)制)支配它的類型的一個(gè)唯一允許值(僅在應(yīng)用PER可視約束之后)。3.7.16已知倍數(shù)字符串類型known-multipliercharacterstringtype一種受限字符串類型,其中,對(duì)所有允許字符串值,編碼的八位位組數(shù)是字符串中的字符數(shù)的已IA5StringPrintableStringVisibleString3.7.17長(zhǎng)度決定因子lengthdeterminant確定全部或者部分PER編碼長(zhǎng)度的(位、八位位組、字符或組件的)計(jì)數(shù)。3.7.18正常小非負(fù)整個(gè)數(shù)normallysmallnon-negativewholenumber編碼的一部分,它表示一個(gè)無(wú)邊界非負(fù)整數(shù)的若干值,但是,小值比大值出現(xiàn)的可能性大。3.7.19正常小長(zhǎng)度normallysmalllength長(zhǎng)度編碼,它表示一個(gè)無(wú)邊界長(zhǎng)度的若干值,但是,小長(zhǎng)度比大長(zhǎng)度出現(xiàn)的可能性大。3.7.20非負(fù)二進(jìn)制整數(shù)編碼non-negative-binary-integer-encoding受約束或半受約束的整個(gè)數(shù)的編碼,該整個(gè)數(shù)可編碼到指定長(zhǎng)度的位字段中、或編碼到指定長(zhǎng)度的位字段(ALIGNED變體中的八位位組對(duì)齊)中、或者編碼到最小數(shù)目的八位位組中,該八位位組將容納非負(fù)二進(jìn)制整數(shù)的整個(gè)數(shù),而非負(fù)二進(jìn)制整數(shù)為11.3規(guī)定的大于或等于0的整個(gè)數(shù)提供了表示。注:非負(fù)二進(jìn)制數(shù)的值通過(guò)計(jì)數(shù)內(nèi)容八位位組中的位得出,計(jì)數(shù)從最后一個(gè)八位位組的位1開(kāi)始作為位0,到第1個(gè)八位位組的位8結(jié)束。每位賦予一個(gè)2?的數(shù)值,這里N是該位在上面計(jì)數(shù)順序中的位置。非負(fù)二進(jìn)制數(shù)的值為置1的位所賦予數(shù)值的和。3.7.21最外層類型outermosttype一種ASN.1類型,其編碼被包含在一個(gè)非ASN.1載體中或作為其他ASN.1結(jié)構(gòu)(見(jiàn)11.1.1)的值。注:最外層類型的PER編碼總是八位的整數(shù)倍。5XX3.7.22PER可視約束PER-visibleconstraint影響值的PER編碼的ASN.1約束記法的使用實(shí)例。3.7.23中繼安全編碼relay-safeencoding抽象語(yǔ)法值的一種完整編碼,該編碼無(wú)需知道編碼執(zhí)行環(huán)境就可以被解碼(包括任何嵌入式編碼)。3.7.24半受約束的整個(gè)數(shù)semi-constrainedwholenumber一種受PER可視約束所約束的整個(gè)數(shù),以值“l(fā)b”作為允許值,約束超過(guò)或等于某個(gè)值“l(fā)b”,它是不受約束的整個(gè)數(shù)。注:半受約束的整個(gè)數(shù)出現(xiàn)在不受約束的(和某些受約束的情況下的)字符、八位位組和位串類型的長(zhǎng)度編碼中,還出現(xiàn)在不受約束的(和某些受約束的情況下的)單一序列和單一集合類型的組件計(jì)數(shù)的編碼中,以及已經(jīng)約束為超過(guò)某個(gè)最小值的整數(shù)類型值的編碼中。3.7.25簡(jiǎn)單類型simpletype不是復(fù)合類型的類型。3.7.26文本依賴textuallydependent用來(lái)標(biāo)識(shí)下列情況的一個(gè)術(shù)語(yǔ),如果在計(jì)算一個(gè)元素集合時(shí)使用了某個(gè)引用名,則該元素集合的值被認(rèn)為依賴于該引用名,而無(wú)論執(zhí)行的實(shí)際集合算術(shù)運(yùn)算結(jié)果是元素集合的最終值與賦值給該引用名的實(shí)際元素集合值是否有關(guān)。注:例如,下面的Foo的定義文本依賴于Bar,即使Bar對(duì)Foo的值集沒(méi)有影響(因此,根據(jù)10.3.6,在Foo上的約束不是PER可視的,因?yàn)锽ar被一個(gè)表約束來(lái)約束的,而Foo在文本上依賴于Bar)。MY-CLASS::=CLASS{&namePrintableString,&ageINTEGER}WITHSYNTAX{&name,&age}MyObjectSetMY-CLASS::={{"Jack",7}|{"Jill",5}}Bar::=MY-CLASS.&age({MyObjectSet})Foo::=INTEGER(Bar|1..100)3.7.27不受約束的整個(gè)數(shù)unconstrainedwholenumber一種不受PER可視約束所約束的整個(gè)數(shù)。注:不受約束的整個(gè)數(shù)僅出現(xiàn)在整數(shù)類型值的編碼中??s略語(yǔ)下列縮略語(yǔ)適用于本文件ASN.1 抽象語(yǔ)法記法一6BER ASN.1的基本編碼規(guī)則CER ASN.1的正則編碼規(guī)則DER ASN.1的非典型編碼規(guī)則PER ASN.1的緊縮編碼規(guī)則16K 1638432K 3276848K 4915264K 65536記法本文件引用GB/T16262.1定義的記法。約定本文件使用術(shù)語(yǔ)“最高有效位”和“最低有效位”來(lái)定義編碼中的每個(gè)八位位組的值。注:低層規(guī)范使用相同的記法來(lái)定義串行線上位傳輸?shù)拇涡颍蛘邔⑷舾晌环峙浣o并行信道。對(duì)于本文件,八位位組的位從8~18是“最高有效位”,位l是“最低有效位”。本文件中頻繁使用術(shù)語(yǔ)“八位位組”來(lái)代表“八個(gè)位”。使用該術(shù)語(yǔ)代替“八個(gè)位”不帶有任何對(duì)齊的含義,若打算對(duì)齊,應(yīng)在本文件中明確說(shuō)明。本文件定義的編碼規(guī)則4(以及相關(guān)聯(lián)的客體標(biāo)識(shí)符),它們可以用來(lái)編碼和解碼定義為單個(gè)(已知)ASN.1類型值的抽象語(yǔ)法值。本章描述其適用性和特性。在不知道被編碼值的類型的情況下,就不可能確定編碼(PER)的結(jié)構(gòu)。特別是,在不知道被編碼類型的情況下,就不能從編碼本身確定編碼的結(jié)束。EXTERNAL、EMBEDDEDPDVCHARACTERSTRINGOSIPERBASIC-PER,它通常不產(chǎn)生正則編碼。2CANONICAL-PER,它產(chǎn)生正則編碼,這被定義為對(duì)BASIC-PER編碼中依賴于實(shí)現(xiàn)選擇的限制。注1:當(dāng)鑒別器需要應(yīng)用于抽象值時(shí),則CANONICAL-PER產(chǎn)生具有若干應(yīng)用的正則編碼。注2:任何與CANONICAL-PER編碼一致的實(shí)現(xiàn)都與BASIC-PER編碼一致。任何與BASIC-PER解碼一致的實(shí)現(xiàn)都與CANONICAL-PER解碼一致。因此,按照CANONICAL-PER形成的編碼也是BASIC-PER所允許的編碼。BASIC-PERCANONICAL-PEREMBEDDEDPDV、CHARACTERSTRING或者EXTERNAL類型,則外層編碼不再是中繼安全的,除非所有EMBEDDEDPDV、CHARACTERSTRING和EXTERNALCANONICAL-PEREMBEDDEDPDV、CHARACTERSTRINGEXTERNAL類型,則外層編碼不再是正則的,除非所有EMBEDDEDPDV、CHARACTERSTRINGEXTERNAL類型所使用的傳送語(yǔ)法都是正則的。注:支持{GB13000的1級(jí)(l)...}形式的所有字符抽象語(yǔ)法的字符傳送語(yǔ)法是正則的,支持{GB13000的2級(jí)(2) }7XX和{GB13000的3級(jí)(3)...}形式的字符傳送語(yǔ)法不總是正則的,所有上述字符傳送語(yǔ)法都是中繼安全的。BASIC-PERCANONICAL-PERALIGNEDUNALIGNEDALIGNEDUNALIGNEDALIGNEDUNALIGNED只有知道編碼值的類型時(shí),PEREXTERNAL類型中攜帶這些位時(shí),應(yīng)在OCTETSTRING選擇項(xiàng)中攜帶它們,除非EXTERNALPERASN.1(即開(kāi)放類型)OSIOCTETSTRING選擇項(xiàng)的“全編碼”(GB/T15696.1)。9.29.3)。CPER符合性9靜態(tài)符合性由規(guī)定這些緊縮編碼規(guī)則應(yīng)用的那些標(biāo)準(zhǔn)來(lái)規(guī)定。注:附錄C提供了與支持兩種編碼規(guī)則算法的兩種變體有關(guān)的靜態(tài)符合性的指南,該指南被設(shè)計(jì)成能保證互工作,同時(shí)認(rèn)可既不是中繼安全、也不是正則的某些編碼應(yīng)用的好處。本文件中的規(guī)則以編碼規(guī)程的形式詳細(xì)說(shuō)明。如果生成的抽象語(yǔ)法值完整編碼的位串與本文件為適用傳送語(yǔ)法規(guī)定的那些位串之一相同,則不要求此類實(shí)現(xiàn)與規(guī)定的規(guī)程一一對(duì)應(yīng)。執(zhí)行解碼的實(shí)現(xiàn)要產(chǎn)生與收到的位串相一致的抽象語(yǔ)法值,收到的位串由發(fā)送器產(chǎn)生,這些發(fā)送器符合與被解碼資料相關(guān)聯(lián)的傳送語(yǔ)法中所標(biāo)識(shí)的編碼規(guī)則。注1:通常,本文件明確說(shuō)明的BASIC-PER,沒(méi)有定義替換的編碼。通過(guò)規(guī)定中繼安全操作和限制引用其他標(biāo)準(zhǔn)的某些編碼選項(xiàng),使BASIC-PER成為正則的。CANONICAL-PER為要求正則和中繼安全編碼的非典型編碼規(guī)則和正則編碼規(guī)則(見(jiàn)GB/T16263.1)提供了一種替換的編碼規(guī)則。注2:當(dāng)使用CANONICAL-PER來(lái)提供正則編碼時(shí),建議將從其派生出的任意一個(gè)加密散列值與一個(gè)算法標(biāo)識(shí)符相關(guān)聯(lián),該算法標(biāo)識(shí)符將CANONICAL-PER標(biāo)識(shí)為從抽象語(yǔ)法值到初始位串(然后被散列)的轉(zhuǎn)換。PERPERGB/T16262.1ISO/IEC8825-6注1:某些PER編碼指令的應(yīng)用程序可能會(huì)使其不能對(duì)該類型的所有抽象值進(jìn)行編碼。當(dāng)出現(xiàn)這種情況時(shí),特定的PER編碼指令會(huì)識(shí)別問(wèn)題,這是設(shè)計(jì)者的決定,基于可能需要使用多個(gè)編碼規(guī)則,是否對(duì)類型添加顯式約束,以便將抽象值的范圍限制為那些可以通過(guò)使用PER編碼指令進(jìn)行編碼處理的范圍,這可能會(huì)使規(guī)范的可讀性降低,但可以確保所有編碼規(guī)則都可以對(duì)所有允許的抽象值編碼,使中繼可能沒(méi)有錯(cuò)誤。注2:每個(gè)PER編碼指令都以一個(gè)標(biāo)識(shí)關(guān)鍵字開(kāi)始,它可以明確地標(biāo)識(shí)該編碼指令。BASIC-PERCANONICAL-PERALIGNEDPERBASIC-PERCANONICAL-PERUNALIGNED如果標(biāo)識(shí)關(guān)鍵字未知,則應(yīng)發(fā)出“不支持”的錯(cuò)誤消息。PERISO/IEC8825-6)。注1:如果多個(gè)PER編碼指令與一種類型相關(guān)聯(lián),則所有這些指令指定的修訂都應(yīng)適用。8注2:如果由兩個(gè)或兩個(gè)以上單獨(dú)的編碼指令產(chǎn)生的修改發(fā)生沖突,并且沒(méi)有說(shuō)明它們是相互排斥的,則PER編碼指令的寄存器存在錯(cuò)誤。PER類型記法的使用GB/T16262.1ASN.1ASN.1ASN.1選擇類型中的選擇類型的嵌套;放置在集合類型中的組件上的標(biāo)簽、放置在選擇類型中的選項(xiàng)上的標(biāo)簽及枚舉項(xiàng)的給定值;集合或者序列類型的組件是否可選;DEFAULT值;(只)PER)組件是否是開(kāi)放類型;g)類型對(duì)PER編碼是否可擴(kuò)展。使用標(biāo)簽提供正則次序本文件要求被正則排序的集合類型和選擇類型的組件獨(dú)立于組件的正文排序,如GB/T16262.1—AAAA的8.6規(guī)定的那樣,正則排序通過(guò)排序每個(gè)組件的最外層標(biāo)簽來(lái)確定。PER注:對(duì)于解碼和編碼,某些ASN.1約束可能不是PER可視的,但不會(huì)以任何方式影響使用這些約束處理解碼期間檢測(cè)到的差錯(cuò),也不意味著允許違反這些約束的值被遵守規(guī)則的發(fā)送器所發(fā)送。然而,本文件并不在編碼規(guī)范中使用這樣的約束。ASN.1PERPER(GB/T16262.4—DDDD10.310.4)。PER(GB/T16262.3—CCCC9.1)。PER(GB/T16262.3)。PER(GB/T16262.3—CCCC10.7)。PER(GB/T16262.3)。對(duì)不是已知倍數(shù)字符串類型的(GB/T16262.1—AAAA41)受限字符串類型的約束PER(3.7.16)。PERPER約束類型的有效長(zhǎng)度約束是單個(gè)長(zhǎng)度約束,因此,當(dāng)且僅當(dāng)存在該(允許的)長(zhǎng)度的某個(gè)約束類型值時(shí),該長(zhǎng)度才是允許的。GB/T16262.1—AAAA52.352.5PERPER9XX當(dāng)且僅當(dāng)包含某個(gè)字符的受約束類型的某個(gè)值,該受約束類型的有效允許字母表約束是允許該字符的單個(gè)允許字母表約束。如果受約束類型的所有字符都可以出現(xiàn)在該受約束類型的某個(gè)值中,則該有效允許字母表約束是為不受約束的類型而定義的字符集。GB/T16262.1—AAAA52.352.5(或有用的和定義的時(shí)間類型)PERPERPER僅當(dāng)用來(lái)限制syntaxes組件的值為單個(gè)值時(shí),或者用來(lái)限制identification為替換的fixed標(biāo)識(shí)(2831)pdvPERPERPER當(dāng)且僅當(dāng)所有其他約束適用于整數(shù)類型或已知倍數(shù)字符串類型時(shí),受上述各條制約的這些約PER通常對(duì)類型的約束可由各個(gè)約束組合而成,組合時(shí)使用了某些或全部包含子類型約束和一系列應(yīng)用約束的集合算法。注:有關(guān)組合分別為PER可視或PER不可視約束的效果的進(jìn)一步討論參見(jiàn)附錄B。PERPERGB/T—AAAA16262.150.11注1:如果在串行應(yīng)用程序中的最后一個(gè)約束不是PER可視的,那么該類型不能針對(duì)PER編碼進(jìn)行擴(kuò)展,并且無(wú)擴(kuò)展位進(jìn)行編碼。注2:例如,因?yàn)榭蓴U(kuò)展的允許字母表約束不是PER可視的,那么,A::=IA5String(SIZE(1..4))(FROM("ABCD",...))就有一個(gè)由整個(gè)IA5String字母組成的有效允許字母表約束,不過(guò),它的有效大小約束為“SIZE(l..4)”。類似地:B::=IA5String(A)有同樣的有效大小約束和同樣的有效允許字母表約束。PERINTERSECTIONPERPER(PER)INTERSECTIONPERUNIONEXCEPT條款,那么,EXCEPTEXCEPTPER注:例如:A::=IA5String(SIZE(l..4)INTERSECTIONFROM("ABCD",...))有1..4的有效長(zhǎng)度約束,但字母表約束不是可視的,因?yàn)樗强蓴U(kuò)展的。PER它是從一個(gè)ENUMERATED類型派生的(通過(guò)劃分子類型、指出類型引用或者置標(biāo)簽),而且在“Enumerations”產(chǎn)生式中有擴(kuò)展標(biāo)記;它是從一個(gè)SEQUENCE類型派生的(通過(guò)劃分子類型、指出類型引用或者置標(biāo)簽),而且在“ComponentTypeLists”或“SequenceType”產(chǎn)生式中有擴(kuò)展標(biāo)記;它是從一個(gè)SET類型派生的(通過(guò)劃分子類型、指出類型引用或者置標(biāo)簽),而且在“ComponentTypeLists”或“SetType”產(chǎn)生式中有擴(kuò)展標(biāo)記;它是從一個(gè)CHOICE類型派生的(通過(guò)劃分子類型、指出類型引用或者置標(biāo)簽),而且在“AlternativeTypeLists”產(chǎn)生式中有擴(kuò)展標(biāo)記。10編碼使用的類型和值模型ASN.1型置標(biāo)簽。對(duì)于這些編碼規(guī)則,使用類型引用和類型置標(biāo)簽對(duì)編碼沒(méi)有影響,而且在模型中是不可視10.2PERPER被編碼的值可以被視為一個(gè)簡(jiǎn)單值或者一個(gè)用結(jié)構(gòu)化機(jī)制從簡(jiǎn)單或復(fù)合值的組件構(gòu)建的復(fù)合ASN.1當(dāng)約束包括一個(gè)在根中出現(xiàn)的擴(kuò)展附加部分的值時(shí),該值總是編碼為根的值,而不是擴(kuò)展附加部分的值。示例:INTEGER(0..10,...,5)--值5被編碼為根值,而不是一個(gè)擴(kuò)展附加部分的值。編碼的結(jié)構(gòu)這些編碼規(guī)則的規(guī)定簡(jiǎn)單值到字段列表的編碼;復(fù)合值到字段列表的編碼,使用了由這些編碼規(guī)則應(yīng)用到復(fù)合值的組件而產(chǎn)生的字段列表;最外層值的字段列表到抽象語(yǔ)法值的完整編碼的變換(11.1)。數(shù)據(jù)值組件的編碼:31)前導(dǎo)碼(19、2123);長(zhǎng)度決定因子(11.9);內(nèi)容。注:前導(dǎo)碼、長(zhǎng)度及內(nèi)容都是“字段”,它們被拼接在一起形成“字段列表”,除選擇類型外,復(fù)合類型的字段列表可以由幾個(gè)值拼接在一起的字段構(gòu)成。任一前導(dǎo)碼、長(zhǎng)度和/或任意值的內(nèi)容都可能沒(méi)有。圖1復(fù)合值到字段列表的編碼(若內(nèi)容很長(zhǎng))21(19、2123),隨后的各部分是多對(duì)位字段(ALIGNED),首先是內(nèi)容段11.9規(guī)定。11XX圖2長(zhǎng)數(shù)據(jù)值的編碼10.5.2一個(gè)空字段(無(wú)內(nèi)容b)一個(gè)位字段(未對(duì)齊一個(gè)位字段(ALIGNED);一個(gè)字段列表,它可以包含位字段(未對(duì)齊)、位字段(ALIGNED)、或者兩者都有。被編碼的類型下列各章規(guī)定將以下類型編碼到字段列表中:布爾、整數(shù)、枚舉、實(shí)數(shù)、位串、八位位組串、空、序列、單一序列、集合、單一集合、選擇、開(kāi)放、客體標(biāo)識(shí)符、相關(guān)客體標(biāo)識(shí)符、嵌入式pdv、外部、受限字符串和不受限字符串的類型。選擇類型應(yīng)編碼為所選類型的編碼。10.2帶前綴類型的編碼根據(jù)帶前綴的類型進(jìn)行編碼。GB/T16263.1—AAAA45——通用時(shí)間;——世界協(xié)調(diào)時(shí);——客體描述符。對(duì)有用類型的約束不是PER可視的,GB/T16263.1—EEEE的11.7和11.8對(duì)通用時(shí)間和世界協(xié)調(diào)時(shí)的編碼的限制適用于此。GB/T16262.1—AAAA16.8編碼過(guò)程完整編碼的產(chǎn)生式ASN.133.2(或通過(guò)本文件的直接文本引用)列出的客體標(biāo)識(shí)符所標(biāo)識(shí)的任何編碼規(guī)則進(jìn)行編碼,并且編碼被包括在:ASN.1ASN.1ASN.1ASN.1pdvASN.1則該ASN.1類型被定義為這種應(yīng)用的最外層類型,應(yīng)遵循11.1.2中適用于其值的所有編碼。注1:這意味著使用此方法的所有完整的PER編碼(對(duì)所有變體)總是八位的整數(shù)倍,除非使用UNALIGNED變體,并且在ASN.1的位串中(例如b)進(jìn)行編碼。注2:可以使用編碼控制記法(見(jiàn)GB/T16263.3)來(lái)規(guī)定PER編碼的變體,該編碼不會(huì)被填充到11.1.2中規(guī)定的八位位組邊界,許多工具都支持這一選項(xiàng)。12注3:普遍認(rèn)為,在不使用ASN.1定義的載體協(xié)議中,不需要顯式攜帶額外的O位用于填充(在11.1.2中規(guī)定),但可以隱含0位的存在。對(duì)于最外層類型抽象值應(yīng)用本文件的結(jié)果所產(chǎn)生的字段列表,應(yīng)按照以下步驟生成該抽象語(yǔ)法值的完整編碼:應(yīng)依序取出字段列表中的每個(gè)字段,拼接到位串的末端,形成的位串即為抽象語(yǔ)法值的完整編碼,該抽象語(yǔ)法值的完整編碼可按如下規(guī)定添加填充的附加0位。UNALIGNED11.1.1bb。ASN.107)08(對(duì)于編碼的結(jié)果包括在一個(gè)ASN.1位串中的情況)如果最外層值編碼的結(jié)果是空位字符007)08ALIGNED接(07)080807)081:2:0()。所產(chǎn)生的位串是最外層類型的抽象語(yǔ)法值的完整編碼。開(kāi)放類型字段為了編碼開(kāi)放類型字段,占用該字段的實(shí)際類型的值應(yīng)編碼到一個(gè)字段列表中,然后,該字11.1n要嵌入的開(kāi)放類型值的字段列表應(yīng)被添加上(11.9)n(以八位位組為單位)11.2.1ALIGNED)。注:當(dāng)開(kāi)放類型編碼中八位位組的數(shù)目很大時(shí),應(yīng)使用11.9中的分片過(guò)程,開(kāi)放類型編碼將是斷開(kāi)的,而與占用開(kāi)放類型字段的類型編碼中分片邊界的位置無(wú)關(guān)。非負(fù)二進(jìn)制整數(shù)的編碼注:(說(shuō)明性)本條給出術(shù)語(yǔ)“非負(fù)二進(jìn)制整數(shù)編碼”的精確描述,以便把該整數(shù)放到固定位數(shù)目的字段中,或放到固定數(shù)目的八位位組的字段中,或者放到容納該整數(shù)所需的最少數(shù)目八位位組的字段中。以下條涉及進(jìn)入某一字段的非負(fù)整個(gè)數(shù)的非負(fù)二進(jìn)制整數(shù)編碼的生成,而該字段是規(guī)定長(zhǎng)度為單個(gè)八位位組、兩個(gè)八位位組的位字段或者是表示該值的最少數(shù)目八位位組的位字段,本條(11.3)規(guī)定進(jìn)行引用時(shí)所使用的精確編碼。1101,依此類推,直到該字段的引導(dǎo)位。在非負(fù)二進(jìn)制整數(shù)編碼中,編碼所表示的整數(shù)的值應(yīng)是每位所指定值之和。置為“0”的位的0,編號(hào)為“n”的位,若置為“l(fā)”則該位的指定值為2?。對(duì)被編碼值的求和(按上述定義)的編碼即是對(duì)該值的編碼。13XX注:如果被編碼字段長(zhǎng)度為固定(指定長(zhǎng)度的單個(gè)八位位組或兩個(gè)八位位組的位字段)的,則存在唯一的編碼,它是被編碼的值的和。整個(gè)數(shù)(它不能預(yù)先確定用于編碼的八位位組的數(shù)目)的最少數(shù)目八位位組的非負(fù)二進(jìn)制整數(shù)編碼具有八位的整數(shù)倍的某一字段,并且該字段應(yīng)滿足如下條件,除非該字段是準(zhǔn)確的八位長(zhǎng),否0。注:這是產(chǎn)生唯一編碼的充分必要條件。2的補(bǔ)碼的二進(jìn)制整數(shù)的編碼注:(說(shuō)明性)本條給出術(shù)語(yǔ)“2的補(bǔ)碼的二進(jìn)制整數(shù)編碼”的精確描述,以便把有符號(hào)的整數(shù)放到為容納該有符號(hào)整數(shù)所需的最少數(shù)目的八位位組中,這些過(guò)程在后面的編碼規(guī)范中引用。后續(xù)條規(guī)定如何將整數(shù)(可能是負(fù)數(shù)、0)編碼到表示其值的最少數(shù)目八位位組的2的補(bǔ)碼二進(jìn)制整數(shù)的編碼中。本條(11.4)規(guī)定進(jìn)行這種引用時(shí)所使用的精確編碼。1101,依此類推,直到該字段的引導(dǎo)位。2的補(bǔ)碼的二進(jìn)制整數(shù)編碼中,編碼所表示的整個(gè)數(shù)的值應(yīng)是每位所指定值之和。置為“00。除引導(dǎo)位外,編號(hào)為“n”的位,若置為“1”則該位的指定值為2?1,則該位的指定值為(負(fù)數(shù))?2?。對(duì)被編碼值的求和(按上述定義)的任何編碼均為對(duì)該值的編碼。2901。注:這是產(chǎn)生唯一編碼的充分必要條件。受約束的整個(gè)數(shù)的編碼注:(說(shuō)明性)本條被其他條引用,并引用前面條,以便產(chǎn)生非負(fù)二進(jìn)制整數(shù)編碼或2的補(bǔ)碼的二進(jìn)制整數(shù)編碼。對(duì)于UNALIGNED變體,該值總是編碼在表示該范圍(在11.5.3中定義)所需的最少數(shù)目位中,本注的其余部分針對(duì)ALIGNED變體,當(dāng)范圍小于或等于255時(shí),該值被編碼到表示該范圍的最小長(zhǎng)度的位字段中。當(dāng)范圍正好是256時(shí),該值被編碼到單個(gè)八位位組對(duì)齊的位字段中,當(dāng)范圍在257到64K之間時(shí),該值被編碼到兩個(gè)八位位組對(duì)齊位字段中,當(dāng)范圍大于64K時(shí),則忽略范圍,并且該值被編碼到八位位組對(duì)齊位字段中,該位字段是表示該值的最少數(shù)目八位位組,在最后一種情況下,后面的過(guò)程(見(jiàn)11.9)將編碼一個(gè)長(zhǎng)度字段(通常是單個(gè)八位位組),以指示編碼的長(zhǎng)度,對(duì)其他情況,編碼的長(zhǎng)度與被編碼的值無(wú)關(guān),不被顯式編碼。本條(11.5)規(guī)定了如何將受約束的整個(gè)數(shù)映射到位字段(不對(duì)齊的)或者位字段(在ALIGNED變體中的八位位組對(duì)齊),并在本文件中的后續(xù)條引用。僅當(dāng)受約束的被編碼的整個(gè)數(shù)是可用的,并且下邊界“l(fā)b”和上邊界“ub”的值已從類型記法中確定下來(lái)(PER),本條的過(guò)程才能被引用。注:如果對(duì)一個(gè)無(wú)限數(shù)求MIN值,則不能確定下邊界,如果對(duì)一個(gè)無(wú)限數(shù)求MAX值,則不能確定上邊界。例如,對(duì)INTEGER(MIN..MAX),則上邊界和下邊界都不能確定。設(shè)“范圍”定義為整數(shù)值(“ub”-“l(fā)b”+1),且設(shè)被編碼的值為“n”。1,則編碼結(jié)果應(yīng)是一個(gè)空的位字段(沒(méi)有任何位)。5(導(dǎo)致不同的編碼)UNALIGNED414UNALIGNEDn”-“l(fā)b11.3注:如果“范圍”滿足不等式2?<“范圍”≤2m+1,則位數(shù)為m+l。ALIGNED255(位字段的情況);256(一個(gè)八位位組的情況);25664K(兩個(gè)八位位組的情況);64K(不定長(zhǎng)度的情況)。(位字段的情況)255,則本條的引用要求生成下表所規(guī)定的位11.3n”-“l(fā)b”)?!胺秶蔽蛔侄伍L(zhǎng)度(按位計(jì))213、425、6、7、839~16417~32533~64665~1287129~2558(一個(gè)八位位組的情況)256,則值(“n”-“l(fā)b11.3)。(兩個(gè)八位位組的情況)25764K,則值編碼為11.3規(guī)定的非負(fù)二進(jìn)制整數(shù)(“n”-“l(fā)b”)放在兩個(gè)八位位組位字段(ALIGNED變體中的八位位組對(duì)齊)中。(不定長(zhǎng)度的情況)否則,值(“n”-“l(fā)b11.3在表示該值的最少數(shù)目八位位組的位字段(ALIGNED)中,并且該編碼中使用的八位位組的數(shù)目“l(fā)en”被引用本條的其他條用來(lái)規(guī)定長(zhǎng)度的編碼。正常小非負(fù)整數(shù)的編碼注:(說(shuō)明性)當(dāng)編碼期望為小非負(fù)整個(gè)數(shù),但其長(zhǎng)度由于存在擴(kuò)展標(biāo)記而引起潛在地不受限制時(shí),可使用本過(guò)程,例如,在處理選擇索引時(shí)。如果非負(fù)整個(gè)數(shù)“n63,則一個(gè)單個(gè)位的位字段應(yīng)被附加到字段列表后,該位置為0,并且“n”應(yīng)編碼為非負(fù)二進(jìn)制整數(shù),放入一個(gè)6位的位字段中。如果“n641值“n”應(yīng)編碼為半受約束的且“l(fā)b011.9的過(guò)程將它附加到字段列表中,該字段列表前面是長(zhǎng)度決定因子。半受約束的整個(gè)數(shù)的編碼注:(說(shuō)明性)當(dāng)在能夠標(biāo)識(shí)出下邊界但不能標(biāo)識(shí)上邊界時(shí),可適用本編碼過(guò)程。編碼過(guò)程將與下邊界的偏移值作為非負(fù)二進(jìn)制整數(shù)放入最少數(shù)目的八位位組,并且要求一個(gè)按后面過(guò)程規(guī)定的顯式長(zhǎng)度編碼(典型的是單個(gè)八位位組)。15XX本條規(guī)定了從半受約束的整個(gè)數(shù)到位字段(ALIGNED)的映射,并且它將被本文件的后續(xù)條所引用。僅當(dāng)被編碼的半受約束的整個(gè)數(shù)可用,并且下邊界“l(fā)b”的值已經(jīng)從類型記法中確定(在應(yīng)PER)時(shí),本條(11.7)的過(guò)程才能被引用。注:如果對(duì)一個(gè)無(wú)限數(shù)求MIN值,則不能確定下邊界。例如,對(duì)INTEGER(MIN..MAX)不能確定任何下邊界。本條(11.7)的過(guò)程總是產(chǎn)生不定長(zhǎng)度的情況。(不定長(zhǎng)度的情況)值(“n”-“l(fā)b11.3值的最少數(shù)目八位位組的位字段(ALIGNED)中,并且該編碼中使用的八位位組的數(shù)目“l(fā)en”被引用本條的其他條用來(lái)規(guī)定長(zhǎng)度的編碼。不受約束的整個(gè)數(shù)的編碼注:(說(shuō)明性)這種情況只在沒(méi)有下邊界的整數(shù)型值的編碼中出現(xiàn)。本過(guò)程將該值編碼為2的補(bǔ)碼二進(jìn)制整數(shù),并放入容納該編碼所需的最少數(shù)目八位位組中,并且要求有一個(gè)按后面過(guò)程規(guī)定的顯式長(zhǎng)度編碼(典型的是單個(gè)八位位組)。本條(11.8)規(guī)定了從不受約束的整數(shù)(如“n”)到位字段(ALIGNED齊)的映射,它被本文件的后續(xù)條引用。本條(11.8)的過(guò)程總是產(chǎn)生不定長(zhǎng)度的情況。(不定長(zhǎng)度的情況)值“n11.42最少數(shù)目八位位組的位字段(ALIGNED)中,并且該編碼中使用的八位位組的數(shù)目“l(fā)en”被引用本條的其他條用來(lái)規(guī)定長(zhǎng)度的編碼。長(zhǎng)度決定因子編碼的一般規(guī)則注1:(說(shuō)明性)本條規(guī)定的過(guò)程只在編碼的某些部分需要一個(gè)顯式的長(zhǎng)度字段時(shí)被引用,無(wú)論長(zhǎng)度計(jì)數(shù)是否有上邊界(通過(guò)PER可視約束)。使用長(zhǎng)度的編碼部分可能是位串(帶有以位表示的長(zhǎng)度計(jì)數(shù))、八位位組串(帶有以八位位組表示的長(zhǎng)度計(jì)數(shù))、已知倍數(shù)字符串(帶有以字符表示的長(zhǎng)度計(jì)數(shù))、或者字段列表(帶有以單一序列或單一集合的組件表示的長(zhǎng)度計(jì)數(shù))。注2:(說(shuō)明性)在ALIGNED變體的情況下,如果長(zhǎng)度計(jì)數(shù)上限小于64K,則長(zhǎng)度使用受約束的整數(shù)編碼。對(duì)于足夠小的范圍,其結(jié)果是一個(gè)位字段,否則,不受約束的長(zhǎng)度(如“n”),將按以下列三種方式之一編碼到八位位組對(duì)齊字段中(依長(zhǎng)度遞增的次序):(“n”小于128)含有“n”的位8置為0的單個(gè)八位位組;(“n”小于16K)含有“n”的兩個(gè)八位位組,第1個(gè)八位位組的位8置為1,位7置為0;(大“n”)含有計(jì)數(shù)“m”的單個(gè)八位位組,位8置為1,位7也置為1。計(jì)數(shù)“m”為1~4,該長(zhǎng)度表示其后面有一個(gè)資料分片(16K項(xiàng)的“m”倍)。對(duì)于所有“m的長(zhǎng)度編碼。注3:(說(shuō)明性)在UNALIGNED變體中,如果長(zhǎng)度計(jì)數(shù)上限小于64K,則受約束的整數(shù)編碼用來(lái)編碼表示該范圍所需的最少數(shù)目位的長(zhǎng)度,否則不受約束的長(zhǎng)度(如“n”)按上述注2的方式編碼到位字段中。按照后面各條的規(guī)范,如果長(zhǎng)度決定因子“n”的值被類型定義(PER)限定為小于64K的值,則不能引用本條。本條被引用來(lái)向字段列表附加字段或者字段列表,其前面是一個(gè)長(zhǎng)度決定因子“n”,長(zhǎng)度決定因子用于決定:以關(guān)聯(lián)字段的八位位組表示的長(zhǎng)度(單位為八位位組);以關(guān)聯(lián)字段的位表示的長(zhǎng)度(單位為位);以關(guān)聯(lián)的字段列表表示的組件編碼的數(shù)目(單位為單一集合或單一序列的組件);16以關(guān)聯(lián)的已知倍數(shù)字符串類型的值表示的字符數(shù)(單位為字符)。(ALIGNED)ALIGNED.4(UNALIGNED11.9.4)。作為類型定義(在后面的條中規(guī)定)的分析結(jié)果,長(zhǎng)度決定因子(一個(gè)整個(gè)數(shù)“n”)將被確定為:一個(gè)正常小長(zhǎng)度,其下邊界“l(fā)b1;或者一個(gè)受約束的整數(shù),具有(0)的下邊界“l(fā)b”,上邊界“ub64K;一個(gè)半受約束的整個(gè)數(shù),具有(0)的下邊界“l(fā)b”,或者一個(gè)受約束的整個(gè)數(shù),具有(0)的下邊界“l(fā)b64Kub”。引用本條(11.9)過(guò)程的各條將確定長(zhǎng)度的下邊界“l(fā)b”的值(如果長(zhǎng)度是不受約束的,則0)和長(zhǎng)度的上邊界“ubPERub”為不設(shè)置。當(dāng)長(zhǎng)度決定因子是一個(gè)“ub64K11.5n0,則其后應(yīng)有關(guān)聯(lián)字段或字段列表,過(guò)程結(jié)束。如果“n0,則對(duì)字段列表不應(yīng)進(jìn)一步附加任何內(nèi)容,過(guò)程結(jié)束。注1:例如:AIA5StringSIZE(3..6)) 2位的位字段編碼BIA5StringSIZE(40000..40254)) 8位的位字段編碼CIA5StringSIZE(O..32000)) --長(zhǎng)度以兩個(gè)八位位組(ALIGNED字段編碼DIA5StringSIZE(64000)) --長(zhǎng)度不予編碼注2:當(dāng)這些過(guò)程被引用來(lái)添加0長(zhǎng)度的八位位組對(duì)齊位字段時(shí),在“n”等于0的情況下,不進(jìn)行添加的影響是指對(duì)八位位組邊界的填充并不出現(xiàn),除非11.5條要求。當(dāng)長(zhǎng)度決定因子是一個(gè)正常小長(zhǎng)度,并且“n64,則一個(gè)單個(gè)位的位字段將0,值“n-16.4n”大于64,則一個(gè)單個(gè)位的位字段應(yīng)被附加到字段列表上,且該位置為1n的編碼,再后是關(guān)聯(lián)的字段。注:正常小長(zhǎng)度只用來(lái)指示位圖的長(zhǎng)度,該位圖表示集合或序列類型的擴(kuò)展附加部分值的前綴。否則(不受約束的長(zhǎng)度,或大“ub”),“n”被編碼并添加到字段列表上,其后是以下規(guī)定的關(guān)聯(lián)字段。注:下邊界“l(fā)b”不影響到.4中規(guī)定的長(zhǎng)度編碼。如果“n127,則“n”應(yīng)作為非負(fù)二進(jìn)制整數(shù)(11.3)被編碼到一個(gè)單個(gè)八位位組位7(最高有效位)1(最低有效位)80。它應(yīng)作為位字段(在ALIGNED變體中的八位位組對(duì)齊)附加到字段列表后,其后是關(guān)聯(lián)的字段或字段列表,過(guò)程結(jié)束。注:例如,如果下列A的值為4個(gè)字符長(zhǎng),并且B的值為4個(gè)項(xiàng)長(zhǎng):A::=IA5StringB::=SEQUENCE(SIZE(4..123456))OFINTEGER則這兩個(gè)值都在占用一個(gè)八位位組的長(zhǎng)度八位位組中編碼,且最高有效位置為0,以表明長(zhǎng)度小于或等于127:17XX如果“n12716K,則“n”應(yīng)(11.3)編碼為非負(fù)二進(jìn)制整數(shù)放入兩個(gè)八位位組位字段(ALIGNED)1(最高有效)的位62(最低有效)118110。它應(yīng)被附加到字段列表后,其后是關(guān)聯(lián)字段或字段列表,過(guò)程結(jié)束。注:如果在示例中A的值為130個(gè)字符,B的值為130項(xiàng),則這兩個(gè)值在占用2個(gè)八位位組的長(zhǎng)度組件和該八位位組的2個(gè)最高有效位(位8和位7)均置為10的情況下進(jìn)行編碼,表示長(zhǎng)度大于127小于16K。如果“n16K,則在位字段(ALIGNED)中的單個(gè)八位位組應(yīng)被附加到字段列表上,該單個(gè)八位位組的位8171611、2、34,作為非負(fù)二進(jìn)制整數(shù)(11.8)編碼。該單個(gè)八位位組后應(yīng)是下面規(guī)定的部分關(guān)聯(lián)字段或字段列表。注:位6到位1的值限制為1~4(而不是理論值0~63),是為了把實(shí)現(xiàn)必須了解的項(xiàng)數(shù)限制到更易于管理的數(shù)目(64K而不是1024K)上。61(14)16K(記“m61擇應(yīng)是最大可允許的值,這樣,相關(guān)聯(lián)的字段或字段列表含有多于或正好等于合適的“m”個(gè)八位位組、位、組件或字符。注1:不分片形式處理的長(zhǎng)度達(dá)16K,因此分片可以提供高達(dá)64K的長(zhǎng)度,粒度為16K。注2:如果在的示例中,B的值長(zhǎng)度為144K+1(即64K+64K+l6K+l)項(xiàng)長(zhǎng),則該值被分片,前三個(gè)分片的兩個(gè)最高有效位(位8和位7)置為11,表明后面的1到4個(gè)塊,每塊16K項(xiàng),另一個(gè)長(zhǎng)度組件跟在每個(gè)分片的最后一塊之后?!癿”指定的內(nèi)容部分應(yīng)以以下方式添加到字段列表中:“m”個(gè)八位位組的單個(gè)位字段(ALIGNED變體中的八位位組對(duì)齊)含有關(guān)聯(lián)字段的前“m”個(gè)八位位組,單位為八位位組;“m”位的單個(gè)位字段(ALIGNED)含有關(guān)聯(lián)字段的前“m”位,單位為位;字段列表編碼關(guān)聯(lián)字段列表中的前“m”個(gè)組件,單位為單一集合類型或單一序列類型的組件;a)“m”個(gè)字符的單個(gè)位字段(在ALIGNED變體中的八位位組對(duì)齊)含有關(guān)聯(lián)字段的前“m”個(gè)字符,單位為字符。1811.9上,該長(zhǎng)度是等于(“n”-“m0。注:如果含有部分編碼值的最后一個(gè)分片的長(zhǎng)度正好是16K的整數(shù)倍,則其后的最末一個(gè)分片只由單個(gè)八位位組的長(zhǎng)度組件構(gòu)成,該長(zhǎng)度組件置為0。重復(fù)應(yīng)用上述過(guò)程,只將關(guān)聯(lián)字段的一部分添加到字段列表上稱為分片過(guò)程。(UNALIGNEDUNALIGNED(ALIGNED11.9.3)。如果要編碼的長(zhǎng)度決定因子“n”是“ub64K11.3定)1,在這種情況下,不應(yīng)有長(zhǎng)度編碼。如果“n0,則其后是關(guān)聯(lián)字段或字段列表,過(guò)程結(jié)束。如果“n0,則不再向該字段列表添加字段表,過(guò)程結(jié)束。注:如果“范圍”滿足不等式2?<“范圍”≤2m+1,則長(zhǎng)度決定因子中的位數(shù)為m+l。如果被編碼的長(zhǎng)度決定因子“n64K.4注:因此,如果“ub”大于或等于64K,長(zhǎng)度決定因子編碼與長(zhǎng)度不受約束時(shí)相同。布爾類型的編碼布爾類型的值應(yīng)被編碼為由單個(gè)位構(gòu)成的位字段。lTRUE0FALSE。位字段應(yīng)被添加到不帶長(zhǎng)度決定因子的字段列表上。整數(shù)類型的編碼注1:(ALIGNED變體說(shuō)明性)所允許的全部值編碼到一個(gè)或更少的八位位組的范圍,放入一個(gè)沒(méi)有長(zhǎng)度計(jì)數(shù)的最小長(zhǎng)度的位字段,所允許的全部值編碼到兩個(gè)八位位組的范圍,放入一個(gè)沒(méi)有長(zhǎng)度計(jì)數(shù)的八位位組對(duì)齊的位字段中的兩個(gè)八位位組。否則,該值被編碼到最少數(shù)目的八位位組(當(dāng)合適時(shí)使用非負(fù)二進(jìn)制整數(shù)或2的補(bǔ)碼二進(jìn)制整數(shù)編碼)中并添加上長(zhǎng)度決定因子。在這種情況下,如果整數(shù)值可以被編碼在小于127個(gè)八位位組(作為可能確定的任何下邊界的偏移)中,并且沒(méi)有有限上邊界和下邊界,則存在一個(gè)八位位組的長(zhǎng)度決定因子,否則,該長(zhǎng)度被編碼在所需的最少位數(shù)中。其他情況沒(méi)有實(shí)際意義,但為了完整性也進(jìn)行了規(guī)定。注2:(UNALIGNED變體說(shuō)明性)受約束的整數(shù)被編碼為表示其范圍所需的最小位數(shù),而不管其大小。不受約束的整數(shù)編碼如注1所示。1表上。如果被編碼的值不在擴(kuò)展根的范圍內(nèi),則該位應(yīng)置為1,否則置為0。對(duì)前一種情況,該值應(yīng)按13.2.413.2.6如果整數(shù)類型的約束規(guī)范中不存在擴(kuò)展標(biāo)記,則使用下列條。PERPER11.5(受約束的整個(gè)數(shù)的編碼)的過(guò)程將其轉(zhuǎn)換成某個(gè)字段,然后應(yīng)使用13.2.513.2.6PER11.7(半受約束的整個(gè)數(shù)的編碼)13.2.619XXPER11.8(不受約束的整個(gè)數(shù)的編碼)的過(guò)程將其轉(zhuǎn)換成某個(gè)字段,然后應(yīng)使用13.2.6的過(guò)程。如果引用將整數(shù)值編碼到某個(gè)字段的過(guò)程不產(chǎn)生不定長(zhǎng)度的情況(11.8.2),則該字段應(yīng)被添加到字段列表上,過(guò)程結(jié)束。否則(不定長(zhǎng)度情況)11.9受約束的長(zhǎng)度決定因子等于“l(fā)en)PER有限上下邊界的類型,并且如果該類型是可擴(kuò)展的,則該值位于擴(kuò)展根范圍內(nèi)。長(zhǎng)度決定因子使用的下邊界“l(fā)b1,上邊界“ub”應(yīng)是容納該整數(shù)值范圍所需的八位位組數(shù)的計(jì)數(shù)。fooINTEGER(256..1234567)::=256ALIGNEDx’表示一個(gè)零填充位,它可能存在也可能不存在,這取決于長(zhǎng)度在八位位組中出現(xiàn)的位置(例如,如果長(zhǎng)度開(kāi)始于一個(gè)八位位組的邊界,則編碼是00xxxxxx00000000,如果長(zhǎng)度開(kāi)始于一個(gè)八位位組的兩個(gè)最低有效位(位2和位1),則編碼是0000000000)。不受約束的長(zhǎng)度決定因子等于“l(fā)en11.711.8)PER制具有有限上下邊界的類型,或者如果該類型是可擴(kuò)展的,并且該值不在擴(kuò)展根的范圍內(nèi)。枚舉類型的編碼注:(說(shuō)明性)沒(méi)有擴(kuò)展標(biāo)記的枚舉類型被編碼為一個(gè)受約束整數(shù),其子類型約束不包含擴(kuò)展標(biāo)記。這意味著枚舉類型在實(shí)際中,枚舉類型差不多總是被編碼為表示每個(gè)枚舉所需的最少位數(shù)中的某個(gè)位字段。存在擴(kuò)展標(biāo)記時(shí),如果該值不在擴(kuò)展根中,則將其編碼為正常小非負(fù)整個(gè)數(shù)。01賦予第2個(gè)枚舉,以此類推,直到排序表中的最后一個(gè)枚舉。擴(kuò)展附加枚舉(始終按升序定義)應(yīng)賦予從0開(kāi)始的枚舉索引,1賦予給第2個(gè)枚舉,以此類推,直到擴(kuò)展附加枚舉中的最后一個(gè)枚舉。注:GB/T16262.1—AAAA要求每個(gè)連續(xù)的擴(kuò)展附加枚舉值應(yīng)大于前一個(gè)。如果在枚舉類型定義中不存在擴(kuò)展標(biāo)記,則應(yīng)編碼枚舉索引。其編碼應(yīng)被視為不存在擴(kuò)展標(biāo)記0,而上邊界為與該類型相關(guān)聯(lián)的最大枚舉索引,過(guò)程結(jié)束。11014.1為正常小非負(fù)整個(gè)數(shù)添加到字段列表中,該整數(shù)的值是附加枚舉的枚舉索引,并且其“l(fā)b0,14.2注:沒(méi)有可適用于枚舉類型的PER可視約束對(duì)這些編碼規(guī)則來(lái)說(shuō)是可視的。實(shí)數(shù)類型的編碼注:(說(shuō)明性)實(shí)數(shù)使用以長(zhǎng)度決定因子開(kāi)頭的CER/DER內(nèi)容八位位組,在實(shí)際中,該長(zhǎng)度決定因子是單個(gè)八位位組。10102,則編碼值的基數(shù)應(yīng)該是2。GB/T16263.1—EEEE11.3CERDERREAL編碼來(lái)給出某個(gè)位字段(在ALIGNED)CER/DER組由“n”個(gè)八位位組構(gòu)成,并且被放在“n”個(gè)八位位組的位字段(ALIGNED20齊)11.9n”個(gè)八位位組的位字段(ALIGNED)添加到字段列表上,前面是等于“n”的不受約束的長(zhǎng)度決定因子。位串類型的編碼注:(說(shuō)明性)受約束于固定長(zhǎng)度小于或等于16位的位串不會(huì)引起八位位組對(duì)齊,較大位串是在ALIGNED變體中的八位位組對(duì)齊的。如果長(zhǎng)度被若干約束所固定,且上邊界小于64K,則沒(méi)有顯式的長(zhǎng)度編碼,否則,所包含的長(zhǎng)度編碼可以采用任何一種前面規(guī)定的長(zhǎng)度編碼的形式,包括大型位串的分片。PERPERGB/T16262.1—AAAA22.70(注,這意味著不帶1位的值總被編碼為空位串)。PERGB/T16262.1—AAAA22.7(即位串類型是用“NamedBitList”定義)適用時(shí),當(dāng)有必要保證發(fā)送值的長(zhǎng)度是能攜帶該值的最小長(zhǎng)度,并且滿足有效長(zhǎng)度約束時(shí),該0設(shè)位串(PER)中的最大位數(shù)為“ub”,最少位數(shù)為“l(fā)b”。如果沒(méi)有有限最大長(zhǎng)度,則認(rèn)為“ub”未設(shè)置。如果在最小長(zhǎng)度上沒(méi)有約束,則“l(fā)b0,設(shè)要編碼的實(shí)際位串值的長(zhǎng)度為“n”位。16.616.11PER(10.3.9),則應(yīng)將一個(gè)由單個(gè)位組成的位字段添加到10。對(duì)前一種情況,應(yīng)16.1116.816.11。0ub0),則不應(yīng)對(duì)其進(jìn)行編碼(字段列表不添加位串),本條過(guò)程結(jié)束。如果位串的所有值都被約束為同一長(zhǎng)度(“ub”等于“l(fā)b16串應(yīng)被放入到約束長(zhǎng)度為“ub”的位字段中,該“ub”應(yīng)被添加到無(wú)長(zhǎng)度決定因子的字段列表上,本條過(guò)程結(jié)束。如果位串的所有值都被約束為同一長(zhǎng)度(“ub”等于“l(fā)b16ub8)的位字段(ALIGNED16.816.10n”位的位字段(ALIGNED八位位組對(duì)齊)11.9n”位的位字段(ALIGNED齊)添加到字段列表中,如果設(shè)置了“ub64K,則該字段列表前面是作為受約束的整數(shù)的等于“n”位的長(zhǎng)度決定因子,或者,如果未設(shè)置“ub”,則該字段列表前面是作為半受約束的整數(shù)的等于“n”位的長(zhǎng)度決定因子,“l(fā)b”如上所述。注:對(duì)于16K、32K、48K或者64K位之后不受約束的或大型的“ub”,分片過(guò)程適用。八位位組串類型的編碼注:(說(shuō)明性)固定長(zhǎng)度小于或等于兩個(gè)八位位組的八位位組串不是八位位組對(duì)齊的。所有其他八位位組串都是在ALIGNED變體中八位位組對(duì)齊的。如果固定長(zhǎng)度八位位組小于64K,則使用無(wú)長(zhǎng)度八位位組進(jìn)行編碼。對(duì)于21XX不受約束的八位位組串,該長(zhǎng)度則被顯式編碼(必要時(shí)使用分片)。PER設(shè)八位位組串(PER)中八位位組的最大數(shù)目為“ub”,最小數(shù)目為“l(fā)b”。如果沒(méi)有有限最大值,則認(rèn)為“ub”未設(shè)置。如果在最小值上沒(méi)有約束,則“l(fā)b0。設(shè)要編碼的實(shí)際八位位組串的值的長(zhǎng)度為“n”個(gè)八位位組。PER(10.3.9),則應(yīng)將由單個(gè)字段組成的位字段10。對(duì)前一種情17.817.517.8。0(“ub0),則不應(yīng)對(duì)其進(jìn)行編碼(對(duì)字段列表不添加八位位組),本條過(guò)程結(jié)束。如果八位位組串的所有值都被約束為同一長(zhǎng)度(“ub”等于“l(fā)b”),并且該長(zhǎng)度小于或等于兩個(gè)八位位組,則八位位組串應(yīng)放到位數(shù)等于受約束長(zhǎng)度為八倍“ub”的位字段中,該長(zhǎng)度應(yīng)被添加到不帶長(zhǎng)度決定因子的字段列表上,本條過(guò)程結(jié)束。如果八位位組串的所有值都被約束為同一長(zhǎng)度(“ub”等于“l(fā)b”),并且該長(zhǎng)度大于兩個(gè)八64K,則八位位組串應(yīng)放到受約束長(zhǎng)度為“ub”的位字段(ALIGNED17.517.7n”個(gè)八位位組的位字段(ALIGNED變體中的八位位組對(duì)齊)11.9n”個(gè)八位位組的位字段(ALIGNED中的八位位組對(duì)齊)添加到字段列表上,如果設(shè)置了“ub”,則該字段列表前面是作為受約束的整數(shù)的等于“n”個(gè)八位位組的長(zhǎng)度決定因子,如果未設(shè)置“ub”,則該字段列表前面是作為半受約束的整個(gè)數(shù)的等于“n”個(gè)八位位組的長(zhǎng)度決定因子?!發(fā)b”如上確定。注:在16K、32K、48K或64K個(gè)八位位組之后,分片過(guò)程可能適用??罩殿愋偷木幋a注:(說(shuō)明性)空值類型基本上是一個(gè)位置占位符,僅在選擇、可選集合或序列組件的情況下才有實(shí)際意義。在這些編碼規(guī)則中,執(zhí)行選擇中空值的標(biāo)識(shí)或其作為可選元素存在,而無(wú)需用八位位組表示空值。因此,空值從不構(gòu)成編碼的八位位組。對(duì)于空值的字段列表不應(yīng)有任何添加。序列類型的編碼注:(說(shuō)明性)序列類型以位圖前導(dǎo)碼開(kāi)始。如果該序列類型沒(méi)有擴(kuò)展標(biāo)記,則該位圖只記錄該類型中默認(rèn)或可選組件是否存在,編碼為固定長(zhǎng)度的位字段。如果該序列類型有擴(kuò)展標(biāo)記,則該位圖前有單個(gè)位,說(shuō)明編碼中擴(kuò)展附加部分的值是否真的存在。只要前導(dǎo)碼的長(zhǎng)度小于64K位,其編碼就不帶任何長(zhǎng)度決定因子,否則對(duì)長(zhǎng)度決定因子進(jìn)行編碼以獲得分片。該前導(dǎo)碼后面是對(duì)每個(gè)組件依次編碼的字段,如果存在擴(kuò)展附加部分,則第1個(gè)被編碼的擴(kuò)展附加部分前面是被編碼類型中的擴(kuò)展附加數(shù)目計(jì)數(shù)的編碼(作為通常很小的長(zhǎng)度),后面是長(zhǎng)度等于該計(jì)數(shù)的位圖,記錄每個(gè)擴(kuò)展附加部分存在與否,其后是各擴(kuò)展附加部分的編碼,各擴(kuò)展附加部分就像是開(kāi)放類型字段的值。在“ComponentTypeLists”或“SequenceType”中,如果序列類型具有擴(kuò)展標(biāo)記,則應(yīng)首先將單個(gè)位添加到長(zhǎng)度為1的位字段內(nèi)的字段列表中。如果編碼中存在擴(kuò)展附加值,則該位應(yīng)被置1,否22則置0(該位在下文中稱為“擴(kuò)展位”)。如果在“ComponentTypeLists”或“SequenceType”中沒(méi)有擴(kuò)展標(biāo)記,則不應(yīng)添加擴(kuò)展位。如果序列類型在擴(kuò)展根內(nèi)有“nOPTIONALDEFAULT,則應(yīng)產(chǎn)生帶有“n”位的單個(gè)位字段作為字段列表的附加部分。該位字段的位應(yīng)依次對(duì)序列類型中每個(gè)可選或者默認(rèn)組件1011如果“n64K,則該位字段應(yīng)添加到字段列表上。如果“n64K,則應(yīng)按照11.9的過(guò)程把這個(gè)“n”位的位字段添加到字段列表上,其前面是作為受約束的整數(shù)的等于“n”位的長(zhǎng)度決定因子,它的“ub”和“l(fā)b”都是“n”。注:在這種情況下,“ub”和“l(fā)b”都將被長(zhǎng)度過(guò)程忽略。這里引用這些過(guò)程是為了提供大前導(dǎo)碼的分片。這種情況應(yīng)該很少出現(xiàn)。前導(dǎo)碼后面應(yīng)依次列出存在的序列值組件的字段列表。CANONICAL-PER,如果要被編碼的值是個(gè)默認(rèn)值,則標(biāo)記為DEFAULTBASIC-PER,如果要被編碼的值是個(gè)簡(jiǎn)單類型(3.7.25DEFAULT的組件的編碼應(yīng)始終不存在,否則由發(fā)送器選擇是否對(duì)其進(jìn)行編碼。01,則下列過(guò)程適用。設(shè)要被編碼的類型中擴(kuò)展附加部分的數(shù)目為“n”,則應(yīng)產(chǎn)生“n”位的位字段,以便加到字段101注:如果聲稱與規(guī)范的特定版本一致,則值“n”總是等于該版本的擴(kuò)展附加的數(shù)目。11.9n”位的位字段添加到字段列表上,其前面是作為正常小長(zhǎng)度的等于“n”的長(zhǎng)度決定因子。注:“n”不能是0,因?yàn)樵撨^(guò)程只在至少存在一個(gè)被編碼的擴(kuò)展附加部分時(shí)調(diào)用。其后應(yīng)依次列出包含每個(gè)存在的擴(kuò)展附加部分的編碼的字段列表。每個(gè)“ComponentType”(即,不是“ExtensionAdditionGroup11.2.1一個(gè)開(kāi)放類型字段的值。每個(gè)“ExtensionAdditionGroup19.219.6編碼為序列類型,然后再如11.2.1規(guī)定的那樣進(jìn)行編碼,好像它是一個(gè)開(kāi)放類型字段的值。如果“ExtensionAdditionGroup”的所有組件值都缺少,則“ExtensionAdditionGroup”應(yīng)編碼為缺少擴(kuò)展附加部分(18.70)注1:如果“ExtensionAdditionGroup”含有標(biāo)記為OPTIONAL或DEFAULT的組件,則“ExtensionAdditionGroup”用位圖做前綴,表明每個(gè)標(biāo)記為OPTIONAL或DEFAULT的組件值是否存在。注2:在“擴(kuò)展標(biāo)記對(duì)“之后定義的“RootComponentTypeList”組件按其在擴(kuò)展標(biāo)記對(duì)前面直接定義的那樣進(jìn)行編碼。單一序列類型的編碼PER23XX設(shè)單一序列中的最大組件數(shù)目(PER)為“ub”,最小組件數(shù)目為“l(fā)b”。如果沒(méi)有有限最大數(shù)目或者“ub64K,我們說(shuō)“ub”未設(shè)置。如果在最小值上沒(méi)有約束,則“l(fā)b0,設(shè)要被編碼的實(shí)際單一序列值組件的數(shù)目為“n”個(gè)組件。單一序列的每個(gè)組件的編碼將生成許多字段,以便添加到單一序列類型的字段列表。PER110。對(duì)前一種情況,應(yīng)引11.9如果組件數(shù)固定(“ub”等于“l(fā)b”),且“ub64K,則對(duì)于單一序列應(yīng)沒(méi)有長(zhǎng)度決定因子,每個(gè)組件的字段應(yīng)依次添加到該單一序列的字段列表上。11.9n”個(gè)組件生成的字段列表添加到字段列表中,如果設(shè)置了“ub”,則在前面加一個(gè)等于“n”個(gè)組件的長(zhǎng)度決定因子作為受約束的整個(gè)數(shù),如果不設(shè)置“ub”,則作為半受約束的整個(gè)數(shù),“l(fā)b”如上所述。注1:在16K、32K、48K或64K個(gè)組件之后,分片過(guò)程可能適用。注2:分片的斷點(diǎn)在字段之間,在斷點(diǎn)之前的位數(shù)不必是八的整數(shù)倍。集合類型的編碼集合類型應(yīng)將“RootComponentTypeList”中的元素按照GB/T16262.1—AAAA中8.6規(guī)定的正則次序進(jìn)行排序,另外,當(dāng)一個(gè)或多個(gè)組件是無(wú)標(biāo)簽的選擇類型時(shí),為了決定組件編碼的次序,每個(gè)無(wú)標(biāo)簽的選擇類型按照它具有標(biāo)簽等于該選擇類型或者任何被嵌套的無(wú)標(biāo)簽的選擇類型的“RootComponentTypeList”中最小的標(biāo)簽進(jìn)行排序。出現(xiàn)在“RootComponentTypeList”中的集合元素應(yīng)被編碼,就像它聲明為序列類型一樣,出現(xiàn)在“ExtensionAdditionList”中的集合元素應(yīng)按照19.9條中制定的序列類型的組件進(jìn)行編碼(即它們按照定義的順序進(jìn)行編碼)。示例:IMPLICITTAGS的置標(biāo)簽環(huán)境假設(shè)如下:A::=SET{[3]INTEGER,[1]CHOICE,{[2]INTEGER,[4]INTEGER},CHOICE{CHOICE{[5]INTEGER,[6]INTEGER},CHOICE{[0]INTEGER24}}}被編碼的集合組件的次序總是e、b、a,因?yàn)闃?biāo)簽[0]排序最低,然后是[l]、[3]。單一集合類型的編碼CANONICAL-PER,單一集合類型組件值的編碼應(yīng)以升序出現(xiàn),作為與位串比較的組件編700注:為排序而增加的任何填充位或填充八位位組都不出現(xiàn)在實(shí)際的編碼中。BASIC-PER,單一集合應(yīng)像它已經(jīng)被聲明為單一序列類型那樣進(jìn)行編碼。選擇類型的編碼注:(說(shuō)明性)選擇類型是通過(guò)編碼指定的選定項(xiàng)的索引來(lái)進(jìn)行編碼,它被編碼為一個(gè)受約束的整數(shù)(除非在選擇類型中存在擴(kuò)展標(biāo)記,在這種情況下,它是一個(gè)正常小非負(fù)整個(gè)數(shù)),因此通常會(huì)占用編碼該索引所需的最小位數(shù)的固定長(zhǎng)度位字段(盡管在理論上它可以任意大),接下來(lái)是所選替代的編碼,在擴(kuò)展附加部分的選定項(xiàng)像它們是一個(gè)開(kāi)放類型字段的值那樣進(jìn)行編碼,只有唯一選定項(xiàng)時(shí)不編碼索引。PER選擇的每個(gè)組件有一個(gè)相關(guān)的索引,在選擇的根中的第1個(gè)選定項(xiàng)的索引值為0(GB/T16262.1—AAAA8.4)21,直到選擇的擴(kuò)展根中的最后一個(gè)組件。索引值以類似方式賦給“ExtensionAdditionAlternativesList”中的每個(gè)“NamedType0開(kāi)始,就像以擴(kuò)展根的組件開(kāi)始一樣,設(shè)“n”為根中的最大索引值。注:GB/T16262.1—AAAA的29.7要求每個(gè)連續(xù)添加的擴(kuò)展應(yīng)有比最后添加到“ExtensionAdditionAlternativesList”中的標(biāo)簽值更大的標(biāo)簽值。對(duì)于含有無(wú)標(biāo)簽選擇的選擇項(xiàng)的正則排序,每個(gè)無(wú)標(biāo)簽的選擇類型應(yīng)像它有一個(gè)標(biāo)簽等于該選擇類型或者任意被嵌套的無(wú)標(biāo)簽選擇類型的最小標(biāo)簽?zāi)菢优判?。如果選擇在擴(kuò)展根中只有一個(gè)選擇項(xiàng),那么選擇了該選擇項(xiàng),則不應(yīng)對(duì)索引進(jìn)行編碼。如果在“AlternativeTypeLists”中選擇類型有一個(gè)擴(kuò)展標(biāo)記,則首先應(yīng)將單個(gè)位添加到長(zhǎng)度110(該位在下列文本中稱為“擴(kuò)展位”),如果在“AlternativeTypeLists”中沒(méi)有擴(kuò)展標(biāo)記,則應(yīng)不增加擴(kuò)展位。130n”的整數(shù)值(在其子類型約束中沒(méi)有擴(kuò)展標(biāo)記)編碼到一個(gè)字段中,且應(yīng)添加該字段到字段列表上,其后應(yīng)是選定項(xiàng)的字段,本條過(guò)程結(jié)束。13如果擴(kuò)展位存在,并且選定項(xiàng)不在擴(kuò)展根內(nèi),則該選定項(xiàng)的選擇索引應(yīng)編碼為一個(gè)正常小非負(fù)整個(gè)數(shù),其“l(fā)b0,該字段應(yīng)添加到字段列表上,其后應(yīng)是含有選定項(xiàng)編碼的字段,該選定項(xiàng)11.2注:在選擇擴(kuò)展附加的版本括號(hào)不影響如何對(duì)“ExtensionAdditionAlternatives”進(jìn)行編碼??腕w標(biāo)識(shí)符類型的編碼25XX注:(說(shuō)明性)客體標(biāo)識(shí)符類型的編碼使用前面有長(zhǎng)度決定因子的BER的內(nèi)容八位位組,在實(shí)際中長(zhǎng)度是單個(gè)八位位組。應(yīng)使用為BER規(guī)定的編碼給出一個(gè)位字段(在ALIGNED變體中的八位位組對(duì)齊),即BER編碼的內(nèi)容八位位組,該BER編碼的內(nèi)容八位位組由“n”個(gè)八位位組構(gòu)成,被放入一個(gè)“n”個(gè)八位位組的位字段(在ALIGNED變體中的八位位組對(duì)齊)中,應(yīng)按照11.9將這個(gè)位字段(在ALIGNED變體中的八位位組對(duì)齊)添加到字段列表上,其前面是等于“n”的長(zhǎng)度決定因子,作為半受約束整數(shù)的八位位組計(jì)數(shù)。相關(guān)客體標(biāo)識(shí)符類型的編碼注:(說(shuō)明性)相關(guān)客體標(biāo)識(shí)符類型的編碼使用前面有長(zhǎng)度決定因子的BER內(nèi)容八位位組,在實(shí)際中長(zhǎng)度是單個(gè)八位位組,下列正文與24章中的正文相同。應(yīng)使用為BER規(guī)定的編碼給出一個(gè)位字段(在ALIGNED變體中的八位位組對(duì)齊),即BER編碼的內(nèi)容八位位組,該BER編碼的內(nèi)容八位位組由“n”個(gè)八位位組構(gòu)成,被放入一個(gè)“n”個(gè)八位位組的位字段(在ALIGNED變體中的八位位組對(duì)齊)中,應(yīng)按照11.9將這個(gè)位字段(在ALIGNED變體中的八位位組對(duì)齊)添加到字段列表上,其前面是等于“n”的長(zhǎng)度決定因子,作為半受約束整數(shù)的八位位組計(jì)數(shù)。國(guó)際化資源引用類型的編碼注:(說(shuō)明性)國(guó)際化資源引用類型的編碼使用前面有長(zhǎng)度決定因子的BER內(nèi)容八位位組,下面的正文與24章的正文相同。應(yīng)使用為BER規(guī)定的編碼給出一個(gè)位字段(在ALIGNED變體中的八位位組對(duì)齊),即BER編碼的內(nèi)容八位位組,該BER編碼的內(nèi)容八位位組由“n”個(gè)八位位組構(gòu)成,被放入一個(gè)“n”個(gè)八位位組的位字段(在ALIGNED變體中的八位位組對(duì)齊)中,應(yīng)按照11.9將這個(gè)位字段(在ALIGNED變體中的八位位組對(duì)齊)添加到字段列表上,其前面是等于“n”的長(zhǎng)度決定因子,作為半受約束整數(shù)的八位位組計(jì)數(shù)。相關(guān)國(guó)際化資源引用類型的編碼注:(說(shuō)明性)相關(guān)國(guó)際化資源引用類型的編碼使用前面有長(zhǎng)度決定因子的BER內(nèi)容八位位組。下面的正文與24章的正文相同。應(yīng)使用為BER規(guī)定的編碼給出一個(gè)位字段(在ALIGNED變體中的八位位組對(duì)齊),即BER編碼的內(nèi)容八位位組,該BER編碼的內(nèi)容八位位組由“n”個(gè)八位位組構(gòu)成,被放入一個(gè)“n”個(gè)八位位組的位字段(在ALIGNED變體中的八位位組對(duì)齊)中,應(yīng)按照11.9將這個(gè)位字段(在ALIGNED變體中的八位位組對(duì)齊)添加到字段列表上,其前面是等于“n”的長(zhǎng)度決定因子,作為半受約束整數(shù)的八位位組計(jì)數(shù)。pdv類型的編碼pdv嵌入式pdv類型的選項(xiàng)syntaxes使用PER可視內(nèi)部類型約束為單個(gè)值,或者選項(xiàng)identificationPERfixedd
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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年西寧晚報(bào)數(shù)字報(bào)刊內(nèi)容版權(quán)保護(hù)與許可合同3篇
- 建設(shè)工程消防查驗(yàn)合同(2篇)
- 重點(diǎn)領(lǐng)域政策力度持續(xù)加強(qiáng) 債券市場(chǎng)信用風(fēng)險(xiǎn)趨于緩和-2024年債券市場(chǎng)信用風(fēng)險(xiǎn)分析及2025年展望 -新世紀(jì)
- 初三中考備考指導(dǎo)模板
- 2025年銷售薪資結(jié)構(gòu)優(yōu)化合同規(guī)范2篇
- 九年級(jí)自我介紹綜評(píng)范文(4篇)
- 益陽(yáng)雙面銑床施工方案
- 雨刷器機(jī)械原理課程設(shè)計(jì)
- 二零二五民法典合同編電子書制作合同4篇
- 2025年度電影院日常保潔與觀眾安全服務(wù)合同4篇
- 物業(yè)民法典知識(shí)培訓(xùn)課件
- 2023年初中畢業(yè)生信息技術(shù)中考知識(shí)點(diǎn)詳解
- 2024-2025學(xué)年山東省德州市高中五校高二上學(xué)期期中考試地理試題(解析版)
- 《萬(wàn)方數(shù)據(jù)資源介紹》課件
- 麻風(fēng)病病情分析
- 《急診科建設(shè)與設(shè)備配置標(biāo)準(zhǔn)》
- 第一章-地震工程學(xué)概論
- JJF(陜) 063-2021 漆膜沖擊器校準(zhǔn)規(guī)范
- 《中國(guó)糖尿病防治指南(2024版)》更新要點(diǎn)解讀
- 交通運(yùn)輸類專業(yè)生涯發(fā)展展示
- TSGD7002-2023-壓力管道元件型式試驗(yàn)規(guī)則
評(píng)論
0/150
提交評(píng)論