我正在尝试以编程方式创建 CSR。我读过 ASN.1、RFC 2986、X.509。
我还手动解析了几个 DER 编码的 CSR 文件,这些文件是使用OpenSSL
.
一切看起来都很清楚,除了几件事:
公钥部分包含
8D 00 30 81 89 02 81 81
BIT STRING 内容之前(和之后03 81
)的下一个字节。这是什么?我注意到所有用 DER 编码的 CSR 文件都包含它们。我在 RFC 中没有找到任何关于它们的信息。签名部分包含签名内容之前但之后的下一个不清楚的字节
03 81
。据我了解,这部分包含有关 BIT STRING 中最后一个八位字节的信息(实际上应该在最后一个字节中占用多少位)。但我不明白如何解码这些字节。例如,签名可能如下所示:
03 81 81 00 64 12 ... 24 B1 28
其中03h
是 BIT STRING 格式,81h
位字符串的长度,64 12 ... 24 B1 28
是签名(但它的长度为 80h)。我不明白这部分81 00
。
提前致谢。