Hi again
I downloaded from slproweb at 9. February 2006 and the file
is called "Win32OpenSSL-v0.9.8a.exe". I didn't have any
OpenSSL stuff on my computer before, so even no "old things"
lieing around on the harddisc.
If I run the program in VS .net 2003 v7.1.3088 with "Start F5"
the program seems to "freeze" at PEM_read_RSAPrivateKey,
consumes 100% usage of one CPU (I have a Hyperthreading so
I see 50% CPU usage in task manager) and when I press
"Break All" in the Debugger I get the following call stack:
---------- snip ----------
msvcrt.dll!77c12b9f()
ntdll.dll!7c9206eb()
ntdll.dll!7c97d886()
ntdll.dll!7c959d18()
ntdll.dll!7c92b686()
ntdll.dll!7c936a44()
ntdll.dll!7c936abe()
ntdll.dll!7c936abe()
ntdll.dll!7c97cde9()
ntdll.dll!7c97e0f0()
ntdll.dll!7c97e0d4()
ntdll.dll!7c92b5f4()
ntdll.dll!7c92b686()
ntdll.dll!7c936abe()
ntdll.dll!7c97cde9()
ntdll.dll!7c97e0f0()
ntdll.dll!7c95a1f5()
ntdll.dll!7c92b5f4()
ntdll.dll!7c92b686()
kernel32.dll!7c81cb8e()
kernel32.dll!7c81cbcb()
ntdll.dll!7c91e3ed()
ntdll.dll!7c9232f8()
kernel32.dll!7c81cb8e()
kernel32.dll!7c81cbcb()
msvcrt.dll!77c0f962()
msvcrt.dll!77bfc3ce()
libeay32.dll!1000101e()
libeay32.dll!1000120c()
libeay32.dll!1003f487()
libeay32.dll!1003d627()
libeay32.dll!10068404()
msvcr71d.dll!_write_lk(int fh=1, const void * buf=0x00000fa0, unsigned
int cnt=270647770) Line 234 + 0x8 C
msvcr71d.dll!_write(int fh=1244344, const void * buf=0x1021b45c,
unsigned int cnt=1) Line 87 + 0x9 C
msvcr71d.dll!_unlock_fhandle(int fh=1244344) Line 477 C
003e1fb8()
msvcr71d.dll!_write(int fh=1244392, const void * buf=0x00000001,
unsigned int cnt=270542996) Line 87 + 0x9 C
msvcr71d.dll!_flsbuf(int ch=271042648, _iobuf * str=0x1024755c) Line
180 + 0x11 C
msvcr71d.dll!fputc(int ch=10, _iobuf * str=0x1027c858) Line 56 + 0x9 C
msvcr71d.dll!_tsopen_lk(int * punlock_flag=0x0000000a, int *
pfh=0x1027c858, const char * path=0x0012fdb8, int oflag=273198671, int
shflag=1244426, int pmode=273199175) Line 414 + 0xd C
msvcp71d.dll!std::_Fputc<char>(char _Byte='<STRANGEBOXHERE>', _iobuf *
_File=0x1048b047) Line 69 + 0xf C++
msvcp71d.dll!std::basic_filebuf<char,std::char_traits<char>
>::overflow(int _Meta=268693911) Line 206 + 0x19 C++
msvcrt.dll!77bffc5d()
libeay32.dll!1003d861()
libeay32.dll!1006a15a()
libeay32.dll!1006a4d6()
libeay32.dll!10068cf8()
CryptoOpenSSLTest5.exe!main(int argc=1, char * * argv=0x003e5a40) Line
82 + 0xf C++
CryptoOpenSSLTest5.exe!mainCRTStartup() Line 398 + 0x11 C
kernel32.dll!7c816d4f()
ntdll.dll!7c925b4f()
kernel32.dll!7c8399f3()
---------- snap ----------
That "CryptoOpenSSLTest5.exe!main [...] Line 82" is the call of
PEM_read_RSAPrivateKey. "<STRANGEBOXHERE>" is that strange box
for undisplayable characters.
Thanks for the help,
Matthias
Kyle Hamilton wrote:
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]
______________________________________________________________________
OpenSSL Project http://www.openssl.org
User Support Mailing List openssl-users@openssl.org
Automated List Manager [EMAIL PROTECTED]