【发布时间】:2013-04-17 01:29:58
【问题描述】:
我在一个名为 digital_signatue1.txt 的文件中有一个 base64 编码的数字签名:
LE3v7aHDOtCYEWrURYfxrq4tAx5zg0siBK0yBdYJTxWTFw/tLoEOcT0JZPRy8RMY
bkCuLClsdVnjYhyfots3RyVl4uaSd2gpEnIN6YCo/DBCBltfWri3rFwtSeV/Gm9K
4+fMNiziTYjUWFS+1v1rbFxv4MbsRFEfYEtU0+xVHN8=
为了对这个数字签名进行base64解码,我使用了以下命令:
openssl base64 -d -in digital_signature1.txt -out digital_signature2.txt
然后为了验证数字签名是否由发件人签名,我使用了以下命令:
openssl rsautl -verify -inkey sender-cert.pem -certin -in digital_signature2.txt
但是,它给了我以下输出:
Loading 'screen' into random state - done
RSA operation error
4080:error:0407006A:rsa routines:RSA_padding_check_PKCS1_type_1:block type is not 01:./crypto/rsa/rsa_pk1.c:100:
4080:error:04067072:rsa routines:RSA_EAY_PUBLIC_DECRYPT:padding check failed:./crypto/rsa/rsa_eay.c:699:
知道我做错了什么吗?
【问题讨论】:
-
我终于想通了。事实证明,在“-inkey”选项之后,我没有使用发件人的实际证书,而是使用了其他人的证书。糟糕!
标签: openssl rsa encryption