1

有没有办法使用 openssl 为 PKCS#7 签名消息传递额外的认证属性?我被命令行困住了。

我目前正在使用:

openssl smime -sign -outform DER -md sha1 -binary -signer my.crt -inkey my.key

我在 openssl cli 帮助中没有找到任何相关选项。


更多信息 :

我目前正在尝试在 NodeJS 中构建 SCEP(http://tools.ietf.org/pdf/draft-nourse-scep-23.pdf)服务器。

SCEP 规范需要构建 PKCS#7 签名pkiMessages

The SignerInfo MUST contain a set of authenticatedAttributes (see PKCS#7 [RFC2315] Section 9.2 as well as Section 3.1.1 in this document). All messages MUST contain
* an SCEP transactionID attribute
* an SCEP messageType attribute
* an SCEP senderNonce attribute
* any attributes required by PKCS#7 [RFC2315] Section 9.2 If the message is a response, it MUST also include

目前我唯一的选择是openssl通过child_process.spawn.

4

1 回答 1

6

不幸的是,无法从 OpenSSL 命令行(无论是使用 smime 还是使用 cms 命令)向签名消息添加自定义属性。如果要添加一些自定义属性,则必须使用 OpenSSL API。

主要步骤是:

  • 调用CMS_sign创建一个CMS_ContentInfo
  • 创建一个SignerInfoCMS_add1_signer
  • 将属性添加到此签名者CMS_signed_add1_attr_by_OBJ
  • CMS_final()

更多细节在这里:http ://www.openssl.org/docs/crypto/CMS_sign.html

于 2012-10-29T22:14:50.450 回答