gpt4 book ai didi

cryptography - 使用 openssl dgst 验证文件签名

转载 作者:行者123 更新时间:2023-12-02 01:44:59 24 4
gpt4 key购买 nike

我正在一些 Java 代码中对数据包进行签名,并且我想在 C 服务器上验证签名。我想为此目的 fork openssl (以后可以随时使用库函数......当我知道 openssl 可以验证签名时);但是,它没有这样做:

openssl dgst -verify cert.pem -signature file.sha1 file.data
  • 它只说“无法加载 key 文件

证书上写着:

openssl verify cert.pem 

cert.pem: /C=....
error 20 at 0 depth lookup:unable to get local issuer certificate

但是,我特别不关心验证证书,我只想验证给定文件的签名!

openssl x509 -in cert.pem -noout -text 的输出是:

Certificate:
Data:
Version: 1 (0x0)
Serial Number:
...
Signature Algorithm: sha1WithRSAEncryption
Issuer: C=...
Validity
Not Before: Feb 1 15:22:44 2010 GMT
Not After : Jun 19 15:22:44 2037 GMT
Subject: C=...
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public Key: (2048 bit)
Modulus (2048 bit):
00:cc:cc:f9:c7:3a:00:0f:07:90:55:d9:fb:a9:fe:
...
32:cc:ee:7f:f2:01:c7:35:d2:b5:9b:35:dd:69:76:
00:a9
Exponent: 65537 (0x10001)
Signature Algorithm: sha1WithRSAEncryption
39:d6:2c:6b:6a:00:74:b5:81:c2:b8:60:d6:6b:54:11:41:8d:
...
8f:3e:3f:5d:b3:f8:dd:5e

最佳答案

openssl dgst -verify foo.pem 期望 foo.pem 包含 PEM 格式的“原始”公钥。原始格式是 SubjectPublicKeyInfo 结构的编码,可以在证书中找到;但 openssl dgst 无法一次性处理完整的证书。

您必须首先从证书中提取公钥:

openssl x509 -pubkey -noout -in cert.pem > pubkey.pem

然后使用 key 验证签名:

openssl dgst -verify pubkey.pem -signature sigfile datafile

关于cryptography - 使用 openssl dgst 验证文件签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2385320/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com