rsa encryption decryption using c

与世无争的帅哥 提交于 2020-02-04 05:16:47

问题


I'm trying to write C code of RSA encryption and decryption using Open SSL. But I am not able to do so. I googled it but whatever code I got from internet it was out of my head. main function goes here which I got from stack overflow. I tried using it … but its not working. May be my bad.

encrypt(FILE *rsa_Pkey_fole,FILE *in_file,FILE *out_file){

}

int main(int argc, char *argv[])
{
    FILE *rsa_pkey_file, *infile;
    int rv;

    if (argc < 2) {
            fprintf(stderr, "Usage: %s <PEM RSA Public Key File>\n", argv[0]);
            exit(1);
    }

    rsa_pkey_file = fopen(argv[1], "rb");
    infile = fopen(argv[2], "w");
    if (!rsa_pkey_file) {
        perror(argv[1]);
        fprintf(stderr, "Error loading PEM RSA Public Key File.\n");
        exit(2);
    }

    rv = encrypt(rsa_pkey_file, infile.txt, stdout);
    fclose(rsa_pkey_file);

    return rv;
}

And similar way decryption.

How can I do RSA encryption and decryption of a file using Open SSL library in C in simple way?


回答1:


Steps for RSA encryption are as follows:

  1. Read the public key into RSA * structure. It depends on your key format. If key is in PEM format, use PEM_read_RSA_PUBKEY functions. If it is in DER form, use d2i_RSA.
  2. Encrypt your data using RSA public key. Use RSA_public_encrypt function.
  3. Write the data to file or whatever you want to do.

Steps for RSA decryption are:

  1. Read the private key into RSA * structure. It is similar to step 1 in RSA encryption with some minor difference.
  2. Decrypt the data using RSA_private_decrypt. Use RSA_private_decrypt.

You can look OpenSSL documentation which is quite useful and its names are intuitive. I give you just broad level idea. If you need more help, I can post the code example.



来源:https://stackoverflow.com/questions/15652816/rsa-encryption-decryption-using-c

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