So I need to save buf to a tmp first like with d2i_RSAPublicKey? Like this:
int len = i2d_RSAPublicKey(rsa, 0); unsigned char* buf = new unsigned char[len]; unsigned char* tmp = buf; i2d_RSAPublicKey(rsa, &tmp); // now use buf to decode Is this correct? > -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] On Behalf Of Dr. > Stephen Henson > Sent: Thursday, July 21, 2005 10:23 AM > To: openssl-users@openssl.org > Subject: Re: d2i_RSAPublicKey doesn't work > > On Thu, Jul 21, 2005, Edward Chan wrote: > > > The code is basically like this: > > > > int len = i2d_RSAPublicKey(rsa, 0); > > > > // allocate buffer > > unsigned char* buf = new unsigned char[len]; > > > > // now call again to DER encode the public key > > if (i2d_RSAPublicKey(rsa, &buf) == len) > > { > > > > I've also tried creating the RSA object first, and passing it into > > d2i_RSAPublicKey() for it to fill in. It also returns me null back. > > Does the code look right? > > > > No, this code is wrong for the reasons mentioned in the FAQ. > After this call 'buf' points to garbage and that's why > d2i_RSAPublicKey() is failing. > > Steve. > -- > Dr Stephen N. Henson. Email, S/MIME and PGP keys: see > homepage OpenSSL project core developer and freelance consultant. > Funding needed! Details on homepage. > Homepage: http://www.drh-consultancy.demon.co.uk > ______________________________________________________________________ > OpenSSL Project http://www.openssl.org > User Support Mailing List openssl-users@openssl.org > Automated List Manager [EMAIL PROTECTED] > ______________________________________________________________________ OpenSSL Project http://www.openssl.org User Support Mailing List openssl-users@openssl.org Automated List Manager [EMAIL PROTECTED]