ASN.1 SEQUENCE (OF)标签实值



我发现关于SEQUENCE (of) ASN.1数据类型的标记值的很多矛盾的信息:

维基百科声称它是0x10和0x30:

http://en.wikipedia.org/wiki/Abstract_Syntax_Notation_One→0 x30

http://en.wikipedia.org/wiki/Basic_Encoding_Rules→0 x10

根据微软,它是0x30:

http://msdn.microsoft.com/en-us/library/windows/desktop/bb540799%28v=VS.85%29.aspx

在Bouncycastle的资源中可以找到:

public const int Sequence = 0x10;

所以它基本上是0x10和0x30之间的平局。你知道真正的价值是什么吗,还是我错过了什么?

BER编码的标签;由几个位域组成:

<>之前---------------------------------| 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 |---------------------------------|船级|P/C|吊牌号|---------------------------------之前
  • 序列(在通用类中)的标签号是0x10。
  • A序列是一个construct类型,使得P/C位为1
  • 通用类为0
  • 这使得整个八位字节0x30

请注意,在BER/DER/CER中有许多方法对序列进行编码,这取决于所使用的确切ASN.1。例如,某些协议可能会覆盖类并指定一个序列作为应用特定类,并且/或者如果使用隐式标记,它可能会指定自己的标签编号。

你可以在这里阅读BER编码规范

最新更新