ASN.1 SEQUENCE标签号编码

问题描述 投票:6回答:1

例如,根据http://luca.ntop.org/Teaching/Appunti/asn1.html,序列具有十六进制的标签号10。但是为什么DER编码为30而不是10?标记号为十六进制的INTEGER也编码为02.谢谢。

EG

Sample ::= SEQUENCE {
    number 5
}

编码为30 03 02 01 05

asn.1 der
1个回答
8
投票

这是因为在X.509格式中,SETSEQUENCE类型以构造形式使用。结果,第6位设置为1.通过为SEQUENCE通用标记(0x10)设置第6位,您将得到SET的0x30和0x31(0x11和第6位为1 = 0x31)。其余的通用类型以原始形式编码(第6位设置为0)。

© www.soinside.com 2019 - 2024. All rights reserved.