无法使用公共签名解密文件

无法使用公共签名解密文件

我收到了这个签名

openssl verify cert.pem
cert.pem: C = US, O = Apple Inc., OU = Apple Certification Authority, CN = Apple Root CA
error 18 at 0 depth lookup:self signed certificate
OK

看起来不错。我得到了这个文件,但它告诉我无法使用此命令打开该文件

openssl rsautl -verify -in receipt2.hex.pkcs7 -pubin -inkey cert.pem -out verified-data.bin
unable to load Public Key

我在这里缺少什么?

答案1

cert.pem是一个证书。证书包含公钥,但它不是公钥。您需要从证书中提取公钥。

openssl x509 -in cert.pem -noout -pubkey -out pubkey.pem
openssl rsautl -pubin -inkey pubkey.pem …

或者,使用pkeyutl,它有两个好处:它也适用于其他公钥方案(例如 ECDSA),并且它可以选择从证书中提取公钥。

openssl pkeyutl -certin -in cert.pem …

相关内容