【问题标题】:How do I use libtomcrypt to import an RSA public key?如何使用 libtomcrypt 导入 RSA 公钥?
【发布时间】:2015-06-24 18:58:33
【问题描述】:

我正在尝试使用 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. 扔掉包含“Begin Public Key”等的页眉和页脚。
  3. 从 base64 解码数据。
  4. 将结果数据传递给 rsa_import。

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

【问题讨论】:

    标签: c encryption rsa libtomcrypt


    【解决方案1】:

    因此,在深入研究 rsa_import() 的源代码后,我很快发现它期望密钥为 DER 格式。由于我可以访问私钥,因此我只是使用以下 openssl 命令创建了一个 DER 文件:

    openssl rsa -in private.pem -outform DER -pubout -out public.der
    

    值得注意的是,-outform 的参数现在是 DER 而不是 PEM。在此之后,我只是将文件内容读入 char 缓冲区,然后将其作为 rsa_import 的主要参数传入。之后 rsa_import 使密钥没有问题,我能够从那里加密/解密。

    【讨论】:

    • 你保留问题中出现的4个步骤了吗?
    猜你喜欢
    • 2010-10-04
    • 1970-01-01
    • 1970-01-01
    • 2020-12-24
    • 2023-01-17
    • 2018-01-13
    • 2018-05-02
    • 2013-07-31
    • 1970-01-01
    相关资源
    最近更新 更多