2011-10-15 61 views
8

ASN.1シーケンスIは、SEQUENCE(OF)ASN.1データ型のタグ値についての矛盾する多くの情報を見つけるのです

ウィキペディアはそれが0x10のと0x30の両方であると主張:

http://en.wikipedia.org/wiki/Abstract_Syntax_Notation_One - > 0x30を

http://en.wikipedia.org/wiki/Basic_Encoding_Rules - > 0x10の

は、Microsoftによると、それは0x30のです:

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

そして、もう一つは見つけることができますはBouncyCastle源で:

public const int Sequence = 0x10; 

だから、基本的には0x10と0x30の間のタイです。本当の価値があるのか​​、何か不足していることをご存じですか?

答えて

13

A BER符号化された "タグ" は、いくつかのビットフィールドから構成されている:

 
--------------------------------- 
| 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 
--------------------------------- 
|Class |P/C| Tag Number  | 
--------------------------------- 
  • (ユニバーサルクラスにおける)配列のタグ番号が0x10です。
  • 配列は、P/Cが1
  • ユニバーサルクラスこれは、BERのシーケンスを符号化するための多くの方法があること全体オクテット0x30から

注を行う0

  • あるビット作り、構築タイプであります/ DER/CERの場合は、使用される正確なASN.1に依存します。例えば一部のプロトコルではクラスをオーバーライドし、シーケンスをApplication Specificクラスとして指定したり、暗黙タグが使用されている場合は独自のタグ番号を指定することがあります。

    あなたは、BERエンコードの仕様、詳細な説明はhere

  • +0

    感謝を読むことができます! – Krassi

    関連する問題