I know this has been discussed, but I still am having no luck figuring out
my problem.
In the following code, encryption works fine, but decryption sometimes
doesn't work.
I have to use RSA_NO_PADDING for this application.  I am using a 512 bit key
length.
any ideas?

--
steve

        key = RSA_new();

        key = RSA_generate_key(512, RSA_F4, NULL, NULL);
        if (key == NULL)
                goto err;

          /* this should be 64 */
        key_size = RSA_size(key);

        bzero(message, 2048);
        bzero(cipher, 2048);
        bzero(plain_text, 2048);

          /* generate a random message of key_size bits */
        randomize(m, key_size);

        /* encrypt message into cipher */
        enc_len = RSA_public_encrypt(key_size, message, cipher, key,
RSA_NO_PADDING);
        if ((enc_len < 0) || (enc_len != key_size))
        {
                printf("ERROR: encryption failed (%d)\n", enc_len);
                goto err;
        }

        /* decryption uses number of bytes returned by encryption process.
*/
        /* decrypt cipher into plain_test  */
          /* here is where I am having the problem.  sometimes decryption does not
work */
        dec_len = RSA_private_decrypt(key_size, cipher, plain_text, key,
RSA_NO_PADDING);
        if (dec_len < 0 || memcmp(message, plain_text, dec_len) != 0)
        {
                printf("ERROR: decryption failed (%d) (%d)\n", enc_len,
dec_len);
                printf("m:\n"); print_hex(message, key_size);
                printf("plain_text:\n"); print_hex(plain_text, key_size);
                goto err;
        }


______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    [EMAIL PROTECTED]
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to