thread callback funcs are missing. openssl FAQ says..
Multi-threaded applications must provide two callback functions to OpenSSL by calling CRYPTO_set_locking_callback() and CRYPTO_set_id_callback(), for all versions of OpenSSL up to and including 0.9.8[abc...]. As of version 1.0.0, CRYPTO_set_id_callback() and associated APIs are deprecated by CRYPTO_THREADID_set_callback() and friends. This is described in the threads(3) manpage detailed info can be found in doc/crypto/threads.pod. On Sat, Aug 30, 2014 at 5:30 PM, Ralf <r...@ramses-pyramidenbau.de> wrote: > Hi there, > > I have some problems with concurrent access to a EVP_PKEY*. > > My intention: > My application uses one EVP_PKEY* from several threads at the same time > in order to generate several md-signatures at once. > I had a deeper look into openssl's sources and actually it should be > locked. > > Here's a absolutely minimal reconstruction of my problem: [1] > > You have a 50% chance, that this application will segfault. Additionally > it seems to be a Heisenbug as it does not segfault when being debugged > In my case, I always used ECDSA private keys. > (This application actually makes no sense, but it's the minimal > reconstruction of my problem) > > Why does it segfault? What am I doing wrong? > My quick 'n dirty fix was to serialize access to the EVP_PKEY* but this > makes my application damn slow.... And there's no EVP_PKEY_dup() > function... > > [1] http://pastebin.com/4zPaUEp7 > > Thanks in advance! > Ralf > > ______________________________________________________________________ > OpenSSL Project http://www.openssl.org > User Support Mailing List openssl-users@openssl.org > Automated List Manager majord...@openssl.org >