ASN.1 SEQUENCE 标签编号编码
ASN.1 SEQUENCE tag number encoding
例如,根据 http://luca.ntop.org/Teaching/Appunti/asn1.html 序列的十六进制标记号为 10。
但为什么它被 DER 编码为 30 而不是 10?带有十六进制标记号 02 的 INTEGER 也被编码为 02。
谢谢
例如
Sample ::= SEQUENCE {
number 5
}
编码为30 03 02 01 05
这是因为在 X.509 格式中,SET
和 SEQUENCE
类型以构造形式使用。结果,第 6 位设置为 1。通过将 SEQUENCE
通用标签 (0x10) 的第 6 位设置为 1,您将获得 SET
的 0x30 和 0x31(0x11 和第 6 位为 1 = 0x31) .其余通用类型以原始形式编码(第 6 位设置为 0)。
例如,根据 http://luca.ntop.org/Teaching/Appunti/asn1.html 序列的十六进制标记号为 10。 但为什么它被 DER 编码为 30 而不是 10?带有十六进制标记号 02 的 INTEGER 也被编码为 02。 谢谢
例如
Sample ::= SEQUENCE {
number 5
}
编码为30 03 02 01 05
这是因为在 X.509 格式中,SET
和 SEQUENCE
类型以构造形式使用。结果,第 6 位设置为 1。通过将 SEQUENCE
通用标签 (0x10) 的第 6 位设置为 1,您将获得 SET
的 0x30 和 0x31(0x11 和第 6 位为 1 = 0x31) .其余通用类型以原始形式编码(第 6 位设置为 0)。