我想验证加密/签名文件的发件人和“收件人”证书信息。到目前为止,我为 openssl 提出了以下一组参数:
openssl cms -inform DER -cmsout -print -recip my.crt -in cms_file
这将返回以下信息:
CMS_ContentInfo:
contentType: pkcs7-envelopedData (1.2.840.113549.1.7.3)
d.envelopedData:
version: 2
originatorInfo:
...
issuer: O=TheirCompany, CN=TheirCA
...
subject: O=TheirCompany, CN=TheirEndpoint
...
recipientInfos:
...
issuer: O=TheirCompany, CN=TheirCA
...
因此,除了收件人的主题外,我已获得我所寻找的大部分信息。我该如何提取这些信息?
答案1
我不确定你能这样做,因为recipientInfos
结构没有定义,例如每RFC 5652,包含一个证书。是的,有密钥……但不是证书。
RFC 5652 第 6.1 节“EnvelopedData Type”指定了 的结构OriginatorInfo
,其中可能包含一组证书。第 6.2 节“ReicipientInfo 类型”及其子节描述了可能类型的结构RecipientInfo
;这些类型的结构均不包含证书。因此,鉴于当前的结构,可能无法实现您所寻找的内容。