15df0c0eaSSam Leffler 25df0c0eaSSam LefflerThe cryptotest program repeatedly encrypts and decrypts a buffer 35df0c0eaSSam Lefflerwith the built-in iv and key, using hardware crypto. At the end, 45df0c0eaSSam Lefflerit computes the data rate achieved. Operations are carried out by 55df0c0eaSSam Lefflermaking ioctl calls to /dev/crypto. 65df0c0eaSSam Leffler 75df0c0eaSSam LefflerFor a test of how fast a crypto card is, use something like: 85df0c0eaSSam Leffler 95df0c0eaSSam Leffler cryptotest -z 1024 105df0c0eaSSam Leffler 115df0c0eaSSam LefflerThis will run a series of tests using the available crypto/cipher 125df0c0eaSSam Leffleralgorithms over a variety of buffer sizes. The 1024 says to do 135df0c0eaSSam Leffler1024 iterations. Extra arguments can be used to specify one or 145df0c0eaSSam Lefflermore buffer sizes to use in doing tests. 155df0c0eaSSam Leffler 165df0c0eaSSam LefflerA sample run is: 175df0c0eaSSam Leffler 185df0c0eaSSam Leffler 0.129 sec, 2048 des crypts, 8 bytes, 127120 byte/sec, 1.0 Mb/sec 195df0c0eaSSam Leffler 0.129 sec, 2048 des crypts, 16 bytes, 253915 byte/sec, 1.9 Mb/sec 205df0c0eaSSam Leffler 0.129 sec, 2048 des crypts, 32 bytes, 508942 byte/sec, 3.9 Mb/sec 215df0c0eaSSam Leffler 0.128 sec, 2048 des crypts, 64 bytes, 1020135 byte/sec, 7.8 Mb/sec 225df0c0eaSSam Leffler 0.134 sec, 2048 des crypts, 128 bytes, 1954869 byte/sec, 14.9 Mb/sec 235df0c0eaSSam Leffler 0.142 sec, 2048 des crypts, 256 bytes, 3698107 byte/sec, 28.2 Mb/sec 245df0c0eaSSam Leffler 0.190 sec, 2048 des crypts, 1024 bytes, 11037700 byte/sec, 84.2 Mb/sec 255df0c0eaSSam Leffler 0.264 sec, 2048 des crypts, 2048 bytes, 15891127 byte/sec, 121.2 Mb/sec 265df0c0eaSSam Leffler 0.403 sec, 2048 des crypts, 4096 bytes, 20828998 byte/sec, 158.9 Mb/sec 275df0c0eaSSam Leffler 0.687 sec, 2048 des crypts, 8192 bytes, 24426602 byte/sec, 186.4 Mb/sec 285df0c0eaSSam Leffler 0.129 sec, 2048 3des crypts, 8 bytes, 127321 byte/sec, 1.0 Mb/sec 295df0c0eaSSam Leffler 0.131 sec, 2048 3des crypts, 16 bytes, 249773 byte/sec, 1.9 Mb/sec 305df0c0eaSSam Leffler 0.128 sec, 2048 3des crypts, 32 bytes, 512304 byte/sec, 3.9 Mb/sec 315df0c0eaSSam Leffler 0.128 sec, 2048 3des crypts, 64 bytes, 1021685 byte/sec, 7.8 Mb/sec 325df0c0eaSSam Leffler 0.132 sec, 2048 3des crypts, 128 bytes, 1986511 byte/sec, 15.2 Mb/sec 335df0c0eaSSam Leffler 0.142 sec, 2048 3des crypts, 256 bytes, 3695005 byte/sec, 28.2 Mb/sec 345df0c0eaSSam Leffler 0.190 sec, 2048 3des crypts, 1024 bytes, 11024876 byte/sec, 84.1 Mb/sec 355df0c0eaSSam Leffler 0.264 sec, 2048 3des crypts, 2048 bytes, 15887997 byte/sec, 121.2 Mb/sec 365df0c0eaSSam Leffler 0.402 sec, 2048 3des crypts, 4096 bytes, 20850846 byte/sec, 159.1 Mb/sec 375df0c0eaSSam Leffler 0.689 sec, 2048 3des crypts, 8192 bytes, 24333532 byte/sec, 185.7 Mb/sec 385df0c0eaSSam Leffler 395df0c0eaSSam LefflerExpect ~400 Mb/s for a Broadcom 582x for 16K buffers on a reasonable 405df0c0eaSSam LefflerCPU. Hifn 7811 parts top out at ~120 Mb/s. Performance depends 415df0c0eaSSam Lefflerheavily on memory and bus performance. 425df0c0eaSSam Leffler 435df0c0eaSSam LefflerThis code originally came from openbsd; give them all the credit. 44