Skip to content

Instantly share code, notes, and snippets.

@pklaus
Last active August 29, 2015 13:55
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pklaus/8783907 to your computer and use it in GitHub Desktop.
Save pklaus/8783907 to your computer and use it in GitHub Desktop.
Hardware Crypto on GoFlex Home running Arch Linux ARM. Repetition of https://gist.github.com/pklaus/1950517 with OpenSSL 1.0.1f
[root@goflex ~]# openssl speed -evp aes-128-cbc
Doing aes-128-cbc for 3s on 16 size blocks: 57612 aes-128-cbc's in 0.03s
Doing aes-128-cbc for 3s on 64 size blocks: 56430 aes-128-cbc's in 0.04s
Doing aes-128-cbc for 3s on 256 size blocks: 49312 aes-128-cbc's in 0.04s
Doing aes-128-cbc for 3s on 1024 size blocks: 32394 aes-128-cbc's in 0.05s
Doing aes-128-cbc for 3s on 8192 size blocks: 7515 aes-128-cbc's in 0.02s
OpenSSL 1.0.1f 6 Jan 2014
built on: Tue Jan 28 21:30:37 MST 2014
options:bn(64,32) rc4(ptr,char) des(idx,cisc,16,long) aes(partial) idea(int) blowfish(ptr)
compiler: gcc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DHAVE_CRYPTODEV -DUSE_CRYPTODEV_DIGESTS -DHASH_MAX_LEN=64 -Wa,--noexecstack -march=armv5te -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -DTERMIO -O3 -Wall -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DAES_ASM -DGHASH_ASM
The 'numbers' are in 1000s of bytes per second processed.
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes
aes-128-cbc 30726.40k 90288.00k 315596.80k 663429.12k 3078144.00k
[root@goflex ~]# openssl speed -elapsed -evp aes-128-cbc
You have chosen to measure elapsed time instead of user CPU time.
Doing aes-128-cbc for 3s on 16 size blocks: 57631 aes-128-cbc's in 3.00s
Doing aes-128-cbc for 3s on 64 size blocks: 55987 aes-128-cbc's in 3.00s
Doing aes-128-cbc for 3s on 256 size blocks: 49208 aes-128-cbc's in 3.00s
Doing aes-128-cbc for 3s on 1024 size blocks: 32329 aes-128-cbc's in 3.00s
Doing aes-128-cbc for 3s on 8192 size blocks: 7514 aes-128-cbc's in 3.00s
OpenSSL 1.0.1f 6 Jan 2014
built on: Tue Jan 28 21:30:37 MST 2014
options:bn(64,32) rc4(ptr,char) des(idx,cisc,16,long) aes(partial) idea(int) blowfish(ptr)
compiler: gcc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DHAVE_CRYPTODEV -DUSE_CRYPTODEV_DIGESTS -DHASH_MAX_LEN=64 -Wa,--noexecstack -march=armv5te -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -DTERMIO -O3 -Wall -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DAES_ASM -DGHASH_ASM
The 'numbers' are in 1000s of bytes per second processed.
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes
aes-128-cbc 307.37k 1194.39k 4199.08k 11034.97k 20518.23k
[root@goflex ~]# openssl speed -evp aes-256-cbc
Doing aes-256-cbc for 3s on 16 size blocks: 55469 aes-256-cbc's in 0.07s
Doing aes-256-cbc for 3s on 64 size blocks: 56534 aes-256-cbc's in 0.07s
Doing aes-256-cbc for 3s on 256 size blocks: 48528 aes-256-cbc's in 0.03s
Doing aes-256-cbc for 3s on 1024 size blocks: 31665 aes-256-cbc's in 0.06s
Doing aes-256-cbc for 3s on 8192 size blocks: 7102 aes-256-cbc's in 0.04s
OpenSSL 1.0.1f 6 Jan 2014
built on: Tue Jan 28 21:30:37 MST 2014
options:bn(64,32) rc4(ptr,char) des(idx,cisc,16,long) aes(partial) idea(int) blowfish(ptr)
compiler: gcc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DHAVE_CRYPTODEV -DUSE_CRYPTODEV_DIGESTS -DHASH_MAX_LEN=64 -Wa,--noexecstack -march=armv5te -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -DTERMIO -O3 -Wall -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DAES_ASM -DGHASH_ASM
The 'numbers' are in 1000s of bytes per second processed.
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes
aes-256-cbc 12678.63k 51688.23k 414105.60k 540416.00k 1454489.60k
[root@goflex ~]# openssl speed -elapsed -evp aes-256-cbc
You have chosen to measure elapsed time instead of user CPU time.
Doing aes-256-cbc for 3s on 16 size blocks: 57556 aes-256-cbc's in 3.00s
Doing aes-256-cbc for 3s on 64 size blocks: 56200 aes-256-cbc's in 3.00s
Doing aes-256-cbc for 3s on 256 size blocks: 48282 aes-256-cbc's in 3.00s
Doing aes-256-cbc for 3s on 1024 size blocks: 31652 aes-256-cbc's in 3.00s
Doing aes-256-cbc for 3s on 8192 size blocks: 7085 aes-256-cbc's in 3.00s
OpenSSL 1.0.1f 6 Jan 2014
built on: Tue Jan 28 21:30:37 MST 2014
options:bn(64,32) rc4(ptr,char) des(idx,cisc,16,long) aes(partial) idea(int) blowfish(ptr)
compiler: gcc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DHAVE_CRYPTODEV -DUSE_CRYPTODEV_DIGESTS -DHASH_MAX_LEN=64 -Wa,--noexecstack -march=armv5te -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -DTERMIO -O3 -Wall -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DAES_ASM -DGHASH_ASM
The 'numbers' are in 1000s of bytes per second processed.
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes
aes-256-cbc 306.97k 1198.93k 4120.06k 10803.88k 19346.77k
[root@goflex ~]# openssl speed -evp bf-cbc
Doing bf-cbc for 3s on 16 size blocks: 100200 bf-cbc's in 0.17s
Doing bf-cbc for 3s on 64 size blocks: 91251 bf-cbc's in 0.06s
Doing bf-cbc for 3s on 256 size blocks: 68418 bf-cbc's in 0.03s
Doing bf-cbc for 3s on 1024 size blocks: 34139 bf-cbc's in 0.05s
Doing bf-cbc for 3s on 8192 size blocks: 5891 bf-cbc's in 0.00s
OpenSSL 1.0.1f 6 Jan 2014
built on: Tue Jan 28 21:30:37 MST 2014
options:bn(64,32) rc4(ptr,char) des(idx,cisc,16,long) aes(partial) idea(int) blowfish(ptr)
compiler: gcc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DHAVE_CRYPTODEV -DUSE_CRYPTODEV_DIGESTS -DHASH_MAX_LEN=64 -Wa,--noexecstack -march=armv5te -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -DTERMIO -O3 -Wall -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DAES_ASM -DGHASH_ASM
The 'numbers' are in 1000s of bytes per second processed.
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes
bf-cbc 9430.59k 97334.40k 583833.60k 699166.72k infk
[root@goflex ~]# openssl speed -elapsed -evp bf-cbc
You have chosen to measure elapsed time instead of user CPU time.
Doing bf-cbc for 3s on 16 size blocks: 100503 bf-cbc's in 3.00s
Doing bf-cbc for 3s on 64 size blocks: 91420 bf-cbc's in 3.00s
Doing bf-cbc for 3s on 256 size blocks: 68495 bf-cbc's in 3.00s
Doing bf-cbc for 3s on 1024 size blocks: 34217 bf-cbc's in 3.00s
Doing bf-cbc for 3s on 8192 size blocks: 5895 bf-cbc's in 3.00s
OpenSSL 1.0.1f 6 Jan 2014
built on: Tue Jan 28 21:30:37 MST 2014
options:bn(64,32) rc4(ptr,char) des(idx,cisc,16,long) aes(partial) idea(int) blowfish(ptr)
compiler: gcc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DHAVE_CRYPTODEV -DUSE_CRYPTODEV_DIGESTS -DHASH_MAX_LEN=64 -Wa,--noexecstack -march=armv5te -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -DTERMIO -O3 -Wall -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DAES_ASM -DGHASH_ASM
The 'numbers' are in 1000s of bytes per second processed.
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes
bf-cbc 536.02k 1950.29k 5844.91k 11679.40k 16097.28k
[root@goflex ~]# openssl speed -evp md5
Doing md5 for 3s on 16 size blocks: 45342 md5's in 0.72s
Doing md5 for 3s on 64 size blocks: 44667 md5's in 0.78s
Doing md5 for 3s on 256 size blocks: 43183 md5's in 0.62s
Doing md5 for 3s on 1024 size blocks: 38117 md5's in 0.66s
Doing md5 for 3s on 8192 size blocks: 17587 md5's in 0.24s
OpenSSL 1.0.1f 6 Jan 2014
built on: Tue Jan 28 21:30:37 MST 2014
options:bn(64,32) rc4(ptr,char) des(idx,cisc,16,long) aes(partial) idea(int) blowfish(ptr)
compiler: gcc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DHAVE_CRYPTODEV -DUSE_CRYPTODEV_DIGESTS -DHASH_MAX_LEN=64 -Wa,--noexecstack -march=armv5te -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -DTERMIO -O3 -Wall -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DAES_ASM -DGHASH_ASM
The 'numbers' are in 1000s of bytes per second processed.
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes
md5 1007.60k 3664.98k 17830.40k 59139.10k 600302.93k
[root@goflex ~]# openssl speed -elapsed -evp md5
You have chosen to measure elapsed time instead of user CPU time.
Doing md5 for 3s on 16 size blocks: 45226 md5's in 3.00s
Doing md5 for 3s on 64 size blocks: 44622 md5's in 3.00s
Doing md5 for 3s on 256 size blocks: 43140 md5's in 3.00s
Doing md5 for 3s on 1024 size blocks: 38036 md5's in 3.00s
Doing md5 for 3s on 8192 size blocks: 17552 md5's in 3.00s
OpenSSL 1.0.1f 6 Jan 2014
built on: Tue Jan 28 21:30:37 MST 2014
options:bn(64,32) rc4(ptr,char) des(idx,cisc,16,long) aes(partial) idea(int) blowfish(ptr)
compiler: gcc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DHAVE_CRYPTODEV -DUSE_CRYPTODEV_DIGESTS -DHASH_MAX_LEN=64 -Wa,--noexecstack -march=armv5te -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -DTERMIO -O3 -Wall -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DAES_ASM -DGHASH_ASM
The 'numbers' are in 1000s of bytes per second processed.
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes
md5 241.21k 951.94k 3681.28k 12982.95k 47928.66k
[root@PlugApps ~]# cat /proc/crypto
name : hmac(rmd160)
driver : hmac(rmd160-generic)
module : hmac
priority : 0
refcnt : 1
selftest : passed
type : shash
blocksize : 64
digestsize : 20
name : rmd160
driver : rmd160-generic
module : rmd160
priority : 0
refcnt : 1
selftest : passed
type : shash
blocksize : 64
digestsize : 20
name : hmac(sha1)
driver : hmac(sha1-generic)
module : hmac
priority : 0
refcnt : 1
selftest : passed
type : shash
blocksize : 64
digestsize : 20
name : hmac(md5)
driver : hmac(md5-generic)
module : hmac
priority : 0
refcnt : 1
selftest : passed
type : shash
blocksize : 64
digestsize : 16
name : cbc(blowfish)
driver : cbc(blowfish-generic)
module : kernel
priority : 100
refcnt : 1
selftest : passed
type : givcipher
async : no
blocksize : 8
min keysize : 4
max keysize : 56
ivsize : 8
geniv : eseqiv
name : cbc(blowfish)
driver : cbc(blowfish-generic)
module : kernel
priority : 100
refcnt : 1
selftest : passed
type : blkcipher
blocksize : 8
min keysize : 4
max keysize : 56
ivsize : 8
geniv : <default>
name : blowfish
driver : blowfish-generic
module : blowfish_generic
priority : 100
refcnt : 1
selftest : passed
type : cipher
blocksize : 8
min keysize : 4
max keysize : 56
name : cbc(aes)
driver : mv-cbc-aes
module : kernel
priority : 300
refcnt : 7
selftest : passed
type : givcipher
async : yes
blocksize : 16
min keysize : 16
max keysize : 32
ivsize : 16
geniv : eseqiv
name : cbc(des3_ede)
driver : cbc(des3_ede-generic)
module : kernel
priority : 0
refcnt : 1
selftest : passed
type : givcipher
async : no
blocksize : 8
min keysize : 24
max keysize : 24
ivsize : 8
geniv : eseqiv
name : cbc(des3_ede)
driver : cbc(des3_ede-generic)
module : kernel
priority : 0
refcnt : 1
selftest : passed
type : blkcipher
blocksize : 8
min keysize : 24
max keysize : 24
ivsize : 8
geniv : <default>
name : cbc(des)
driver : cbc(des-generic)
module : kernel
priority : 0
refcnt : 1
selftest : passed
type : givcipher
async : no
blocksize : 8
min keysize : 8
max keysize : 8
ivsize : 8
geniv : eseqiv
name : cbc(des)
driver : cbc(des-generic)
module : kernel
priority : 0
refcnt : 1
selftest : passed
type : blkcipher
blocksize : 8
min keysize : 8
max keysize : 8
ivsize : 8
geniv : <default>
name : hmac(sha1)
driver : mv-hmac-sha1
module : mv_cesa
priority : 300
refcnt : 1
selftest : passed
type : ahash
async : yes
blocksize : 64
digestsize : 20
name : sha1
driver : mv-sha1
module : mv_cesa
priority : 300
refcnt : 1
selftest : passed
type : ahash
async : yes
blocksize : 64
digestsize : 20
name : cbc(aes)
driver : mv-cbc-aes
module : mv_cesa
priority : 300
refcnt : 7
selftest : passed
type : ablkcipher
async : yes
blocksize : 16
min keysize : 16
max keysize : 32
ivsize : 16
geniv : <default>
name : ecb(aes)
driver : mv-ecb-aes
module : mv_cesa
priority : 300
refcnt : 1
selftest : passed
type : ablkcipher
async : yes
blocksize : 16
min keysize : 16
max keysize : 32
ivsize : 0
geniv : <default>
name : stdrng
driver : krng
module : kernel
priority : 200
refcnt : 2
selftest : passed
type : rng
seedsize : 0
name : lzo
driver : lzo-generic
module : kernel
priority : 0
refcnt : 2
selftest : passed
type : compression
name : crc32c
driver : crc32c-generic
module : kernel
priority : 100
refcnt : 2
selftest : passed
type : shash
blocksize : 1
digestsize : 4
name : deflate
driver : deflate-generic
module : kernel
priority : 0
refcnt : 2
selftest : passed
type : compression
name : ecb(arc4)
driver : ecb(arc4)-generic
module : kernel
priority : 100
refcnt : 1
selftest : passed
type : blkcipher
blocksize : 1
min keysize : 1
max keysize : 256
ivsize : 0
geniv : <default>
name : arc4
driver : arc4-generic
module : kernel
priority : 0
refcnt : 1
selftest : passed
type : cipher
blocksize : 1
min keysize : 1
max keysize : 256
name : aes
driver : aes-generic
module : kernel
priority : 100
refcnt : 1
selftest : passed
type : cipher
blocksize : 16
min keysize : 16
max keysize : 32
name : des3_ede
driver : des3_ede-generic
module : kernel
priority : 0
refcnt : 1
selftest : passed
type : cipher
blocksize : 8
min keysize : 24
max keysize : 24
name : des
driver : des-generic
module : kernel
priority : 0
refcnt : 1
selftest : passed
type : cipher
blocksize : 8
min keysize : 8
max keysize : 8
name : sha1
driver : sha1-generic
module : kernel
priority : 0
refcnt : 1
selftest : passed
type : shash
blocksize : 64
digestsize : 20
name : md5
driver : md5-generic
module : kernel
priority : 0
refcnt : 25
selftest : passed
type : shash
blocksize : 64
digestsize : 16
name : aes
driver : aes-asm
module : kernel
priority : 200
refcnt : 1
selftest : passed
type : cipher
blocksize : 16
min keysize : 16
max keysize : 32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment