我正在研究RFC 5280(https://tools.ietf.org/html/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进行编码。无法找到有关这些字节编码的任何解释。有人可以解释一下吗?
答案 0 :(得分:4)
这是一种标记类型。见X.680第31.2节。 [0]
表示该值使用特定于上下文的类和数字0
进行编码。在DER(X.690第8.1.2和8.14节)中,编号为0
的特定于上下文的类被编码为0xA0
。