Thanks Mounir and Marek, I will try to recover these parameters. -----Original Message----- From: owner-openssl-us...@openssl.org [mailto:owner-openssl-us...@openssl.org] On Behalf Of Mounir IDRASSI Sent: Thursday, February 24, 2011 2:27 AM To: openssl-users@openssl.org Subject: Re: RSA_private_decrypt without e and d
Hi Shaheed, The OpenSSL error you are getting means that OpenSSL decrypted the ciphered text but couldn't find the PKCS1 padding byte. This means that the wrong CRT parameters were supplied. Usually this comes from the fact that the parameters p and q (and the corresponding dmp1, dmq1) must be swapped : p instead of q and q instead of p (same thing for dmp1 and dmq1). In order to check this, you can use a tool I have written and that enables you to recover e and d from these 5 parameters. You can get it from sourceForge using the following link : http://rsaconverter.sourceforge.net/ . Thanks to it, you can check that these 5 parameters give you the correct d and e. In your case, I'm sure you'll get the wrong d and e. Swap the parameters and see if you get the correct d this time. I hope this will help. Cheers, -- Mounir IDRASSI IDRIX http://www.idrix.fr On 2/24/2011 4:03 AM, Shaheed Bacchus (sbacchus) wrote: > > Just to be clear, below is not the actual code, but what I would > **like** to be able to do (or something close). > > *From:*owner-openssl-us...@openssl.org > [mailto:owner-openssl-us...@openssl.org] *On Behalf Of *Shaheed > Bacchus (sbacchus) > *Sent:* Wednesday, February 23, 2011 9:47 PM > *To:* openssl-users@openssl.org > *Subject:* RSA_private_decrypt without e and d > > Hi, > > I have a situation where I have a message that has been encrypted via > RSA_public_encrypt. On the receiving end I have the n, p, q, dmp1, > dmq1, and iqmp components (I know it might sound odd that I don't have > the e and d components but that is the case). I'm trying to do > something like: > > If (!(new_key = RSA_new())) > > return -1; > > new_key->n = BN_bin2bn(n_data, n_data_len, NULL); > > new_key->p = BN_bin2bn(p_data, p_data_len, NULL); > > new_key->q = BN_bin2bn(q_data, q_data_len, NULL); > > new_key->dmp1 = BN_bin2bn(dmp1_data, dmp1_data_len, NULL); > > new_key->dmq1 = BN_bin2bn(dmq1_data, dmq1_data_len, NULL); > > new_key->iqmp = BN_bin2bn(iqmp_data, iqmp1_data_len, NULL); > > resultDecrypt = RSA_private_decrypt(encrypted_size, encrypted, > decrypted, new_key, RSA_PKCS1_PADDING); > > This decrypt fails with > > error:0407106B:rsa routines:RSA_padding_check_PKCS1_type_2:block type > is not 02 > > Supplying the correct e and d component causes it work properly, but I > will not have those under normal circumstances. Is there any way to do > this without d and e? > ______________________________________________________________________ OpenSSL Project http://www.openssl.org User Support Mailing List openssl-users@openssl.org Automated List Manager majord...@openssl.org ______________________________________________________________________ OpenSSL Project http://www.openssl.org User Support Mailing List openssl-users@openssl.org Automated List Manager majord...@openssl.org