1

我正在编写一个必须创建 PKCS#10 的代码。为此,我必须签署我的“证书请求信息”,但是当我这样做时,应用程序会说签名无效。

我正在使用 OpenSSL.exe 来验证 P10,错误是:“ANS1_CHECK_TLEN:错误标签”。我想我签署了我不应该签署的,所以我的问题是,我必须签署的“证书请求信息”的确切格式是什么?

我知道它必须以序列开头,但 p10 规范告诉:

“签名过程包括两个步骤:

  1. certificateRequestInfo 组件的值是 DER 编码的,产生一个八位字节字符串。
  2. 步骤 1 的结果使用认证请求主体的私钥在指定的签名算法下进行签名,产生一个比特串,即签名。”

根据 ANS.1,我不确定开始是否必须是 SEQUENCE (0x30 0x82 "the length>256") 或 A OCTET STRING (0x04 0x82 "the length>256")。

如果有人请像这篇文章一样给我一个答案,我可能是世界上最幸福的人。非常感谢:

PKCS#10 请求来自 PKCS#11 的对象密钥对

问候,大卫 M。

4

1 回答 1

0

PKCS#10 标准的第 1 步将八位组字符串作为certificationRequestInfo元素编码的结果进行讨论,并且不涉及 ASN.1 类型。请求签名是在此 DER 编码上计算的,因此要签名的对象是 ASN.1SEQUENCE而不是OCTET STRING.

于 2011-06-24T11:21:32.240 回答