Hello Steve,
Thank you very much for you help. It worked like a charm.
Regards,
Dan
On Aug 15, 2007, at 2:22 PM, Dr. Stephen Henson wrote:
On Wed, Aug 15, 2007, Dan Spirlock wrote:
Hello,
I'm working on an application where I'd like to have the public key
stored in a local variable and compiled with the app, but I'm getting
a runtime error when I try to read the public key after it has been
stored in a BIO_mem_buf. I've tried two different ways, but I get
the same error each time. If I read the same public key from a file
using PEM_read_RSA_PUBKEY(), it works fine. I generated a private/
public key pair to test with. Here is an example I've tried:
static char *pubKey = "-----BEGIN PUBLIC KEY-----
\nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCvbB1yh71tGgX5wQ5PbYR+2V9K
\nbmCqcVjbKdcsR9u91dfsXEeH+17kr6TPy2HQcAn1wk5jos8B78bSRLV8STs54Teq
\nPa6Z4JrLim89+zgaxbS5k9W87oP06BZ2suf6fBB2M296UJbzBqSYCVTsxbEHQDbP\n/
hSGRtueV5668F8qzwIDAQAB\n-----END PUBLIC KEY-----\n";
BIO *pub_bio = BIO_new_mem_buf(pubKey, sizeof(pubKey);
if(pub_bio == NULL)
{
ERR_print_errors_fp(stdout);
return -1;
}
// rsaPubKey was previously initialized with RSA_new()
rsaPubKey = PEM_read_bio_RSAPublicKey(pub_bio, &rsaPubKey, NULL,
NULL);
if(rsaPubKey == NULL) // always fails here
{
ERR_print_errors_fp(stdout);
return -1;
}
The error is always: PEM_read_bio:no start line:pem_lib.c:
642:Expecting: RSA PUBLIC KEY
I've added the \n newline characters to the pubKey variable, but I
always get the same error. Is there something I'm missing in this
process? I'm sure there is otherwise I wouldn't need to be posting to
the list. :-)
Thanks for any help that anyone can provide,
Two problems, the sizeof is wrong: you'll end up passing the size
of a pointer
which isn't what you want. Pass -1 instead and it automatically does a
strlen() on the buffer.
Second problem, wrong public key format. Use PEM_read_bio_RSA_PUBKEY()
instead.
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 [email protected]
Automated List Manager [EMAIL PROTECTED]
______________________________________________________________________
OpenSSL Project http://www.openssl.org
User Support Mailing List [email protected]
Automated List Manager [EMAIL PROTECTED]