On Wed, Sep 09, 2009, deiva shanmugam wrote:

> Hi,
> 
> We are planning to make use of openssl crypto library in multithreaded
> environment.
> 
> We call OpenSSL_add_all_algorithms() before creating threads and will create
> BIO, EVP_KEY, SHA256 , SHA1 and RSA object in each thread and makes use of
> the following functions:
> 
> SHA1_Init                 BIO_new_mem_buf        EVP_PKEY_get1
> RSA_size
> SHA1_Final             BIO_free                             EVP_PKEY_free
>      RSA_PKCS1_PADDING
> SHA1_Update         BIO_write                           EVP_cleanup
>       RSA_free
> SHA256_Init            BIO_flush
>                                           RSA_verify
> SHA256_Final        BIO_new
> SHA256_Update    BIO_s_mem
> 
> We found in the openssl website that  "OpenSSL can safely be used in
> multi-threaded applications provided that at least two callback functions
> are set, locking_function and threadid_func." And from FAQ, its stated that
> "Openssl is thread safe with limitations [ SSL connections may not be used
> concurrently in many threads]" .
> 
> So, can someone let us know that the functions mentioned above are MT safe
> without implementing the two callback functions.
> 

Use of SHA* functions directly is not recommended, you should use EVP instead.

You need the callbacks for almost any usage because the locks are used to
maintain the error queue which is used by just about every subsection of
OpenSSL. 

Steve.
--
Dr Stephen N. Henson. OpenSSL project core developer.
Commercial tech support now available see: http://www.openssl.org
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    openssl-users@openssl.org
Automated List Manager                           majord...@openssl.org

Reply via email to