如何使用libtomcrypt导入RSA公钥?

时间:2015-06-24 18:58:34

标签: c encryption rsa libtomcrypt

我正在尝试使用libtomcrypt进行RSA-2048位加密。我目前的目标是从文件导入公钥。此文件是使用OpenSSL使用以下命令生成的:

$ openssl rsa -in private.pem -outform PEM -pubout -out public.pem

所以我相信我的公钥是PKCS#1填充和OpenSSL的PEM格式。

我相信我需要使用的函数是rsa_import(),但它接受一个缓冲区,一个长度,并输出一个rsa_key指针。为了清楚起见,我相信我需要做的事情如下:

  1. 将public.pem的内容读入缓冲区
  2. 删除包含“Begin Public Key”等的页眉和页脚。
  3. 从base64解码数据。
  4. 将结果数据传递给rsa_import。
  5. 这是对的吗?使用libtomcrypt为此目的的任何人都能对此发表评论吗?谢谢。

1 个答案:

答案 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使密钥没问题,我可以从那里加密/解密。