0

我使用我编写的程序生成了一个PKCS#1 RSA 密钥对。我已将公钥输出为RSAPublicKeyASN.1SEQUENCE数据结构的 DER 编码。

但是,当我尝试在 OpenSSLpkeyutlrsautl命令中使用它时,OpenSSL 说

unable to load Public Key

我已经尝试过 DER 和 PEM 格式。

是否有我必须申请的其他编码和/或数据结构才能在 OpenSSL 中使用?

这是我的命令行:

openssl pkeyutl -encrypt -pubin -in 128-bit.dat -inkey rsa-1440-pub.pem
openssl rsautl -in 128-bit.dat -encrypt -keyform PEM -pubin -inkey rsa-1440-pub.pem

PEM 格式的公钥数据结构

-----BEGIN RSA PUBLIC KEY-----
MIG9AoG1AMuWjPN12DBObfQCxRVKLnP51BbFyEZeSJrmU3bPnwMv8S7hz0dGcSCA
Wa/EZWbNx8gLiWkHlcXeHC+8UO4rtOuaE9PhOXM819C8Y84Y8SddQ4RUMmj1y8ph
pBwExHDiSuKmbvFQLcB7uG10ZUFA9Q5bq/o6bNGsbTas/oB8TzSox5w66maDeyMc
cQFRko2/4AduuStYpnvi8eXa6kaAVDQ43NPCcdep0p78SKjYJNKu8WyZvwIDAQAB
-----END RSA PUBLIC KEY-----
4

1 回答 1

0

对于 OpenSSL 接受的公钥,您似乎需要将其包装在SubjectPublicKeyInfo数据结构中。像这样:

-----BEGIN PUBLIC KEY-----
MIHTMA0GCSqGSIb3DQEBAQUAA4HBADCBvQKBtQDLlozzddgwTm30AsUVSi5z+dQW
xchGXkia5lN2z58DL/Eu4c9HRnEggFmvxGVmzcfIC4lpB5XF3hwvvFDuK7TrmhPT
4TlzPNfQvGPOGPEnXUOEVDJo9cvKYaQcBMRw4kripm7xUC3Ae7htdGVBQPUOW6v6
OmzRrG02rP6AfE80qMecOupmg3sjHHEBUZKNv+AHbrkrWKZ74vHl2upGgFQ0ONzT
wnHXqdKe/Eio2CTSrvFsmb8CAwEAAQ==
-----END PUBLIC KEY-----
于 2021-07-29T10:15:24.323 回答