2011-10-15 17 views
8

:asn.1 SIRASI ben SIRASI (OF) ASN.1 veri türü için etiket değerine ilişkin çelişen birçok bilgi bulma am

Vikipedi o 0x10 ve 0x30 hem iddia:

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

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

Microsoft'a göre, 0x30 geçerli: http://msdn.microsoft.com/en-us/library/windows/desktop/bb540799%28v=VS.85%29.aspx

Ve bir bulabilirsiniz BouncyCastle kaynaklarında

:

public const int Sequence = 0x10; 

Yani temelde 0x10 ve 0x30 arasında bir bağ olduğunu. Gerçek değerin farkında mıyım yoksa bir şey mi özlüyorum?

cevap

13

Bir BER kodlanmış "etiket" birkaç bit alanlarından oluşur:

 
--------------------------------- 
| 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 
--------------------------------- 
|Class |P/C| Tag Number  | 
--------------------------------- 
  • (Evrensel Class'ta) Bir dizinin için etiket numarası 0x10 olduğunu.
  • bir dizi P/C Bit 1
  • Evrensel Sınıf 0
  • Bu BER bir dizisini kodlayan için birçok yol var ki, tüm bir sekizli 0x30

Not yapar yapmak, bir inşa türüdür/DER/CER, kullanılan ASN.1'e göre değişir. Örneğin. Bazı protokoller sınıfı geçersiz kılabilir ve Uygulamaya Özgü sınıf olarak bir sıralama belirleyebilir ve/veya örtülü etiketleme kullanılıyorsa kendi Etiket Numarasını belirtebilir.

Sen BER kodlama Spec ayrıntılı bir açıklama için here

+0

Teşekkür okuyabilirsiniz! – Krassi