I am taking my first steps in the OpenSSL library and feel a little lost. My machine is multithreaded (Xeon series, can share more if someone needs information) with Linux.
The application build is an SSL proxy, so I need to process several TCP streams as quickly as possible, that is, I want to run lib as blockable as possible.
Having looked a bit inside crypto/crypto.hmainly in this section:
CRYPTO_lock(CRYPTO_LOCK|CRYPTO_WRITE,type,__FILE__,__LINE__)
CRYPTO_lock(CRYPTO_UNLOCK|CRYPTO_WRITE,type,__FILE__,__LINE__)
CRYPTO_lock(CRYPTO_LOCK|CRYPTO_READ,type,__FILE__,__LINE__)
CRYPTO_lock(CRYPTO_UNLOCK|CRYPTO_READ,type,__FILE__,__LINE__)
CRYPTO_add_lock(addr,amount,type,__FILE__,__LINE__)
I tried digging in code / API and got a little lost. My questions:
- What is OpenSSL lib support for multi-core / streaming applications?
- What parts of lib can have only one instance (singleton)?
source
share