1107852Ssam$FreeBSD$
2107852Ssam
3107852SsamThe cryptotest program repeatedly encrypts and decrypts a buffer
4107852Ssamwith the built-in iv and key, using hardware crypto.  At the end,
5107852Ssamit computes the data rate achieved.  Operations are carried out by
6107852Ssammaking ioctl calls to /dev/crypto.
7107852Ssam
8107852SsamFor a test of how fast a crypto card is, use something like:
9107852Ssam
10107852Ssam	cryptotest -z 1024
11107852Ssam
12107852SsamThis will run a series of tests using the available crypto/cipher
13107852Ssamalgorithms over a variety of buffer sizes.  The 1024 says to do
14107852Ssam1024 iterations.  Extra arguments can be used to specify one or
15107852Ssammore buffer sizes to use in doing tests.
16107852Ssam
17107852SsamA sample run is:
18107852Ssam
19107852Ssam 0.129 sec,    2048    des crypts,       8 bytes,   127120 byte/sec,     1.0 Mb/sec
20107852Ssam 0.129 sec,    2048    des crypts,      16 bytes,   253915 byte/sec,     1.9 Mb/sec
21107852Ssam 0.129 sec,    2048    des crypts,      32 bytes,   508942 byte/sec,     3.9 Mb/sec
22107852Ssam 0.128 sec,    2048    des crypts,      64 bytes,  1020135 byte/sec,     7.8 Mb/sec
23107852Ssam 0.134 sec,    2048    des crypts,     128 bytes,  1954869 byte/sec,    14.9 Mb/sec
24107852Ssam 0.142 sec,    2048    des crypts,     256 bytes,  3698107 byte/sec,    28.2 Mb/sec
25107852Ssam 0.190 sec,    2048    des crypts,    1024 bytes, 11037700 byte/sec,    84.2 Mb/sec
26107852Ssam 0.264 sec,    2048    des crypts,    2048 bytes, 15891127 byte/sec,   121.2 Mb/sec
27107852Ssam 0.403 sec,    2048    des crypts,    4096 bytes, 20828998 byte/sec,   158.9 Mb/sec
28107852Ssam 0.687 sec,    2048    des crypts,    8192 bytes, 24426602 byte/sec,   186.4 Mb/sec
29107852Ssam 0.129 sec,    2048   3des crypts,       8 bytes,   127321 byte/sec,     1.0 Mb/sec
30107852Ssam 0.131 sec,    2048   3des crypts,      16 bytes,   249773 byte/sec,     1.9 Mb/sec
31107852Ssam 0.128 sec,    2048   3des crypts,      32 bytes,   512304 byte/sec,     3.9 Mb/sec
32107852Ssam 0.128 sec,    2048   3des crypts,      64 bytes,  1021685 byte/sec,     7.8 Mb/sec
33107852Ssam 0.132 sec,    2048   3des crypts,     128 bytes,  1986511 byte/sec,    15.2 Mb/sec
34107852Ssam 0.142 sec,    2048   3des crypts,     256 bytes,  3695005 byte/sec,    28.2 Mb/sec
35107852Ssam 0.190 sec,    2048   3des crypts,    1024 bytes, 11024876 byte/sec,    84.1 Mb/sec
36107852Ssam 0.264 sec,    2048   3des crypts,    2048 bytes, 15887997 byte/sec,   121.2 Mb/sec
37107852Ssam 0.402 sec,    2048   3des crypts,    4096 bytes, 20850846 byte/sec,   159.1 Mb/sec
38107852Ssam 0.689 sec,    2048   3des crypts,    8192 bytes, 24333532 byte/sec,   185.7 Mb/sec
39107852Ssam
40107852SsamExpect ~400 Mb/s for a Broadcom 582x for 16K buffers on a reasonable
41107852SsamCPU.  Hifn 7811 parts top out at ~120 Mb/s.  Performance depends
42107852Ssamheavily on memory and bus performance.
43107852Ssam
44107852SsamThis code originally came from openbsd; give them all the credit.
45