Doug Kehn <rdk...@yahoo.com> writes:

> Hi All,
>
Hi

\n is not base64. Try with echo -n


   Bruno

> I'm trying to decode a base64 encoded string.  The problem I'm running in to 
> is that BIO_read() always returns 0.  BIO_should_retry() and 
> BIO_should_read() also return 0 when BIO_read() returns 0.  If the base64 
> encoded string is shortened, BIO_read returns the decoded information.  I'm 
> using OpenSSL 0.9.8g 19 Oct 2007 on Ubuntu 9.04.
>
> Any suggestions on what I'm doing wrong?
>
> Thanks,
> ...doug
>
> ---8<-----
>
> /*
>  * Compiled with: gcc -Wall -lssl
>  */
>
> #include <openssl/bio.h>
> #include <openssl/evp.h>
> #include <stdio.h>
> #include <string.h>
>
> int main(int argc, char **argv)
> {
> #if 1
>       /*
>        * This does not work
>        */
>       char *message = 
> "Tm8gaXMgdGhlIHRpbWUgZm9yIGFsbCBnb29kIG1lbiB0byBjb21lIHRvIHRoZSBhaWQgb2YgdGhlaXIgY291bnRyeS4NClRoZSBxdWljayBicm93biBmb3gganVtcGVkIG92ZXIgdGhlIGxhenkgZG9nJ3MgYmFjayAwMTIzNDU2Nzg5Lg==\n";
> #endif
> #if 0
>       /*
>        * This shortened version works
>        */
>       char *message = "Tm8gaXMgdGhlIHRpbWUgZm9yIGFsbCBnb29kIG1lbiB0by==\n";
> #endif
>
>       BIO *b64, *bio, *bmem;
>       char *buf;
>       int i = strlen(message) + 25;
>
>       buf = malloc(i);
>       if (!buf) {
>               printf("malloc fail, %m\n");
>               return -1;
>       }
>
>       bmem = BIO_new_mem_buf((void*)message, -1);
>       b64 = BIO_new(BIO_f_base64());
>       BIO_set_flags(bmem, BIO_FLAGS_BASE64_NO_NL);
>       bio = BIO_push(b64, bmem);
>       i = BIO_read(bio, (void*)buf, i);
>       buf[i] = '\0';
>       BIO_free_all(bio);
>
>       printf("%s\n%s\n", message, buf);
>
>       return 0;
> }
>
>
> ______________________________________________________________________
> 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

Reply via email to