ASN.1自动标记和可扩展性隐含属性

krs*_*ynx 1 asn.1

向我介绍了一个ASN.1文档,其中包含两个编码/解码属性。

  • 自动标签
    • 我的理解; 除非定义中存在标记符号,否则将使用编码规则自动定义标记
  • 隐含可扩展性
    • 我的理解; 类型可能包含ASN.1文档中未定义的元素。如果找到,编码器应静默忽略。另外,我的解码器还应该准备处理未指定标签的值。

Q1:以上我的理解正确吗?

Q2:有自动标签;自动定义似乎是不可行的(显然不是……),但是据我了解,someEncoder因此可以SomeType.class使用tag进行分配(例如)0xBB;如何someDecoder知道如何解码0xBB回去SomeType

Q2: wrt未指定标签;再次,我不确定如何将未指定的标记传递回其他东西。

And*_*tan 5

Q1。如果AUTOMATIC TAGS存在该子句,则模块中定义的SEQUENCESET类型的所有组件 以及类型的所有替代项将CHOICE自动从0开始按顺序标记。如果构造的类型至少包含一个手动标记(即,如果包含方括号) ,此类型的自动标记模式已关闭。

Q2。编写编码器和解码器代码时,使用相同的自动标记算法。

Q3。当您的解码器与具有较新版本的ASN.1模式(包括其他组件)的对等方通信时,可能会遇到无法识别的标签。在这种情况下(如果您不打算重新传输接收到的数据),您应该忽略无法识别的标签。