Basically, I'm wondering if interleaved CBC or some other parallelized cipher method is available in OpenSSL.

No.

If its not available I was wondering if there were any specific reasons that made it impossible, or highly difficult, to actually implement.

Well, a library such as OpenSSL is not really a place to implement such things. For several reasons. "Philosophical" such as who is taking care of signals [trouble is that signals can be delivered to any thread and how would library now which handlers to install, it's application business, not library such as OpenSSL] and practical such as performance impact [does one start and terminate thread for every block? what impact on performance does syncronisation have on every platform?]. In other words you should look at OpenSSL as multi-thread safe primitive provider and take care of parallelization in application.

For background - I've found that on the multicore and SMP machines we have OpenSSL encryption usually ends up pegging one core but leaving the rest of the machine idle. I was hoping to improve overall encryption performance by making better use of the CPU resources available to me.

Keep in mind that message authentication is approximately as CPU consuming as encryption. In other words one can as well consider pipe-lining these two operations. I mean having two packets to work on at every time you can calculate MAC for one packet and encrypt previous (or vice versa in decrypt case). A.
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       openssl-dev@openssl.org
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to