openssl pkcs7 - 只获取数据

openssl pkcs7 - get the data only

我有一个 DER 格式的 PKCS7 签名文件,pkcs_input,我想从中提取数据。

运行 命令:openssl pkcs7 -in pkcs_input -inform DER -print 产生以下输出:

PKCS7:
  type: pkcs7-signedData (1.2.840.113549.1.7.2)
  d.sign:
    version: 1
    md_algs:
        [...]
    contents:
      type: pkcs7-data (1.2.840.113549.1.7.1)
      d.data:
        0000 - [hex data]   [ASCII data]
        [...]
    cert:
        cert_info:
          [...]

然后,为了从此输出中获取数据(标记为 [ASCII data]),我必须手动解析整个输出。

有没有其他方法可以只获取数据?

pkcs7 命令主要用于提供有关 pkcs7 结构及其包含的证书的信息。
因此,要提取 pkcs7 中的内容,您需要改用 smime 命令:

 openssl smime -verify -CAfile chain_root.pem -in pkcs_input -inform DER -out content

如果出于某种原因,您希望在不验证的情况下提取内容,您可以使用 -noverify :

 openssl smime -verify -noverify -in pkcs_input -inform DER -out content