One of the most important things about this is, "when did you obtain
the installer from slproweb.com"?  It's difficult to figure out if
it's older, or a problem in a very recent build, or what.

Did you attach a debugger to the program and examine it to see what
might be looping?

(In the meantime, I'm going to try this with VC++ 2005, 8.0).

-Kyle H

On 2/15/06, Matthias <[EMAIL PROTECTED]> wrote:
> Good day everyone!
>
> I do have the problem that the OpenSSL function "PEM_read_RSAPrivateKey"
> does nothing, not even returning. Since I can not find any more hints
> in the net I am asking here for help. I wrote a minimalistic example
> program and hope somebody can give me some advice based on that.
>
> I am using Visual Studio .net 2003 v7.1.3088 on Windows XP Pro SP 2.
>
> For OpenSSL I am using Win32 OpenSSL v0.9.8a, the precompiled and
> installer-packed binaries you can find under
> http://www.slproweb.com/products/Win32OpenSSL.html
>
> What I did:
>
> Visual Studio Application Wizard: Win32 Console Application,
> starting as empty project
> added Additional Include Directories: "..\openssl\include"
> added Additional Library Directories: "..\openssl\lib\vc"
> (NOT "..\openssl\lib\vc\static" !)
> added Additional Dependencies: "libeay32.lib ssleay32.lib"
> set Runtime Library on "Multi-threaded Debug DLL (/MDd)" and
> "Multi-threaded DLL (/MD)"
> copied "applink.c" into project directory and added to VS project
> created new file "example.cpp" and added to VS project
>
> -------------------- snip --------------------
>
> // SSL
> #include "openssl/ssl.h"
> #include "openssl/rand.h"
> #include "openssl/err.h"
> #include "openssl/rsa.h"
>
> // STD
> #include <iostream>
> #include <string>
> #include <iomanip>
> using namespace std;
>
> // TCHAR
> #include <tchar.h>
>
> int _tmain(int argc, _TCHAR* argv[])
> {
>    // initialization
>    {
>      SSL_load_error_strings();
>
>      SSL_library_init();
>      // note: replaces OpenSSL_add_all_algorithms() since 0.9.8a
>
>      cout << "Seed random number generator..." << endl;
>      const char SeedBuffer[16] = "123456789ABCDEF";
>      RAND_seed(SeedBuffer, 16);
>    }
>
>    // generate and write keys
>    {
>      cout << "Generate RSA key..." << endl;
>      RSA* pRSA = RSA_generate_key(1024, 65537, NULL, NULL);
>      if (pRSA == NULL)
>      {
>        cout
>          << "RSA_generate_key failed: "
>          << ERR_get_error()
>          << endl;
>        return false;
>      }
>
>      cout << "Size: " << RSA_size(pRSA) * 8 << " Bit" << endl;
>
>      FILE* pPrivateKeyFile = fopen("RSAPrivateKey.txt", "w");
>      if (pPrivateKeyFile == NULL)
>      {
>        cout << "fopen failed" << endl;
>        return 1;
>      }
>
>      cout << "Write private key file..." << endl;
>      if (PEM_write_RSAPrivateKey(
>        pPrivateKeyFile, pRSA, NULL, NULL, 0, NULL, NULL) == 0)
>      {
>        cout
>          << "PEM_write_RSAPrivateKey failed: "
>          << ERR_get_error()
>          << endl;
>        return 1;
>      }
>
>      fclose(pPrivateKeyFile);
>
>      // note: file "RSAPrivateKey.txt" now exists, is plaintext
>      // and obviously contains a key
>
>    }
>
>    // read keys
>    {
>      FILE* pPrivateKeyFile = fopen("RSAPrivateKey.txt", "r");
>      if (pPrivateKeyFile == NULL)
>      {
>        cout << "fopen failed" << endl;
>        return 1;
>      }
>
>      cout << "Read private key file..." << endl;
>      RSA* pPrivateKeyRSA = PEM_read_RSAPrivateKey(
>        pPrivateKeyFile, NULL, NULL, NULL);
>
>      // !!!!! program never comes here !!!!!
>
>      // note: I tried every combination of callback function
>      // for the password but the program never got there, too
>
>      if (pPrivateKeyRSA == NULL)
>      {
>        cout
>          << "PEM_read_RSAPrivateKey failed: "
>          << ERR_get_error()
>          << endl;
>        return 1;
>      }
>
>      fclose(pPrivateKeyFile);
>
>      cout
>        << "Size: " << RSA_size(pPrivateKeyRSA) * 8 << " Bit"
>        << endl;
>    }
>
>    cout << "Done." << endl;
>    return 0;
> }
>
> -------------------- snap --------------------
>
> Thanks,
> Matthias
>
> ______________________________________________________________________
> 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]

Reply via email to