This is the first phase of changes to support the new cryptographic
opcodes found starting in the SPARC-T4 processor.

It first builds the infrastructure for feature presence detection,
then adds support for all of the hashing functions implemented in
current cpus (MD5, SHA1, SHA256, SHA512).

Here are some benchmarks on a SPARC T4-2 with these changes applied.

type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes
md5              14423.71k    50416.70k   173663.49k   445940.05k   816587.27k
sha1             33231.78k   115492.48k   318273.91k   579320.83k   759701.50k
sha256           46641.41k   157805.85k   419859.54k   708643.16k   889514.67k
sha512           50184.57k   202770.99k   529172.57k  1023763.11k  1405414.06k

These numbers, with crypto-opcode-disabled numbers for comparison,
are duplicated in the relevant patch log messages.

I have cipher patches for AES, DES, and CAMELLIA as well but I would
like to refine them a bit before I make a formal submission.  And once
I get those changes refined I will work on mongomery multiply,
montgomery square-root, etc. which these chips also support directly.

I've tested these changes on all of {static,shared}/linux{,64}-sparcv9

Oracle provided me with programmer's manuals that document these
instructions, and I've been promised that these would be made public
at some point in the not too distant future.  But these instructions
are very straightforward, and when I post the AES changes later on
you will see that the AES instructions are virtually identical to
the AESNI stuff from Intel.

All of the patches are against mainline, but should be backportable
to 1.0.x without much difficulty.
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [email protected]
Automated List Manager                           [email protected]

Reply via email to