ASN.1类型0x80

时间:2018-08-27 10:59:13

标签: asn.1

我的ASN.1解码器工作正常,直到遇到一个有趣的类型:

0x80,已被在线工具解码为名称为[0]的简单类型。

我发现一些消息来源提到这是“不确定的长度”,但是我可以读懂它的绝对长度。这种类型实际上是什么,还有其他类似类型吗?

1 个答案:

答案 0 :(得分:2)

作为标签,0x80(在BER,CER或DER下)表示其类是特定于上下文的标签(与命名类UNIVERSALPRIVATE和{ {1}}),其编号为APPLICATION,其编码为原始格式。它是原始的事实意味着它被用作0标签。如果它是IMPLICIT(已构造,上下文相关0),则可以是0xA0标记(包装器)或EXPLICIT构造值(IMPLICIT,{{1 }}等。

要知道该值的含义,需要查看ASN.1类型定义。

例如,来自RFC 3280 A.2SEQUENCE):

SEQUENCE-OF

如果DEFINITIONS IMPLICIT TAGS的值为PrivateKeyUsagePeriod ::= SEQUENCE { notBefore [0] GeneralizedTime OPTIONAL, notAfter [1] GeneralizedTime OPTIONAL } ,则将其标记为PrivateKeyUsagePeriodnotBefore)而不是0x80[0]) ;但仍应按照0x18的编码进行解释。