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:
Is this correct? Can anyone who has used libtomcrypt for this purpose comment on this? Thanks.
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.