Thanks Tom for the help. It seems that there is some problem with the private key which I am passing. With your key or newly generated key this logic works fine. Now the error which I am getting is like :
OpenSSL error: error:0906D066:PEM routines:PEM_read_bio:bad end line And last lines of my keys are like : "09dirkd+sRoXWShF8ctVVb4B1PAFTOBEa8diickehnAyEq6KhzLWpQqhqCnylETw\r\n" "Drys2uVaAzmRhS6tGJ2fdwPnlSLJrQbHuP938BkyxNhdYN8drfqb\r\n"; "-----END RSA PRIVATE KEY-----\r\n"; I have seen that the key which you are using or which I have generated has "==" at the end, the same is not true with my current private key (end lines above). I will try to get the new key from the concerned person. thanks * PS : To my wonder this file is being read properlly using API PEM_read_PrivateKey(). thanks. On Wed, Oct 1, 2008 at 10:22 PM, Kelly, Tom <[EMAIL PROTECTED]> wrote: > Hmmm. Here's my example program (derived from yours). > Without the "\r\n" at the end of the lines, I get > the same error you do. With the code as below, > it works fine: > > > $ cc -o readkey readkey.c -lcrypto > $ ./readkey > Success > $ > > > #include <openssl/pem.h> > #include <string.h> > > char *key = > "-----BEGIN RSA PRIVATE KEY-----\r\n" > "MIICXgIBAAKBgQCoxKMPX/VPz8ucSCyB2Z5LF4IeNnWW4qZqIylM71nwsNATdJP6\r\n" > "DKk3ehh6nNpX/qTQtE98se7qgV6PoUi6jP4qG0bxr1b5TqZ90c7JFi9u7uxU0NtY\r\n" > "ma/i+poWwoOnFIPi7qjgurTFxj6zEqxfiVV4iI+1qATqRSkyDOz0IacU7QIDAQAB\r\n" > "AoGAbI+YyHIUjdOACTbQEnMXBPzJQYAMohOHsuyNS6UHuPEz19/8tDNiwoHyrySo\r\n" > "u0PdZzcljnOy2PyBBGleLEo3z3iu03oW8yH+OVhmIQb40iBu7aIlYUG6Sv3y2rpD\r\n" > "07bRDCFrrJZ/YRyidKZfWOqCkz9ZCA43ijCcyxhjxPZw5GECQQDSgKIlsRWUbZqz\r\n" > "+Mor8/bzSuMkgC5Dus8T9bCZ938pQeXn+qoMJAjKQgP/4XeO8W0x3rgBRWjJUHkK\r\n" > "uUGbkztZAkEAzT7J9FogkYvS57h8mQHHapA9eSiRCKzEhO4OCf/Ou9hHKCQyZ+GY\r\n" > "sE0yrCR2U0ig1TYE/EhANYnweVutQ343tQJBALu59+EBUityq7rArxwPkDZcnMEa\r\n" > "hyfj23UDcSF+NStIF46QX0JAiI5H3WU/X+5cpHMLGrIXgmG2oJvNpxLldNECQQDI\r\n" > "X00wVbDIBvaOrGhPxBHYMhshpn35NxngILvp/Sfp8Vp+kN/41KCJNcSLlElEQ3po\r\n" > "zIUPesXcvt7ay6qaYqWlAkEAmErkFZ6bQQxUx11pE1qlm21qsu1kZY8PlJTmLzDp\r\n" > "Ir2/+KEp8Js9znwsefMOB4db9Eg0AMTVuAKLRf8fFup89A==\r\n" > "-----END RSA PRIVATE KEY-----\r\n"; > > int main(int argc, char **argv) > { > ERR_load_crypto_strings(); > OpenSSL_add_all_algorithms(); > int keyLength = strlen(key); > BIO *bio = BIO_new_mem_buf(key, keyLength); > > EVP_PKEY *pktmp = NULL; > pktmp = PEM_read_bio_PrivateKey(bio, NULL, NULL, NULL); > > if (pktmp == NULL) { > char buffer[120]; > > ERR_error_string(ERR_get_error(), buffer); > fprintf(stderr, "OpenSSL error: %s", buffer); > } else > fprintf(stderr, "Success\n"); > } > > Tom > > > > Dan Ribe wrote: > >> Tom, >> >> Tried your suggestion, but it is not working ! >> >> Any other clues on this ? >> >> Thanks much, >> Dan >> >> On Wed, Oct 1, 2008 at 7:04 PM, Kelly, Tom <[EMAIL PROTECTED]> >> wrote: >> >> >>> Dan Ribe wrote: >>> >>> Hi, >>>> >>>> I am trying to read the private key from the memory buffer (code snippet >>>> below), But PEM_read_bio_PrivateKey() always returns an error : OpenSSL >>>> error: error:0906D06C:PEM routines:PEM_read_bio:no start line >>>> >>>> Can anyone please point out what I am doing wrong here. I am pretty new >>>> to >>>> OpenSSL, so please excuse me if i have messed up the things ! >>>> >>>> Code Snippet : >>>> >>>> char *key = "-----BEGIN RSA PRIVATE KEY-----" >>>> "jGK1T++C+Np4As+KoaO2NCiCBN5UQJRzXBsZvLDoN6IcfxJwXklp560jrKiIZ8VU" >>>> "N2AZVq28yjqt3RYaRPn0xhbmLfWH/o+wzlg58wIDAQABAoIBAAHEep7qWWMFWsbc" >>>> >>>> I think you need the "\n" at the end of each line (or possibly \r\n): >>> >>> char *key = "-----BEGIN RSA PRIVATE KEY-----\n" >>> ^ >>> "jGK1T++C+Np4As+KoaO2NCiCBN5UQJRzXBsZvLDoN6IcfxJwXklp560jrKiIZ8VU\n" >>> ^ >>> "N2AZVq28yjqt3RYaRPn0xhbmLfWH/o+wzlg58wIDAQABAoIBAAHEep7qWWMFWsbc\n" >>> ^ >>> >>> etc. >>> >>> Tom >>> ______________________________________________________________________ >>> OpenSSL Project http://www.openssl.org >>> User Support Mailing List openssl-users@openssl.org >>> Automated List Manager [EMAIL PROTECTED] >>> >>> >> ______________________________________________________________________ > OpenSSL Project http://www.openssl.org > User Support Mailing List openssl-users@openssl.org > Automated List Manager [EMAIL PROTECTED] >