首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ASN1结构编码

ASN1结构编码
EN

Stack Overflow用户
提问于 2015-06-18 10:33:56
回答 1查看 1.1K关注 0票数 0

无论在ASN规则中是否允许,一个ASN结构具有指向另一个ASN结构的八位字符串。我无法在这个上下文中解码,但是有一个带有指向本地结构(NON_ASN)的八进制字符串的ASN结构。

EN

回答 1

Stack Overflow用户

发布于 2015-06-18 19:17:57

是的,这是完全正确的。

它通常有两种方式:通过约束和约定。这样做的“正确”方式是通过约束,但通常是通过惯例来完成的。

ASN.1调用这些内容约束,并使用CONTAINING关键字表示它们,如下所示:

代码语言:javascript
复制
S ::= SEQUENCE {
   name    UTF8String,
   age     INTEGER
}

O ::= OCTET STRING (CONTAINING S)

详见国际电联-T X.682,第11节。

这样编码的八进制(或位)字符串使用适合编码规则的包装器进行编码。例如,假设我们希望使用BER在八进制字符串中编码s S ::= { name "Calvin", age 5 }

SEQUENCE在TLV中编码,如下所示:

代码语言:javascript
复制
0x30 0x0b (UNIV 15, CONSTRUCTED, length 11)
   0x0c 0x06 0x43 0x61 0x6c 0x76 0x69 0x63 (UNIV 13, length 6, "Calvin")
   0x02 0x01 0x05 (UNIV 2, length 1, 5)

此序列将被包装到额外的八位字符串的TLV中:

代码语言:javascript
复制
0x04 0x0d (UNIV 4, length 13)
   [TLV for S]

无论是否使用内容约束,编码都是相同的。contents约束使协议标准化,并允许工具正确地验证和解析消息。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30912961

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档