使用openssl提取证书信息

我想validationencryption/签名文件的发件人和“收件人”证书信息。 到目前为止,我想出了以下一组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 ... 

所以我收到了大部分我正在寻找的信息,除了收件人的主题。 我如何提取这些信息?

我不确定你做到这一点,因为没有定义recipientInfos结构, 例如按照RFC 5652来包含一个证书 。 键,是的,但不是证书。

RFC 5652第6.1节“EnvelopedDatatypes”指定了包含一组证书的OriginatorInfo的结构。 第6.2节“ReicipientInfotypes”和小节描述了可能的RecipientInfotypes的结构; 这些types的结构都不包含证书。 因此,考虑到目前的结构,可能无法实现您正在寻找的东西。