This is the progam snippet:

BIO *mbio;
int bio_store_bytes;
unsigned char *cert_data, *cert_data_ptr;
unsigned char *cert_data_tmp;

        //create a read/write BIO
        mbio = BIO_new(BIO_s_mem());

//Assume x is of X509 type and is a result of X509_sign
        PEM_write_bio_X509(mbio, x);
        BIO_flush(mbio);
        
        bio_store_bytes = BIO_pending(mbio);
        BIO_get_mem_data(mbio, (unsigned char *)&cert_data_tmp);
        cert_data_ptr = 
          (unsigned char *) OPENSSL_malloc(bio_store_bytes + 1); /* for \0 */
        if (cert_data_ptr != NULL) {
          cert_data = cert_data_ptr;
          strncpy(cert_data, cert_data_tmp, bio_store_bytes);
          for (i = (bio_store_bytes); 
               i == strlen(cert_data_tmp); 
               i++) {
            cert_data[i] = '\0';
          }
        }
        BIO_free_all(mbio);

I still see the garbage characters:
ukOjszaLTZuAFA==
-----END CERTIFICATE-----
        [EMAIL PROTECTED]

--Smith


On Tue, 07 Sep 2004 14:39:19 -0700, Eric Meyer <[EMAIL PROTECTED]> wrote:
> The PEM format is already Base64.
> 
> Also, your sample includes characters that are invalid for a Base64
> encoded data, which is explicitly 7 bit safe, so would not include an
> accented character. It looks like your null byte is in the wrong place.
> It probably should have come after the "=" sign.
> 
> Eric
> 
> On Sep 7, 2004, at 1:12 PM, Smith Baylor wrote:
> 
> > Hi,
> >
> > I am using C as the programming language and MySQL as the db.
> >
> > unsigned char *cert_data;
> >
> > Instead of storing in PEM format directly, I am storing it in base64
> > format - I believe this is more safer - feel free to prove me
> > otherwise.
> >
> > Once I store the cert_data value, I also pad this with '\0' - string
> > terminator.
> >
> > I get something like this at the end of the encoding:
> > TGZ3am0wTDNjeTN3PT0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=
> > ÃÂÃÂ7HZmÂ
> >
> > which the db insert or update commands don't like.
> >
> > /Shivaram
> >
> >
> >
> >
> >
> >
> > ----- Original Message -----
> > From: Carlos Roberto Zainos H <[EMAIL PROTECTED]>
> > Date: Tue, 7 Sep 2004 12:36:44 -0500 (CDT)
> > Subject: Re: storing PEM encoded certs in database
> > To: [EMAIL PROTECTED]
> >
> >
> > Hi
> > I'm not an expert, but I think that could be some different depending
> > on the DBMS and the driver connection being used.
> >
> > For example, I'm using Oracle DB 10g with ODBC based client connection
> > to the DB.
> >
> > I'm storing PEM certificates making a copy of it to a buffer and then
> > storing it into the DB via INSERT with the apropiate convertions:
> >
> > unsigned char cert[2*1024];
> > BIO *buf;
> >
> >
> > buf = BIO_new (BIO_s_mem());
> > res = PEM_write_bio_X509(buf, xreq);//xreq is the X509 cert
> >
> > longitud = sizeof(cert);
> > res = BIO_read(buf, cert, (int)longitud);
> > cert[res]='\0';
> > //executing the INSERT via exec_sql_comm(sentence) function, where
> > sentence = "insert into certificados
> > (estadocer,fechacaducidad,numserie,certificado) values
> > ('V',to_date('%s','YYYY-MM-DD HH24:MI:SS'),'%i','%s')",fecha_cad,
> > num_serie, cert)"
> > Holpe this helps.
> > Zainos
> >
> > Smith Baylor <[EMAIL PROTECTED]> wrote:
> >
> >
> >
> > ________________________________
> > Do You Yahoo!?
> >  Yahoo! Net: La mejor conexiân a internet y 25MB extra a tu correo por
> > $100 al mes.
> 
> 
> > ______________________________________________________________________
> > 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]
>
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    [EMAIL PROTECTED]
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to