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]