Я хочу проверить информацию сертификата отправителя и получателя зашифрованного / подписанного файла. Пока что я придумал следующий набор аргументов для 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 «Тип данных EnvelopedData» определяет структуру OriginatorInfo
, который может содержат набор сертификатов. Раздел 6.2 «Тип ReicipientInfo» и подразделы описывают структуру возможных RecipientInfo
типы; ни одна из структур этих типов не содержит сертификатов. Таким образом, при существующей структуре может оказаться невозможным достичь того, что вы ищете.