There is more code committed. Check-out or wait for *tomorrow*
openssl-SNAP-20120919 snapshot. There is SmartMIPS AES code (pass
-msmartmips to Configure) and Configure accepts double dash as compiler
options. Please double-check and optionally post performance for new AES
code.

I've done some speed tests incase anyone is interested. linux-generic32,
then with 2 levels of asm optimizations, mips32r2 and finally smartmips.

Nice performance boost for smartmips AES.

./openssl-generic32 speed aes-128-cbc aes-256-cbc sha rsa1024 rsa2048
OpenSSL 1.1.0-dev xx XXX xxxx
built on: Tue Sep 18 10:23:22 EDT 2012
options:bn(64,32) rc4(ptr,char) des(idx,cisc,16,long) aes(partial) idea(int) 
blowfish(ptr)
compiler: mipsel-linux-gcc -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN 
-DHAVE_DLFCN_H --sysroot=/opt/uclibc -D_FILE_OFFSET_BITS=32 -march=4ksd 
-DTERMIO -O3 -fomit-frame-pointer -Wall
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes
sha1               201.48k      670.38k     1792.85k     3054.31k     3559.85k
aes-128 cbc       1188.95k     1256.10k     1274.56k     1273.03k     1170.29k
aes-256 cbc        903.22k      947.09k      953.32k      949.16k      889.96k
sha256             151.84k      488.38k      987.51k     1329.50k     1428.14k
sha512            3938.87        15.79k       21.60k       29.06k       32.34k
                  sign    verify    sign/s verify/s
rsa 1024 bits 0.342000s 0.010615s      2.9     94.2
rsa 2048 bits 1.328750s 0.027632s      0.8     36.2


./openssl-mips32r2 speed aes-128-cbc aes-256-cbc sha rsa1024 rsa2048
OpenSSL 1.1.0-dev xx XXX xxxx
built on: Tue Sep 18 10:25:23 EDT 2012
options:bn(64,32) rc4(ptr,char) des(idx,cisc,16,long) aes(partial) idea(int) 
blowfish(ptr)
compiler: mipsel-linux-gcc -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN 
-DHAVE_DLFCN_H --sysroot=/opt/uclibc -D_FILE_OFFSET_BITS=32 -mips32r2 -mabi=32 
-DTERMIO -O3 -Wall -DOPENSSL_BN_ASM_MONT -DSHA1_ASM -DSHA256_ASM -DAES_ASM
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes
sha1               302.52k      980.49k     2510.76k     4113.38k     4575.10k
aes-128 cbc       1342.30k     1438.87k     1465.41k     1471.02k     1339.02k
aes-256 cbc       1005.29k     1057.55k     1072.65k     1073.67k      996.10k
sha256             248.80k      693.67k     1449.93k     1986.76k     2136.45k
sha512            3952.00        15.81k       21.52k       29.06k       32.23k
                  sign    verify    sign/s verify/s
rsa 1024 bits 0.128228s 0.008619s      7.8    116.0
rsa 2048 bits 1.055000s 0.023870s      0.9     41.9


./openssl-smartmips speed aes-128-cbc aes-256-cbc sha rsa1024 rsa2048
OpenSSL 1.1.0-dev xx XXX xxxx
built on: Tue Sep 18 10:27:09 EDT 2012
options:bn(64,32) rc4(ptr,char) des(idx,cisc,16,long) aes(partial) idea(int) 
blowfish(ptr)
compiler: mipsel-linux-gcc -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN 
-DHAVE_DLFCN_H --sysroot=/opt/uclibc -D_FILE_OFFSET_BITS=32 -march=4ksd 
-msmartmips -mabi=32 -DTERMIO -O3 -Wall -DOPENSSL_BN_ASM_MONT -DSHA1_ASM 
-DSHA256_ASM -DAES_ASM
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes
sha1               250.35k     1037.93k     2636.80k     4267.35k     4713.80k
aes-128 cbc       1686.07k     1835.78k     1881.77k     1880.28k     1701.00k
aes-256 cbc       1289.04k     1373.28k     1397.96k     1397.88k     1295.48k
sha256             187.98k      624.13k     1368.54k     1951.04k     2135.38k
sha512            3954.52        15.76k       21.67k       29.16k       32.34k
                  sign    verify    sign/s verify/s
rsa 1024 bits 0.128846s 0.008381s      7.8    119.3
rsa 2048 bits 1.033000s 0.023841s      1.0     41.9


Here was my build procedure for those that are interested:

export PATH=$PATH:/opt/uclibc/usr/bin
export CROSS_COMPILE=mipsel-linux-
./Configure linux-generic32 --sysroot=/opt/uclibc -D_FILE_OFFSET_BITS=32 -march=4ksd 
&& \
make && \
mv apps/openssl apps/openssl-generic32 && \
make clean && \
./Configure linux-mips32 --sysroot=/opt/uclibc -D_FILE_OFFSET_BITS=32 -mips32r2 
&& \
make && \
mv apps/openssl apps/openssl-mips32r2 && \
make clean && \
./Configure linux-mips32 --sysroot=/opt/uclibc -D_FILE_OFFSET_BITS=32 -march=4ksd 
-msmartmips && \
make && \
mv apps/openssl apps/openssl-smartmips


-Brad


______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       openssl-dev@openssl.org
Automated List Manager                           majord...@openssl.org

Reply via email to