Hi there,
On Fri, 3 Nov 2000, Dirk Vleugels wrote:
> i have a Netra-T1 running Solaris-2.8. A CryptoSwift-PCI card is
> installed and functional:
OK.
> I tested both openssl-0.96 and openssl-SNAP-20001102. All tests with
> hw support were started like this:
>
> OpenSSL> speed -engine cswift
> engine "cswift" set.
Cool. BTW: A lot of the statistical output you reproduced is completely
irrelevant as far as the "cswift" functionality is concerned. The only
cryptographic work being handled by cryptoswift code are RSA, DSA, DH, and
I think RAND functions. So all the cipher and hash output you sent should
be indistinguishable from if you had not specified the cswift engine at
all.
That aside - the "error" you are seeing in the speed test is almost
certainly due to timing signals. "speed" uses a timer to try and get a
good statistical read, but it seems Solairs (on sparc at least) is
particularly prone to interrupting the underlying ioctl() calls when this
signal arrives. I'm no kernel-guru, but I would guess that probably most
other kernels out there do not interrupt an ioctl() operation by a
user-generated signal from its own process. Perhaps that's way-off but
it's the only rational explanation I can give for why this doesn't happen
on the other OSes for which this support code has been tested. Rainbow are
aware of the problem - and all that's really needed is a way within their
library, driver, or API to distinguish between a genuine failure result
and a "EINTR" type equivalent - in the latter case, the cswift engine
could be tweaked to retry the operation or at least bail out with a more
meaningful error (which in turn could be spotted by speed which is
responsible for this bizarre circumstance) :-)
Anyways - it should simply be happening in speed because speed is the only
one that causes these signals to arrive. I believe you will find that if
you're running other engine-enabled openssl utilities (s_client and
s_server being two primary examples) it should be functioning fine.
Benchmarking - well without hacking either the cswift support code or
speed itself, you're probably not going to have much luck with speed. But
if you are able to run your application (or anything else that uses the
engine) and test it by regular means, you should be alright - just try to
avoid sending yourself signals in the middle of crypto operations for now
:-)
Cheers,
Geoff
______________________________________________________________________
OpenSSL Project http://www.openssl.org
Development Mailing List [EMAIL PROTECTED]
Automated List Manager [EMAIL PROTECTED]