On Wed, Jan 30, 2008 at 09:32:34PM +0200, Paul Sheer wrote:
> Hi,
> 
> I have a BMC5825 card from Silicom that is supposed to do over
> 10'000 rsa per second.

Never going to happen.  The context switches to talk to the
accellerator are too expensive, and OpenSSL doesn't support (nor
have any way to support) modern accellerators' SSL-handshake nor
SSL-record operations.

2000/sec is a good place to be, on a client.  Expect less on a
server, unfortunately.

> I replaced OPENSSL_cleanse() {...} with { memset(); } already
> - IT WAS THE TOP FUNCTION IN MY FIRST GPROF RUN!!!!!

Yes.  This is the OPENSSL_cleanse() of a maximum-sized SSL record,
right at the outset of any session.  It is amazingly expensive, but
I have had trouble ascertaining whether it can be safely arranged
for it to zero less data.

If any of the OpenSSL developers are listening, I would really love
some feedback on this.

> The card supports hardware SHA1 and MD5 - but it's not used
> because OpenSSL divides each md operation into an init(),
> update() and final() stage. But the card wants a one shot.
> So the crypto card API does not fit the software API

Which version of OpenSSL are you using?  It appears that in -current
an engine can provide an HMAC method, and the Broadcom hardware does
directly support HMAC.  The old way, where engines saw only raw hash
operations (MD5 or SHA) even though SSLv3 or TLS was doing HMAC, was
completely insane.

I wish there were a way for an engine to provide an SSL-record-encryption
or -decryption method.  Most modern accellerators do those, too.

Thor
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       openssl-dev@openssl.org
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to