当前位置: 首页 > 知识库问答 >
问题:

如何验证文件和p7s分离签名与openssl?

顾英发
2023-03-14

是否可以验证带有p7s分离签名的文件?我正试图使用Openssl实现这一点,但我得到了一条关于Openssl的默认消息和unknown选项-verify

这是我的命令:

openssl pkcs7-通知DER-验证-无验证-输入file.docx.p7s-输出file.docx

是否可以使用openssl进行文件验证和p7s签名?

--编辑。。。

只是想让你知道。我有一个p7s文件和一个pdf文件。我想知道如何验证这一点。

共有1个答案

吕修伟
2023-03-14

最后,我对p7s文件有一点了解。这在保护电子邮件安全方面非常常见,但我可以使用p7s文件,其中包含PKCS#7分离签名和证书,以确保文件的准确性。

所以,我把我的解释分开,部分是为了更容易解释我在这里做什么。如果有什么不对劲,请纠正我!

首先,初始配置:

  1. 创建私钥和证书
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365

第二,创建p7s文件

  1. 运行下面的命令,使用私钥、证书对pdf文件进行签名,并生成一个p7s文件,其中包含文件和证书的签名哈希
openssl smime -sign -in test.pdf -inkey key.pem -outform DER -binary -signer cert.pem -out test.pdf.p7s

最后,验证p7s文件

  1. 现在,我必须从p7s文件中提取pkcs7签名
openssl pkcs7 -inform der -in test.pdf.p7s -out test.pdf.pkcs7
openssl pkcs7 -print_certs -in test.pdf.pkcs7 -out test.pdf.pkcs7.cert
openssl smime -verify -binary -inform PEM -in test.pdf.pkcs7 -content test.pdf -certfile test.pdf.pkcs7.cert -nointern -noverify > /dev/null
 类似资料:
  • > 文件,将ZIP文件的内容描述为XML(文件); 包含传输文档内容的文件(例如,文件); 具有分离数字签名内容的文件(文件-分离数字签名); > 方法(请参阅下面的此方法)当前未使用文件的分离签名。我确实试过了,但没有成功。如何正确验证文件对应文件的分离签名? 在方法(请参阅下面的方法)中,如何验证从文件中提取的证书与从Base64格式的输入字符串中提取的证书的一致性? 代码行-->Certif

  • 我想使用BouncyCastle解析和验证OpenPGP分离签名。签名如下所示: 下面是我如何尝试在Kotlin中创建CMSSignedData: 我应该如何使用BouncyCastle验证这种签名?

  • 我正在编写一个接收PKCS7数据(从签名的PDF文档中提取)的服务,并需要对其进行验证。 我使用iText7 PdfPKCS7进行验证,但签名验证总是失败。我可以从PKCS7读取所有其他信息(证书、时间戳等,我也用OpenSSL验证了这一点)。只有签名显示为无效。 下面是测试案例: 输出总是: 我想我在进口方面做错了什么,但就是找不到什么... 顺便说一句,验证其他pdf工具(Adobe DC、P

  • 我需要使用256位的私钥为ECDSA的256位散列签名,就像比特币一样。由于缺少python中的ECDSA文档,我感到绝望。 我在网上找到了很多代码,但是没有什么比或类似的,我发现的所有东西都是我不懂的大量数学代码,但他们使用ecdsa库(我不知道为什么他们不在一个库中添加一个用于签名的签名函数,而是在使用库时需要一页代码?)。 这是目前为止我找到的最好的代码: 但我就是不能相信这样的代码,因为我

  • 我试图用OpenSSL验证一个PE文件的证书/签名(或者实际上用Python,但是看起来Python在证书处理方面很糟糕)。 我已从PE文件中提取了DER PKCS7证书,如下所述:http://blog.didierstevens.com/2008/01/11/the-case-of-the-missing-digital-signatures-tab/ 我已经创建了一个没有校验和和签名数据的P

  • 我在开发安全系统时遇到了以下问题: 我们收到一些数据,我们必须通过签名进行验证。签名算法是ecdsa-with-SHA256,openssl_verify()似乎没有这个选项。已经尝试过搜索像phpseclib这样的独立PHP库了——也不走运,ecdsa-with-SHA1似乎是他们提供的最佳选择。 对于这个问题,什么是合适的解决方案?也许我错过了一些实现这种功能的库?