我正在尝试使用libtomcrypt进行RSA-2048位加密。我目前的目标是从文件导入公钥。此文件是使用OpenSSL使用以下命令生成的:
$ openssl rsa -in private.pem -outform PEM -pubout -out public.pem
所以我相信我的公钥是PKCS#1填充和OpenSSL的PEM格式。
我相信我需要使用的函数是rsa_import(),但它接受一个缓冲区,一个长度,并输出一个rsa_key指针。为了清楚起见,我相信我需要做的事情如下:
这是对的吗?使用libtomcrypt为此目的的任何人都能对此发表评论吗?谢谢。
答案 0 :(得分:2)
因此,在深入了解rsa_import()的源代码后,我很快发现它期望密钥是DER格式的。由于我可以访问私钥,因此我只使用此openssl命令创建了一个DER文件:
openssl rsa -in private.pem -outform DER -pubout -out public.der
值得注意的是,-outform的参数现在是DER而不是PEM。在此之后,我只是将文件内容读入char缓冲区,然后将其作为rsa_import的主要参数传递。之后rsa_import使密钥没问题,我可以从那里加密/解密。