【问题标题】:Converting binary file to .p7b format将二进制文件转换为 .p7b 格式
【发布时间】:2014-05-09 08:34:09
【问题描述】:

我需要签署一个二进制file.bin 并将其转换为输出file.p7b 格式。 如何完成一项任务? (Windows 操作系统)我应该在 openSSL 中使用哪些命令? (或 Certutil.exe)

【问题讨论】:

    标签: binary cryptography openssl certificate x509


    【解决方案1】:

    我对您的问题有点困惑,因为文件扩展名 .p7b 通常用于仅包含证书(不包括签名)的 PKCS#7 结构,并且更常见的是对包含签名的 PKCS#7 结构使用 .p7s 扩展名。但没关系,文件内容与文件扩展名无关。

    您没有指定您的签名证书和私钥存储在哪里,因此我们假设您将 PEM 编码的 X.509 签名证书存储在文件“signer.cer”中,并且您的 PEM 编码的 PKCS#1 私钥存储在文件“signer.key”。

    您可以使用 OpenSSL.exe 命令行实用程序对文件“file.bin”进行签名,并将存储在 DER 编码的 PKCS#7 结构中的签名输出到文件“file.p7b”中:

    openssl.exe smime -sign -binary -in file.bin -signer signer.cer -inkey signer.key -outform DER -out file.p7b
    

    您可以使用以下命令来验证签名:

    openssl.exe smime -verify -binary -inform DER -in file.p7b -content file.bin -noverify > nul
    

    有关各个选项的更多详细信息,请参阅OpenSSL SMIME module manual

    【讨论】:

    • 谢谢,你说得对,我的问题有点不准确:我想将二进制文件签署到仅包含 X.509 DER 编码的签名者 CVC 证书 (signer.cer) 的 .p7b .假设证书在 C:\signer.cer 应该是什么命令?
    • @triwo 我不明白。您期望生成的 PKCS#7 结构包含什么?您说您想获得“仅包含 X.509 DER 编码的签名者 CVC 证书的.p7b”。那么,当您不希望签名出现在生成的 PKCS#7 中时,为什么还需要签名呢?请更详细地描述您的用例。
    • 二进制文件里面已经包含了“signer.cer”证书,我想给二进制文件签名。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-12
    • 1970-01-01
    • 2022-12-10
    • 2023-03-20
    • 2018-06-19
    • 2020-10-17
    • 1970-01-01
    相关资源
    最近更新 更多