2

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

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

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

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

  1. 将 public.pem 的内容读入缓冲区
  2. 扔掉包含“开始公钥”等的页眉和页脚。
  3. 从 base64 解码数据。
  4. 将结果数据传递给 rsa_import。

它是否正确?任何为此目的使用 libtomcrypt 的人都可以对此发表评论吗?谢谢。

4

1 回答 1

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 使密钥没有问题,我能够从那里加密/解密。

于 2015-06-24T21:54:56.453 回答