Load RSA keys from files
10,379
Take a look at the I/O functions in the OpenSSL crypto library, specifically the PEM functions
RSA *PEM_read_RSAPrivateKey(FILE *fp, RSA **x,
pem_password_cb *cb, void *u);
RSA *PEM_read_RSAPublicKey(FILE *fp, RSA **x,
pem_password_cb *cb, void *u);
Author by
user397232
Updated on June 04, 2022Comments
-
user397232 almost 2 years
I used openSSL command to create 2 files: 1 for RSA public key & 1 for RSA private key. How do I recover RSA keys using C?
Specifically, I have these functions:
RSA_public_encrypt(read_num, in_buf, out_buf, public_key, RSA_PKCS1_PADDING); RSA_private_decrypt(read_num, in_buf, out_buf, private_key, RSA_PKCS1_PADDING);
The 4th arguments, public_key and private_key, need to be in RSA type. But what I have are only 2 text files generated by openSSL command:
File 1: -----BEGIN RSA PRIVATE KEY----- MIICXAIBAAKBgQDP78B9GZ9ZFG6OnZ1PU+9BPoyLRuYJr3rSX470XjbJhmlq9DTn NvG1pxWxrd5tjlmMWD4AkHqD7E87AafvQEiABdUXwf30LatT1w6tlyQWkM/HCN5k .... npF+nDtKmGteLJVp5x7HHMnZaRbvcV2oUtgdmIMbqVYgbPkwO2tUfUPA6zg1fzhy nNzQ35e/Hi0fgSHZib0CQEe4e4txXzkezomkWqwuGL8Qqp8iCbBn44mzxXTBvAQl muFu93C/ULMzRoq4cpPgl3sS0F9s7+zR18SERerFvfc= -----END RSA PRIVATE KEY----- File 2: -----BEGIN PUBLIC KEY----- MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDP78B9GZ9ZFG6OnZ1PU+9BPoyL RuYJr3rSX470XjbJhmlq9DTnNvG1pxWxrd5tjlmMWD4AkHqD7E87AafvQEiABdUX wf30LatT1w6tlyQWkM/HCN5kmK5WzPUYbI1q5xGy7Eox9sJ6cNwMUOT+MSDhErgB gkgF6uG1yGrxuEVk/QIDAQAB -----END PUBLIC KEY-----
Now, I read these 2 files to a char[] array. What I have to do next is convert these 2 arrays to 2 RSA keys (public key at client & private_key at server) so that I can use RSA_public_encrypt and RSA_private_decrypt functions.
Thanks.
-
Mark Lakata about 11 yearsThe public key reader should be
PEM_read_RSA_PUBKEY
, if you are dealing with PEM format. See stackoverflow.com/questions/7818117/…