2016-09-30 22 views
0

我學RFC 5280(https://tools.ietf.org/html/rfc5280)和已經注意到奇怪標記([0],[1],[2],[3])中即tbsCertificate結構定義結構描述中的[0],[1],...在X.509 RFC 5280中意味着什麼?

TBSCertificate ::= SEQUENCE { 
    version   [0] EXPLICIT Version DEFAULT v1, 
    serialNumber   CertificateSerialNumber, 
    signature   AlgorithmIdentifier, 
    issuer    Name, 
    validity    Validity, 
    subject    Name, 
    subjectPublicKeyInfo SubjectPublicKeyInfo, 
    issuerUniqueID [1] IMPLICIT UniqueIdentifier OPTIONAL, 
         -- If present, version MUST be v2 or v3 
    subjectUniqueID [2] IMPLICIT UniqueIdentifier OPTIONAL, 
         -- If present, version MUST be v2 or v3 
    extensions  [3] EXPLICIT Extensions OPTIONAL 
         -- If present, version MUST be v3 
    } 

在ASN.1它編碼使用特殊字節0xA0,0xA1,0xA2,0xA3。無法找到有關這些字節編碼的任何解釋。有人能解釋我嗎?

回答

4

這是一個標記類型。見X.680第31.2節。 [0]表示該值使用上下文相關的類和編號0進行編碼。在DER(X.690章節8.1.2和8.14)中,編號爲0的構造的上下文特定類編碼爲0xA0

+0

我如何知道在這種情境特定條件下它將代表哪種類型? – academica

+0

我不明白你的問題在上面的評論。您可能會誤解「特定於上下文」的含義。 ASN.1中有四類標記:通用的,應用程序,特定於上下文的和私有的。如果標籤被寫入[應用程序1],它將是一個應用程序標籤。正如所寫,它是一個特定於上下文的標籤。這裏的特定上下文並不意味着在不同的上下文中會有不同的標籤。 這個問題可能會有所幫助:http://stackoverflow.com/questions/15035349/how-does-0-and-3-work-in-asn1 – Kevin