How do I use libtomcrypt to import an RSA public key?

隐身守侯 提交于 2020-01-13 19:17:13

问题


I am experimenting with using libtomcrypt to do RSA-2048 bit encryption. My current objective is to import a public key from a file. This file was generated using OpenSSL with the command:

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

So I believe my public key is in PKCS#1 padding and in OpenSSL's PEM format.

I believe the function I need to use is rsa_import(), but that takes an in buffer, a length, and outputs an rsa_key pointer. Just to be clear, I believe what I need to do is as follows:

  1. Read in the contents of public.pem to a buffer
  2. Toss out the Header and Footers containing "Begin Public Key" etc.
  3. Decode data from base64.
  4. Pass in resulting data to rsa_import.

Is this correct? Can anyone who has used libtomcrypt for this purpose comment on this? Thanks.


回答1:


So, upon digging into the source of rsa_import(), I figured out pretty quickly that it was expecting the key to be in DER format. Since I had access to the private key, I just made a DER file using this openssl command:

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

Notably the argument for -outform is now DER rather than PEM. After this, I just read the file contents into a char buffer, then passed that in as the main argument for rsa_import. After that rsa_import made the key no problem and I was able to encrypt/decrypt from there.



来源:https://stackoverflow.com/questions/31034781/how-do-i-use-libtomcrypt-to-import-an-rsa-public-key

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!