Hi Bruno,

--- On Thu, 5/20/10, Bruno Vetel <bruno.ve...@esas.fr> wrote:

> From: Bruno Vetel <bruno.ve...@esas.fr>
> Subject: Re: Base64 Decode Problem/Question
> To: openssl-users@openssl.org
> Date: Thursday, May 20, 2010, 1:43 PM
> Doug Kehn <rdk...@yahoo.com>
> writes:
> 
> > Hi All,
> >
> Hi
> 
> \n is not base64. Try with echo -n
>

I removed the '\n' and got the same result.


(Sorry for the double post.  I had mailer problems and didn't think the first 
attempt went out.)
 
> 
> > 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
> 



______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    openssl-users@openssl.org
Automated List Manager                           majord...@openssl.org

Reply via email to