I'm really stuck trying to base64 decode a string with bios. Any help
on what I''m doing wrong or how to work out what the problem is would be
very much appreciated. My code is:
int i = 0, j = 0;
BIO *bio, *b64;
b64 = BIO_new(BIO_f_base64());
bio = BIO_new(BIO_s_mem());
BIO_set_mem_eof_return(bio, 0); // no error checking but allocations
seem OK in debug
i = BIO_write(bio, "SGVsbG8gd29ybGRcIQo=",20); //simple example
"Hello World\!"
bio = BIO_push(b64, bio); // if I take this out I get the still
encoded string back
j = BIO_ctrl_pending(bio); // = 20, i.e. length of encoded srting
i = BIO_read(bio, sbuf2, j); // always return 0, sbuf2 is unchanged
i = BIO_eof(bio); // = 1, i.e. EOF
i = BIO_ctrl_pending(bio); // = 0, i.e. now empty
BIO_free_all(bio);
This is driving me nuts (no-one can help me with that!)
Thanks
John Jarvie
______________________________________________________________________
OpenSSL Project http://www.openssl.org
User Support Mailing List [EMAIL PROTECTED]
Automated List Manager [EMAIL PROTECTED]