在 OpenSSL 中测试自生成的 RSA public 密钥

Testing self-generated RSA public key in OpenSSL

我使用自己编写的程序生成了 PKCS#1 RSA 密钥对。我输出 public 密钥作为 RSAPublicKey ASN.1 SEQUENCE 数据结构的 DER 编码。

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

unable to load Public Key

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

是否有额外的编码 and/or 数据结构我必须申请才能在 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格式的public关键数据结构

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

要让 OpenSSL 接受 public 密钥,您似乎需要将其包装在 SubjectPublicKeyInfo 数据结构中。像这样:

-----BEGIN PUBLIC KEY-----
MIHTMA0GCSqGSIb3DQEBAQUAA4HBADCBvQKBtQDLlozzddgwTm30AsUVSi5z+dQW
xchGXkia5lN2z58DL/Eu4c9HRnEggFmvxGVmzcfIC4lpB5XF3hwvvFDuK7TrmhPT
4TlzPNfQvGPOGPEnXUOEVDJo9cvKYaQcBMRw4kripm7xUC3Ae7htdGVBQPUOW6v6
OmzRrG02rP6AfE80qMecOupmg3sjHHEBUZKNv+AHbrkrWKZ74vHl2upGgFQ0ONzT
wnHXqdKe/Eio2CTSrvFsmb8CAwEAAQ==
-----END PUBLIC KEY-----