ASN.1值赋值中的类型引用

时间:2013-09-29 14:21:11

标签: asn.1

在ASN.1中,值分配语法需要标识符,类型引用和值。如:

age INTEGER ::= 45

name UTF8String ::= "bob"

通常,用户定义的类型是更复杂的类型,例如SEQUENCE或具有约束的类型。假设我们有这样的SEQUENCE类型:

MySequence ::= SEQUENCE {
  age INTEGER,
  name UTF8String
}
然后我可以创建一个像:

这样的值赋值
seq MySequence ::= { 50, "bob" }

但假设MySequence从未被定义过。在创建价值分配时动态定义类型是否合法?例如,我可以说:

seq SEQUENCE {  age INTEGER, name UTF8String } ::= { 50, "bob" }

我意识到这种语法很丑陋,但我只想询问ASN.1标准是否允许这样做。

或者如何在价值分配中动态创建子类型?是否有效的ASN.1语法说:

int INTEGER (0..10) ::= 5

1 个答案:

答案 0 :(得分:1)

是的,这是有效的ASN.1,但在传递给ASN.1工具时有用性有限。请随意在http://asn1-playground.oss.com的免费在线编译器中尝试此操作。