Openssl

無法解密具有公共簽名的文件

  • September 17, 2020

我得到了這個簽名

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

我在這裡想念什麼?

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 …

引用自:https://unix.stackexchange.com/questions/609919