I am finding a lot of contradicting information regarding the tag value for the SEQUENCE (OF) ASN.1 datatype:
Wikipedia claims it is both 0x10 and 0x30:
http://en.wikipedia.org/wiki/Abstract_Syntax_Notation_One -> 0x30
According to Microsoft it is 0x30:
http://msdn.microsoft.com/en-us/library/windows/desktop/bb540799%28v=VS.85%29.aspx
And in the Bouncycastle sources one can find:
public const int Sequence = 0x10;
So it is basically a tie between 0x10 and 0x30. Do you know that the real value is or am I missing something?
A BER encoded "tag" is made up of several bit fields:
--------------------------------- | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | --------------------------------- |Class |P/C| Tag Number | ---------------------------------
Note that there's many ways to encode a sequence in BER/DER/CER, it depends on the exact ASN.1 used. e.g. some protocol might override the class and specify a sequence as Application Specific class, and/or it might specify its own Tag Number if Implicit tagging is used.
You can read the BER encoding spec here