I'm trying to read a certificate in PEM format from memory, using BIO, but everytime, it just returns NULL. Can anyone point out what's wrong with this code?

        char * mykey =
                "-----BEGIN CERTIFICATE-----\n" \
"MIIBzjCCATegAwIBAgIIB+d8Z03zbQQwDQYJKoZIhvcNAQEFBQAwHzEMMAoGA1UEAxMDY3NwMQ8wDQYDVQQGDAbkuK3lm70wHhcNMDUwMjA2MDc1OTQ3WhcNMDcwMjA2MDc1OTQ3WjAfMQwwCgYDVQQDEwNjc3AxDzANBgNVBAYMBuS4reWbvTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAi5ERCTk3RC8W/9T+ozruc9kWhLh9vQ1Ke130TfzWgX0wK2qGNUy+C4CCsjn6ThO8vz4QQtbt1QSwl8+BUAUdAto2iiHyI4nzxEnwhTheRDFnJsjMwwbjkYXZIDgpt+EiT9U0UryHtNaPUK7+se9Ee7PpjbJb51vwHhIGOikhDdkCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEBADANBgkqhkiG9w0BAQUFAAOBgQB/nUFATa4V8CXo0nMZYzBGA+bddbkphmW1unD/BLLbWq4ant4bgALt0a1nqHKEAPkeHXryxvsvZAoRR4mI7YvEjQvKaA06AwniATOcMDsa3RrHRoXp+/N2OfNMzjYt3Wa0ZqiI9Y/u1odrkvFamhKuCpMzvrJSOACsiKB31v2fuw==\n" \
                "-----END CERTIFICATE-----\n";

        BIO *bio = BIO_new_mem_buf(mykey, -1);

        X509 *x509 = NULL;
        PEM_read_bio_X509(bio, &x509, 0, NULL);

        if (x509 == NULL)
                std::cout << "PEM_read_bio_X509 failed..." << std::endl;

The problem is PEM_read_bio_X509() always return NULL for x509. I must have done something wrong, but have no clue what is going on here. Browsing thru the book "Network Security with OpenSSL" over and over again, and even reading the code of OpenSSL, the way I invoked those functions seems correct to me.

Any help would be very much appreciated.

rgds

_________________________________________________________________
Express yourself instantly with MSN Messenger! Download today - it's FREE! http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/

______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    openssl-users@openssl.org
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to