2011-10-15 13 views
8

मैं अनुक्रम (के) ASN.1 डेटाप्रकार के टैग मान के बारे में विरोधाभासी जानकारी का एक बहुत लग रहा है:ASN.1 SEQUENCE

विकिपीडिया का दावा है यह दोनों 0x10 और 0x30 है:

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

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

माइक्रोसॉफ्ट के अनुसार यह 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

एक संख्या इनकोडिंग "टैग" कई बिट क्षेत्रों से बना है:

 
--------------------------------- 
| 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 
--------------------------------- 
|Class |P/C| Tag Number  | 
--------------------------------- 
  • एक दृश्य के लिए टैग संख्या (यूनिवर्सल कक्षा में) 0x10 है।
  • एक अनुक्रम, एक निर्माण प्रकार है बनाने पी/सी बिट 1
  • यूनिवर्सल क्लास 0
  • इस पूरी ओकटेट 0x30

नोट वहाँ संख्या में एक दृश्य सांकेतिक शब्दों में बदलना करने के कई तरीके है कि बनाता है/डीईआर/सीईआर, यह सटीक ASN.1 पर निर्भर करता है। जैसे कुछ प्रोटोकॉल कक्षा को ओवरराइड कर सकते हैं और अनुक्रम निर्दिष्ट अनुप्रयोग के रूप में निर्दिष्ट कर सकते हैं, और/या यदि लागू टैगिंग का उपयोग किया जाता है तो यह अपना टैग नंबर निर्दिष्ट कर सकता है।

आप हिट एन्कोडिंग कल्पना here

+0

विस्तृत विवरण के लिए धन्यवाद पढ़ सकते हैं! – Krassi