0

我正在研究 RFC 5280 ( https://www.rfc-editor.org/rfc/rfc5280 ) 并注意到 TBSCertificate 结构定义中的奇怪标记 ([0], [1], [2], [3])

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

1 回答 1

4

它是一种标记类型。参见 X.680 第 31.2 节。[0]表示该值使用特定于上下文的类和 number 进行编码0。在 DER(X.690 第 8.1.2 和 8.14 节)中,构造的具有编号的特定于上下文的类0被编码为0xA0.

于 2016-09-30T13:18:01.667 回答