0

我在 macOS 上使用 LibreSSL 2.8.3 签署了这样的文件:

openssl smime -binary -sign -certfile WWDR.pem -signer passcertificate.pem \
              -inkey passkey.pem -in manifest.json -out signature \
              -outform DER -passin pass:12345

现在我想立即验证同一个文件。我正在尝试以下命令

openssl smime -binary -verify -certfile WWDR.pem -signer passcertificate.pem \
              -inkey passkey.pem -in manifest.json -content signature \
              -inform DER -passin pass:12345

但这失败并出现以下错误。验证签名的正确语法是什么?

读取 S/MIME 消息
时出错 4550921836:error:0DFFF0A8:asn1 encoding routines:CRYPTO_internal:wrong tag:/BuildRoot/Library/Caches/com.apple.xbs/Sources/libressl/libressl-47.11.1/libressl-2.8/crypto/ asn1/tasn_dec.c:1144:
4550921836:error:0DFFF03A:asn1 编码例程:CRYPTO_internal:nested asn1 错误:/BuildRoot/Library/Caches/com.apple.xbs/Sources/libressl/libressl-47.11.1/libressl-2.8 /crypto/asn1/tasn_dec.c:317:Type=PKCS7

我基本上这样做是因为我想尝试快速实现登录。我知道上面的 sign 命令可以正常工作,所以如果我能弄清楚如何验证文件,那么我就可以正确测试我的 Swift 实现是否有效。

WWDR.pem 文件来自http://www.apple.com/certificateauthority,是全球开发者关系证书。

为了获取passcertificate.pempasskey.pem文件,我去了 Apple Developer 门户并生成了通过证书,将其导入 mac Keychain Access,将其导出到 Certificates.p12,然后运行以下两个命令:

 openssl pkcs12 -in Certificates.p12 -clcerts -nokeys \
                 -out passcertificate.pem -passin pass:
 openssl pkcs12 -in Certificates.p12 -nocerts -out passkey.pem \
                -passin pass: -passout pass:12345
4

0 回答 0