0

在 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
4

1 回答 1

2

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

于 2013-10-01T02:44:25.377 回答