在 OpenSSL 中测试自生成的 RSA public 密钥
Testing self-generated RSA public key in OpenSSL
我使用自己编写的程序生成了 PKCS#1 RSA 密钥对。我输出 public 密钥作为 RSAPublicKey
ASN.1 SEQUENCE
数据结构的 DER 编码。
但是,当我尝试在 OpenSSL pkeyutl
和 rsautl
命令中使用它时,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-----
我使用自己编写的程序生成了 PKCS#1 RSA 密钥对。我输出 public 密钥作为 RSAPublicKey
ASN.1 SEQUENCE
数据结构的 DER 编码。
但是,当我尝试在 OpenSSL pkeyutl
和 rsautl
命令中使用它时,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-----