1、ICS 35.100.60 L 79 GB 中华人民共和国国家标准GB/T 16263. 1-2006/ISO/IEC 8825-1 :2002 代替GB/T16263-1996 信息技术ASN.l编码规则第1部分:基本编码规则(BER)、正则编码规则(CER)和非典型编码规则(DER)规范Information technology-ASN. 1 encoding rules一Part 1 : Specification Of Basic Encoding Rules(BER) , Canonical Encoding Rules(CER) and Distinguished Encodin
2、g Rules(DER) CISO/IEC 8825-1: 2002 , IDT) 2006-03-14发布中华人民共和国国家质量监督检验检疫总局中国国家标准化管理委员会2006-07-01实施中华人民共和国国家标准信息技术ASN.l编码规则第1部分:基本编码规则(BER)、正则编码规则(CER)和非典型编码规则(DER)规范GB/丁16263.1-2006/ISO/IEC 8825-1, 2002 峰中国标准出版社出版发行北京复兴门外三里河北街16号邮政编码,100045网址电话,6852394668517548 中国标准出版社秦皇岛印刷厂印刷各地新华书店经销9峰开本880X 1230 1/
3、16 印张2字数55千字2006年8月第一版2006年8月第一次印刷峰书号:155066 1-27836 定价16.00元如有印装差错由本社发行中心调换版权专有侵权必究举报电话:(010)68533533GBjT 16263. 1-2006jISOjIEC 8825-1 :2002 目次前言.皿引言.凹1 范围.2 规范性引用文件-3 术语和定义4 缩略语.35 记法36 约定37 一致性38 基本编码结构.8. 1 编码的一般规则. 3 8. 2 布尔值的编码.6 8.3 整数值的编码8.4 枚举值的编码.7 8.5 实数值的编码.7 8.6 位串值的编码.8 8. 7 八位位组串值的编码.
4、 . 9 8. 8 空值的编码. 10 8. 9 序列值的编码.10 8. 10 单一序列值的编码.10 8.11 集合值的编码.10 8. 12 单一集合值的编码.10 8. 13 选择值的编码8. 14 有标签值的编码-8.15 开放类型的编码8. 16 单一实例值的编码.12 8.17 嵌入式pdv类型值的编码. 12 8.18 外部类型值的编码128.四客体标识符值的编码.13 8.20 相关客体标识符值的编码.148.21 受限字符串类型值的编码.14 8.22 无限制字符串类型值的编码169 正则编码规则9. 1 长度形式.17 9.2 串编码形式.179.3 集合成分10 非典型
5、编码规则10. 1 长度形式四GB/T 16263. 1一2006/ISO/IEC8825-1 : 2002 10.2 串编码形式.18 10.3 集合成分.,.18 11 CER和DER使用BER的限制1811. 1 布尔值.18 11. 2 未使用的位1811. 3 实数值.18 11. 4 GeneralString值.18 11. 5 默认值的集合和序列成分.18 11. 6 单一集合成分.19 11. 7 GeneralizedTime(通用时)1911. 8 UTCTime(世界协调时)12 传送语法定义中的BER、CER和DER的使用.,. 19 附录A(资料性附录)编码的示例.
6、21 附录B(资料性附录)客体标识符赋值.24附录C(资料性附录)实数值编码的实例.25 E GB/T 16263. 1-2006/ISO/IEC 8825-1 :2002 前GB/T 16263在信息技术ASN.1编码规则的总标题下,目前包括以下两个部分t一一一第1部分(即GB/T16263.1):基本编码规则(BER)、正则编码规则(CER)和非典型编码规则(DER)规范;一一第2部分(即GB/T16263.2) :紧缩编码规则(PER)规范。本部分为GB/T16263的第1部分,等同采用国际标准ISO/IEC8825-1: 2002(信息技术ASN.1 编码规则z基本编码规则(BER)、
7、正则编码规则(CER)和非典型编码规则(DER)规范(英文版)。与该项国际标准等同的文本是ITU-T建议X.690。本部分从实施之日起代替GB/T16263-1996(信息处理系统开放系统互连抽象语法记法一(ASN.l)基本编码规则规范。与GB/T16263-1996相比,本次修订在内容上作了如下变化:第3章术语和定义中,增加了正则编码、尾0位两个术语,将构造编码修订为结构化编码、简单编码修订为原始编码、接收者修订为接受器、发送者修订为发送器;一一第4章缩略语中,增加了BER、CER、DER和ULA四个缩略语。4.2条记法修订为第5章。4.2.2和4.2.3修订为第6章的第6.1和6.2条,增
8、加了6.3条;一一一将第5章修订为第7章,增加了7.4条;一一将第6章修订为第8.1条,增加第8章标题基本编码规则。图1-图4中分别去掉外框;一一-将第7章修订为第8.2条、第8章修订为第8.3条,.,第18章修订为第8.13条,去掉第19章,将第20章修订为第8.14条,去掉第21章,增加了8.15-8.18条,将第22章修订为8.19条、增加了第8.20条,将第23章修订为第8.21条并增加了8.21.6-8. 21. 10条,将表2修订为表3,去掉第24章,增加了第8.22条第8.23条,增加第9章第11章,将第25章修订为第12章;一一修订附录B中的内容,补充了在本部分中赋值的值;所有
9、示例中的英文尽量保留不译。按照GB/T1. 1-2000的规定,本部分与ISO/IEC8825-1: 2002相比做了下列编辑性修改:一本标准一词改为本部分;一一在引用的标准中,凡己转化为我国标准的各项标准,均用我国的相应标准编号代替。对规范性引用文件一章中的标准按GB/T1. 1-2000的规定进行了重新排列。本部分的附录A、附录B和附录C是资料性附录。本部分由中华人民共和国信息产业部提出。本部分由中国电子标准化研究所归口。本部分由北京信息工程学院、中国电子技术标准化研究所负责起草。本部分主要起草人:王凌、郑洪仁、张红。皿GB/T 16263. 1-2006/ISO/IEC 8825-1 :
10、2002 引GB/T 16262. 1、GB/T16262. 2、GB/T16262.3和GB/T16262. 4(抽象语法记法一或ASN.1)共同规定了定义抽象语法的记法,使应用标准能定义需要传送的信息的类型。它还规定了己定义的类型值规范的记法。本部分定义了可应用于用ASN.1记法定义的类型值的编码规则。应用这些编码规则可产生对这些值的传送语法。这些编码规则规范也隐含着适用于解码。有多种集合的编码规则可以应用于用ASN.l记法定义的类型值。本部分定义了3种编码规则集合,分别称为基本编码规则、正则编码规则和非典型编码规则。其中,基本编码规则给出编码发送器如何对数据值进行编码的各种选择,而正则编
11、码规则和非典型编码规则只从为基本编码规则所允许的那些编码中选择一种编码,排除发送器的所有选项。正则编码规则和非典型编码规则加在基本编码规则上的限制集是互不相同的。如果被编码的值足够小以适于可用的内存,并且需要快速掠过某些嵌套值时,非典型编码规则比正则编码规则更适用。如果需要被编码的值很大,不易适用于可用的内存,或者有必要在整个值成为可用之前对部分值进行编码和发送时,正则编码规则比非典型编码规则更适用。如果编码包含集合值和单一集合值,并且不需要对正则编码规则和非典型编码规则施加限制时,基本编码规则比正则编码规则和非典型编码规则更适用。这是因为后两种编码规则强制要求内存和CPU的开销,以便能保证集
12、合值和单一集合值只有一种可能的编码。附录A给出了应用基本编码规则的示例。它不构成本部分的组成部分。附录B总结了在本部分中所产生的客体标识符值的赋值。它不构成本部分的组成部分。附录C给出了对编码实数应用基本编码规则的示例。它不构成本部分的组成部分。N 1 范围GB/T 16263. 1-2006/ISO/IEC 8825-1 : 2002 信息技术ASN.l编码规则第1部分:基本编码规则(BER)、正则编码规则(CER)和非典型编码规则(DER)规范16262. 1、GB/T16262. 2、GB/ T 16262.3和GB/T16 语法记法一或ASN.1ojJ二协议的各方研究部分。GB/ T
13、1988 GB/ T 2311 GB/ T 526 1 GB/ T 9387 . 1 IEC 7498-1 :1 994) GB/ T 12054- 1 GB 13000. 1- 199 种平面(idtISO/ IEC 106 IEC 8824-1 : 2002 , IDT) GB/ T 16262. 2- 2006 IEC 8824-2: 2002 , IDT) 码规则所提供的替口H分:基本记法规范OSO/第2部分:信息客体规范OSO/GB/ T 16262. 3- 2006 信息技术抽象语法记法一(ASN.l)第3部分:限制规范(ISO/ IEC 8824-3: 2002 , IDT) G
14、B/ T 16262.4- 2006 信息技术抽象语法记法一(ASN.1)第4部分:参数化ASN.1规范(lSO/ IEC 8824-4 : 2002 , IDT) SJ / Z 9047- 1987 信息处理信息交换用字符串形式表示数值的方法(idtISO 6093 : 1985) 要与转义序列起使用的编码字符集的ISO国际登记簿3 术语和定义GB/ T 9387. 1和GB/T16262. 1中的术语和定义以及下列术语和定义适用于本部分。GB/T 16263. 1-2006/ISO/IEC 8825-1 :2002 3. 1 正则编码canonicaJ encoding 通过应用无实现相关
15、选项的编码规则所得到的抽象值的完整编码。这种规则导致在抽象语法中元歧义和唯一的编码与值之间一对一映射的定义。3.2 3.3 3.4 3.5 3.6 3. 7 结构化编码constructed encoding 数据值编码,其中,内容八位位组是一个或多个数据值的完整编码。内容八位位组contents octets 表示特定值的数据值编码的那部分,以便把该特定值与同类型中的其他值区分开。撒据值data value 按某个类型值所规定的信息;类型和值用ASN.l定义。动态-致性dynamic conformance 在通信场合中,某一实现遵守预定行为的要求的声明。(数据值的)编码encoding (
16、of a data vaJue) 用来表示数据值的八位位组的完整序列。内睿结束八位位组end-of-contents octets 在其末端出现的数据值编码的一部分,它用来确定编码的终止。注:不是所有编码都需要内容结束八位位组。3.8 标识符八位位组identifier octets 数据值编码的一部分,它用来标识值的类型。注:某些ITU-T建议把术语数据元素用于本八位位组序列,但在本部分中不使用该术语,而其他标准中使用该术语意指数据值。3.9 长度八位位组length octets 数据值编码的一部分,它紧跟在标识符八位位组的后面,用来确定编码的终止。3. 10 原始编码primitive
17、encoding 数据值的编码,其中,内容八位位组直接表示该值。3.11 接收器receiver 对发送器所产生的八位位组进行解码的一种实现,以便标识出曾编码的数据值u3. 12 发送器sender 对传送数据值进行编码的一种实现。3. 13 静态一致性static conformance 对已定义的特性中一组有效特性的某一实现所支持的要求的声明。2 GB/T 16263. 1-2006/ISO/IEC 8825-1 : 2002 3.14 尾0位trailing0 bit 位串值中最后位置内的0。注:由单个0位组成的位串值中的0就是尾0位。移去它将产生个空的位串。4 缩略语下列缩略语适用于本
18、部分。ASN.1 抽象语法记法一BER ASN.1的基本编码规则CER ASN.l的正则编码规则DER ASN.1的非典型编码规则ULA 高层体系结构5 记法本部分引用GB/T16262. 1定义的记法。6 约定6. 1 本部分使用术语最高有效位和最低有效位来规定编码中每个八位位组的值。注:低层规范使用相同记法来定义串行线路中位传输的次序,或者把这些位赋给并行信道。6.2 仅为本部分的目的,八位位组中的位编号从8至1,位8为最高有效位,位1为最低有效位。6.3 为本部分的目的,两个八位位组串可以进行比较。如果这两个八位位组串的长度相同,并且在每个八位位组位置上的长度相同,则一个八位位组串等于另
19、一个。当且仅当za) Sj和S2在每个位置内具有相同的八位位组,直到并且包括S2内的最后1个八位位组,但Sj较长;或者b) Sj和S2在一个或多个位置上以及第1个这样的位置具有不同的八位位组,Sj内的八位位组大于S2内的八位位组,于是认为这些八位位组是无符号二进制数,其位n具有权重2n一l,则一个八位位组串Sj大于另一个S2。7 一致性7. 1 动态一致性在第8章至第12章中规定。7.2 静态一致性由那些规定了应用个或多个编码规则的标准来规定。7.3 基本编码规则允许替换的编码作为发送器的一个选项,声称符合基本编码规则的接收器应支持所有替换的编码。注:这种替换编码的示例出现在8.1.3. 2怡
20、和表3中。7.4 正则编码规则或非典型编码规则不允许替换的编码。8 基本编码结构8. 1 编码的一般规则8. 1. 1 编码结构8. 1. 1. 1 数据值的编码应由下列次序的4种成分组成:a) 标识符八位位组(见8.1. 2) ; b) 长度八位位组(见8.1. 3) ; c) 内容八位位组(见8.1.4);3 GB/ T 16263. 1-2006/IS0/ IEC 8825-1 : 2002 d) 内容结束八位位组(见8.1. 5)。8. 1. 1. 2 除非长度八位位组的值需要出现内容结束八位位组,否则该内容结束八位位组不应出现(见8. 1. 3)。8. 1. 1. 3 图1示出了编码
21、的结构(原始编码或结构化编码),图2示出了替换的结构化编码。8. 1. 1. 4 法的影响。注:这意味着8. 1. 2. 1 8.1.2.2 对于编司、构成:a) 位8和位7b ) 类通用应用上下文特定专用标识符八位位组长度J位位组内容八位位组中的八位位组数内容八位位组个八位位组编码位7。s. 1. 2. 3 图3示出了带有一个编号范围在030(包括0和30)的标签的类型的标识符八位位组形式。8. 1. 2. 4 对于编号大于或等于31的标签,标识符八位位组应包含一个引导八位位组及后随的一个或多个后继八位位组。8. 1. 2. 4. 1 引导八位位组应编码如下:a) 位8和位7应编码为用来表示
22、表1列出的标签类;4 GB/T 16263. 1-2006/ISO/IEC 8825-1 : 2002 标识符J位位组位8 7 6 5 4 3 2 标签编号。=原始编码1=结构化编码圈3标识符八位位组(低标签编号)b) 按8.1. 2. 5的规则,位6应为必或叮a) b) 8. 1.2.5 注:对每种类型,以后各8.1.2.6 GB/ T 16262.1 类型的标签值采用己选定的位组)。8. 1. 3 长度八位位组8. 1.3. 1 规定两种长度八位位组形式,它们是:a) 确定形式(见8.1.3.3);及b) 不定形式(见8.1. 3. 6)。8. 1. 3. 2 如果编码a) 是原始编码,则
23、发送器应使用确定形式(见8.1.3.3);位1,依次后随每个更5 GB/T 16263. 1一2006/ISO/IEC8825-1 : 2002 b) 是结构化编码且都是立即可用的,则发送器应使用确定形式(见8.1. 3. 3)或不定形式(见8.1.3.6),作为发送器的一个选项;c) 是结构化编码且不都是立即可用的,则发送器应使用不定形式(见8.1.3.的。8. 1. 3. 3 对于确定形式,长度八位位组应由一个或多个八位位组组成,并应表示使用短形式(见8.1.3.的或长形式(见8.1. 3. 5)作为发送器一个选项的内容八位位组中的八位位组数。注:若内容八位位组中的八位位组数小于或等于12
24、7时,仅使用短形式。8. 1. 3. 4 在短形式中,长度八位位组应由单个八位位组组成,其中位8为0,位7至位1把内容八位位组(它们可能是0)中的八位位组数编码为无符号二进制整数,以位7为最高有效位。例:L=38的编码为00100110208. 1. 3. 5 在长形式中,长度八位位组应由一个初始八位位组和一个或多个后继八位位组组成。初始八位位组应编码如下:a) 位8应为1; b) 位7至位1应把长度八位位组中的后继八位位组数编码为无符号二进制整数,以位7为最高有效位;c) 应不使用值111111112。注:引人这个限制是为了将来可能的扩展。第1个后继八位位组的位8至位1,后随第2个后继八位位
25、组的位8至位1,依次后随更后面八位位组的位8至位1,直至并包含最后1个后继八位位组,应是等于内容八位位组中八位位组数的无符号二进制整数的编码,以第1个后继八位位组的位8为最高有效位。例:L=201可编码为100000012 110010012 注:在长形式中,是否使用比最少的必需数更多的长度八位位组是发送器的一个选项。8. 1. 3. 6 对于不定形式,长度八位位组指示内容八位位组由内容结束八位位组来终止(见8.1.日,并应由单个八位位组组成。8. 1. 3. 6. 1 单个八位位组的位8应置为1,位7至位1置为0。8. 1. 3. 6. 2 若使用该长度形式,则应在内容八位位组之后的编码中出
26、现内容结束八位位组(见8.1.5L 8. 1.4 内容八位位组内容八位位组应由0个、1个或多个八位位组组成,并且应编码后续各条规定的数据值。注:内容八位位组依赖于数据值的类型:后续各条遵循与ASN.1中相同的类型定义序列。8.1.5 内容结束八位位组若长度按8.1. 3. 6的规定编码,则应出现内容结束八位位组,否则应不出现。内容结束八位位组应由两个值为0的八位位组组成。注:内容结束八位位组可被认为是值的编码,其标签为通用类的,形式为原始编码,标签号为0,且内容不存在,因此:内容结束八位位组长度内容0016 0016 元8.2 布尔值的编码8.2.1 布尔值的编码应是原始编码。内容八位位组由单
27、个八位位组组成。8.2.2 若布尔值是FALSE.则八位位组应为006 若布尔值是TRUE,则八位位组应为任意非0值,作为发送器的个选项。例:若是BOOLEAN类型,值TRUE被编码为:GB/T 16263. 1-2006/ISO/IEC 8825-1 : 2002 布尔长度内容0116 016 FF, 8.3 整数值的编码8.3. 1 整数值的编码应是原始编码,内容八位位组由一个或多个八位位组组成。8.3.2 若整数值编码的内容八位位组由多个八位位组组成,则第1个八位位组的各个位和第2个八位位组的位8:a) 应不全为1;并且b) 应不全为0。注:这些规则确保整数值总是用最小可能的八位位组数进
28、行编码。8.3.3 内容八位位组应是等于整数值的对2的补码的二进制数,其组成是由第1个八位位组的位8至位1,后随第2个八位位组的位8至位1,依次后随每个八位位组的位8至位1,直到并包含内容八位位组的最后1个八位位组。注:2的补码的二进制数的值通过计数内容八位位组中的位得出:计数从最后1个八位位组的位1开始作为位0,到第1个八位位组的位8结束。每位赋予一个2N的数值,这里N是该位在上面计数序列中的位置。2的补码的二进制数的值是:累加计算那些置l的位的数值,但不包括第1个八位位组的位8,然后,若第1个八位位组的位8置为1,则这个累加值减去第1个八位位组的位8的数值所得的结果。8.4 枚举值的编码枚
29、举值的编码应是与之相关的整数值的编码。注:它是原始编码。8.5 实数值的编码8.5. 1 实数值的编码应是原始编码。8.5.2 如果实数值为0值,则编码中应没有内容八位位组。8.5.3 对非0实数值,如果抽象值的基数是10,则编码值的基数也应为10,如果抽象值的基数是2,则编码值的基数应为2,8或16,作为发送器的一个选项。8.5.4 如果实数值为非0值,那么用于编码的基数应为8.5. 3规定的B。如果B是2、8或16,应使用8.5.6规定的二进制编码。如果B是10,则应使用8.5.7规定的字符编码。8.5.5 第1个内容八位位组的位8应设置如下:a) 如果位8=1,则使用8.5.6规定的二进
30、制编码;b) 如果位8=0,且位7=0,则使用8.5. 7规定的十进制编码;c) 如果位8=0,且位7=1,则按8.5.8的规定编码一个SpecialRea1Value (见GB/T16262. 1)。8.5.6 当使用二进制编码时(位8=门,如果尾数M是非0,则它应由一个符号S、一个非负整数值N以及一个二进制比例因子F来表示,诸如:M = S X Nx 2F 。F . & id , valu哩0EXPLlCIT . &Type 注:当值是单个ASN.1类型的值,并换的语法是指用来表示该抽8.16.28.16.1中的序列类值相同。8. 18. 1 外部类BER编码。arbitrary 注:由于
31、历史原因,该8. 18.2 宇段的值依赖于可的值。8. 18.3 scriptor应出现。7中相关类型的对应成分的的序列类型的的34.5中规定的类型8.18.4 上述direct-reference和i毗辛苦伽则叫咱管按照表2来出现或不存在。表2把GBj T 16262.1-2006中的34.5中定义的外部类型替换的标识映射成18.8. 1中定义的外部类型成分的direct-reference和indirect-reference。表2标识用的替换的编码identification direct-reference indirect-reference syntaxes 铃祷挺不能出现提铸祷势
32、祷祷不能出现祷铃祷syntax syntax 不存在presen ta tion-con text-id 不存在presen ta tion-context-id con text-nego tJa tlon 传送语法presen ta tion-con text-id 12 GB/T 16263. 1-2006/ ISO/IEC 8825-1 : 2002 表2(续identification direct-reference indirect-reference transfer-syntax 祷赞祷不能出现提铸祷养铃赞不能出现祷祷祷fixed 养铃头不能出现赞祷铃铸赞祷不能出现铸祷祷8.
33、 18.5 数据值应按照编码标识的传送语法进行编码,并应将该数据值放入下面规定的替换的编码选择中。8.18. 6 如果数据值是单个ASN.l数据类型的值,并且用于该数据类型的编码规则是本部分中规定的编码规则之一,则发送实现应使用下M桐昏- 单个ANS.l类型 八位位组对齐的 任意的8. 18.7 如果使用商下列任何编码选择:注:可能出现在整数值的注8.18. 10 如果编码进行编码,所得出的J后1个八位位组:最后八位位组的位8为0;前面的每个八位位组的位8为1。序列中这些八位位组的位7到位1共同编码为子标识符。在概念上,这些位被拼接起来,以形成一个无符号的二进制数,其最高有效位是第1个八位位组
34、的位7,最低有效位是最后1个八位位组的位1,子标识符应尽可能最少地用八位位组来编码,也就是说,子标识符的引导八位位组应没有值8016。8. 19.3 子标识符的编号(N)应比被编码的客体标识符值中的客体标识符的成分的编号少1。8.19. 4 第1个子标识符的数值从被编码的客体标识符值中的前两个客体标识符成分的值导出。使用公式(X x 40) + Y 13 GB/T 16263. 1-2006/ISO/IEC 8825-1 :2002 其中:X是第1个客体标识符成分的值,Y是第2个客体标识符成分的值。注:这种前两个客体标识符成分的组合认可的只有三个值由根结点赋予,且由x=o和X=l达到的结点最多
35、赋于39个后继值。8.19.5 第i个子标识符(2i运N)的数值是第(i十1)个客体标识符成分的数值。示例:OBJECT IDENTIFIER的值joint-iso斗tu-t100 3 它与下式相同2 100 3 其第1个子标识符为180,第2个子标识符为3。所得到的编码为tOBJECT IDENTIFIER 0616 Length 0316 Contents 81340316 8.20 相关客体标识符值的编码注:相关客体标识符中的客体标识符成分的编码与客体标识符中成分(在第2个之后)的编码相同。8.20. 1 相关客体标识符值的编码应是原始编码。8.20.2 内容八位位组应是一起拼接的子标识
36、符(见8.20.3和8.20.4)的编码的(有序的)列表。每个子标识符表示一系列(1个或多个)八位位组。每个八位位组的位8指示其是否是系列中的最后1个八位位组z最后1个八位位组的位8是0,前面的每个八位位组的位8为1。序列中这些八位位组的位7至位1共同编码为子标识符。在概念上,这些位的组被拼接起来,以形成一个无符号的二进制数,其最高有效位是第1个八位位组的位7,最低有效位是最后1个八位位组的位1。子标识符应尽可能最少地用八位位组来编码,也就是说,子标识符的引导八位位组应没有值801608.20.3 子标识符的编号(N)应等于要被编码的相关客体标识符值中的客体标识符的编号。8.20.4 第i个子
37、标识符(liN)的数据值是要被编码的相关客体标识符值中的第i个客体标识符的数据值。8.20.5 示例,一个相关客体标识符值为:8571 3 2 其子标识符为8571、3和2。所得到得编码为:RELATIVE OID OD16 8.21 受限字符串类型值的编码Length 0416 Contents C27B030216 8.21. 1 数据值由ASN.1类型定义中规定的字符集中的字符串组成。8.21. 2 每个数据值应编码为独立于同一类型的其他数据值。8.21. 3 每个字符串类型应按如下说明的方式进行编码:UNIVERSAL xJ IMPLICIT OCTET STRING 其中,X是指派给
38、GB/T16262. 1-2006中的字符串类型的通用类标签编号。八位位组串的值在8.21. 4和8.21. 5中规定。8.21. 4 在GB/T16262. 1一2006中,若直接引用一个枚举表(NumericString和PrintableString)来规定字符串类型,则八位位组串的值应是在8.21. 5中为带有相同字符串值的VisibleString类型规定的值。8.21. 5 对于除UniversalString和BMPString串之外的受限字符串,八位位组串应包含GB/T2311中为8位环境的编码所规定的八位位组.使用按照GB/T12054登记的转义序列和字符编码。8.21. 5
39、.1 除非在GB/T16262. 1-2006中用来定义字符串类型的登记号之一中有规定的转义序列,否则不使用转义序列。8.21. 5.2 在每串的开始处,某些登记号应被假设为指明的GO和/或CO和/或Cl,且被调用(使用14 GB/T 16263. 1-2006/ISO/IEC 8825-1 : 2002 GB/T 2311的术语)。表3将对每个类型以及它们隐式的假定的转义序列加以规定。8.21. 5. 3 某些字符集串类型的编码中应不包含显式转义序列;在所有其他情况下,8.21. 5. 1允许的任何转义序列可以在任何时候出现,包括在编码的开始处。表3列出允许有其显式转义序列的类型。表3转义序
40、列的使用类型假定的GO假定的CO和C1假定的转义序列和锁定是否允许(登记号)(登记号)移位(在可用处)显式转义序列NumericString 6 无ESC 2/8 4/2 LSO 否PrintableString 6 无ESC 2/8 4/2 LSO 否T eletexString 106(CO) ESC 2/8 7/5 LSO 102 ESC 2/1 4/5 是(T61String) 107(Cl) ESC 2/2 4/8 l(CO) ESC 2/8 7/5 LSO VideotexString 102 ESC 2/1 4/0 是73(Cl) ESC 2/2 4/1 VisibleStrin
41、g ESC 2/8 4/2 LSO 6 无否(GB/T 1988) IA5String ESC 2/8 4/2 LSO 6 1(CO) 否ESC 2/1 4/0 GraphicString 6 无ESC 2/8 4/2 LSO 是GeneralString 6 l(CO) ESC 2/8 4/2 LSO 是ESC 2/1 4/0 注:有许多通常使用的字符(例如,A到Z)出现在具有各个登记号和转义序列的许多字符表中。当ASN.1类型允许转义序列时,对一个特定的字符串有多种编码是可能的(见7.3)。8.21. 5. 4 应不使用宣布符,除非ASN.l用户有明确允许。注:ASN.1类型的选择还提供了
42、一个宣布符功能度的有限形式。特定应用协议可以选择,以便在其他协议要素中携带宣布符或者详细地规定使用宣布符的方式。示例:这个示例的类型定义为:Name : = VisibJeString 其值为Jon四可被编码(原始编码形式为zVisibleString lA16 Length 0516 Contents 4A6F6E657316 或(结构化编码形式,确定长度)为:FB n A 伞LQd e LU 16 5吨vr Length 0916 Contents OctetString 0416 OctetString 0416 Length 0316 Length 0216 Contents 4A6F6E16 Contents 657316 或(结构化编码形式,不定长度)为:15 GBjT 16263. 1-2006j ISOj IEC 8825-1 : 2002 Visi bleStri ng 3A16 Length 0916 Contents OctetString 0416 OctetStrng 0416 EOC 。016Length Contents 0316 4A6F6E16 Length Contents 0216 657316 Length 0016 8