wolfCrypt Benchmark Demo Application
November 11, 2022 ยท View on GitHub
This demo application runs the wolfCrypt benchmark app. It benchmarks all algorithms enabled in wolfCrypt. It has been tested using a Raspberry Pi and SE050 EdgeLock development kit.
Building the Demo
Before building this demo, follow initial setup instructions in the parent README.md.
IMPORTANT: This example requires the benchmark.c and benchmark.h files from a wolfSSL source package be copied into this directory before compiling and running the example. There are stub files included in this example directory that should be overwritten:
$ cp wolfssl-X.X.X/wolfcrypt/benchmark/benchmark.c ./
$ cp wolfssl-X.X.X/wolfcrypt/benchmark/benchmark.h ./
Once this example directory has been copied into the SE05x middleware directory tree in the correct location, compiling the middleware will also compile this demo application:
$ cd /home/pi/se_mw/simw-top_build/raspbian_native_se050_t1oi2c
$ cmake --build .
Running the Demo
To run the demo:
$ cd /home/pi/se_mw/simw-top_build/raspbian_native_se050_t1oi2c/bin
$ ./wolfcrypt_benchmark
On successful run, output similar to the following will print out:
App :INFO :PlugAndTrust_v04.02.00_20220524
App :INFO :Running ./wolfcrypt_benchmark
App :INFO :If you want to over-ride the selection, use ENV=EX_SSS_BOOT_SSS_PORT or pass in command line arguments.
sss :INFO :atr (Len=35)
00 A0 00 00 03 96 04 03 E8 00 FE 02 0B 03 E8 08
01 00 00 00 00 64 00 00 0A 4A 43 4F 50 34 20 41
54 50 4F
sss :WARN :Communication channel is Plain.
sss :WARN :!!!Not recommended for production use.!!!
App :INFO :running setconfig
App :INFO :Ran setconfig successfully
wolfCrypt Benchmark (block bytes 1024, min 1.0 sec each)
RNG 12 MiB took 1.001 seconds, 11.928 MiB/s
AES-128-CBC-enc 20 MiB took 1.000 seconds, 19.724 MiB/s
AES-128-CBC-dec 19 MiB took 1.001 seconds, 19.438 MiB/s
AES-192-CBC-enc 17 MiB took 1.001 seconds, 16.982 MiB/s
AES-192-CBC-dec 17 MiB took 1.001 seconds, 16.612 MiB/s
AES-256-CBC-enc 15 MiB took 1.001 seconds, 14.755 MiB/s
AES-256-CBC-dec 15 MiB took 1.001 seconds, 14.580 MiB/s
AES-128-GCM-enc 10 MiB took 1.002 seconds, 9.967 MiB/s
AES-128-GCM-dec 10 MiB took 1.002 seconds, 9.965 MiB/s
AES-192-GCM-enc 9 MiB took 1.002 seconds, 9.208 MiB/s
AES-192-GCM-dec 9 MiB took 1.000 seconds, 9.202 MiB/s
AES-256-GCM-enc 8 MiB took 1.001 seconds, 8.492 MiB/s
AES-256-GCM-dec 8 MiB took 1.000 seconds, 8.495 MiB/s
AES-128-GCM-enc-no_AAD 10 MiB took 1.001 seconds, 9.975 MiB/s
AES-128-GCM-dec-no_AAD 10 MiB took 1.002 seconds, 10.035 MiB/s
AES-192-GCM-enc-no_AAD 9 MiB took 1.001 seconds, 9.269 MiB/s
AES-192-GCM-dec-no_AAD 9 MiB took 1.002 seconds, 9.262 MiB/s
AES-256-GCM-enc-no_AAD 9 MiB took 1.002 seconds, 8.554 MiB/s
AES-256-GCM-dec-no_AAD 9 MiB took 1.003 seconds, 8.545 MiB/s
GMAC Table 4-bit 22 MiB took 1.000 seconds, 21.581 MiB/s
AES-128-ECB-enc 15 MiB took 1.000 seconds, 14.996 MiB/s
AES-128-ECB-dec 15 MiB took 1.000 seconds, 14.983 MiB/s
AES-192-ECB-enc 13 MiB took 1.000 seconds, 13.356 MiB/s
AES-192-ECB-dec 13 MiB took 1.000 seconds, 13.240 MiB/s
AES-256-ECB-enc 12 MiB took 1.000 seconds, 11.929 MiB/s
AES-256-ECB-dec 12 MiB took 1.000 seconds, 11.921 MiB/s
CHACHA 38 MiB took 1.000 seconds, 37.518 MiB/s
CHA-POLY 26 MiB took 1.000 seconds, 26.211 MiB/s
MD5 129 MiB took 1.000 seconds, 129.068 MiB/s
POLY1305 118 MiB took 1.000 seconds, 118.446 MiB/s
SHA 66 MiB took 1.000 seconds, 66.223 MiB/s
SHA-256 31 MiB took 1.001 seconds, 31.328 MiB/s
SHA-384 16 MiB took 1.000 seconds, 15.918 MiB/s
SHA-512 16 MiB took 1.000 seconds, 15.914 MiB/s
HMAC-MD5 127 MiB took 1.000 seconds, 126.965 MiB/s
HMAC-SHA 65 MiB took 1.000 seconds, 65.453 MiB/s
HMAC-SHA256 31 MiB took 1.001 seconds, 30.983 MiB/s
HMAC-SHA384 16 MiB took 1.000 seconds, 15.551 MiB/s
HMAC-SHA512 16 MiB took 1.001 seconds, 15.653 MiB/s
PBKDF2 4 KiB took 1.002 seconds, 3.618 KiB/s
sss :WARN :nxEnsure:'ret == SM_OK' failed. At Line:6971 Function:sss_se05x_TXn
sss :WARN :Could not delete Key id FFFF
sss :WARN :nxEnsure:'ret == SM_OK' failed. At Line:6971 Function:sss_se05x_TXn
sss :WARN :Could not delete Key id 10000
RSA 1024 key gen 2 ops took 1.377 sec, avg 688.364 ms, 1.453 ops/sec
sss :WARN :nxEnsure:'ret == SM_OK' failed. At Line:6971 Function:sss_se05x_TXn
sss :WARN :Could not delete Key id 10001
RSA 2048 key gen 1 ops took 7.441 sec, avg 7440.538 ms, 0.134 ops/sec
sss :WARN :nxEnsure:'ret == SM_OK' failed. At Line:6971 Function:sss_se05x_TXn
sss :WARN :Could not delete Key id 10002
RSA 2048 public 10 ops took 1.133 sec, avg 113.271 ms, 8.828 ops/sec
RSA 2048 private 6 ops took 1.278 sec, avg 212.942 ms, 4.696 ops/sec
DH 2048 key gen 46 ops took 1.002 sec, avg 21.780 ms, 45.915 ops/sec
DH 2048 agree 22 ops took 1.027 sec, avg 46.693 ms, 21.416 ops/sec
sss :WARN :nxEnsure:'ret == SM_OK' failed. At Line:6971 Function:sss_se05x_TXn
sss :WARN :Could not delete Key id 10003
sss :WARN :nxEnsure:'ret == SM_OK' failed. At Line:6971 Function:sss_se05x_TXn
sss :WARN :Could not delete Key id 10004
sss :WARN :nxEnsure:'ret == SM_OK' failed. At Line:6971 Function:sss_se05x_TXn
sss :WARN :Could not delete Key id 10005
sss :WARN :nxEnsure:'ret == SM_OK' failed. At Line:6971 Function:sss_se05x_TXn
sss :WARN :Could not delete Key id 10006
ECC [ SECP256R1] 256 key gen 4 ops took 1.149 sec, avg 287.259 ms, 3.481 ops/sec
sss :WARN :nxEnsure:'ret == SM_OK' failed. At Line:6971 Function:sss_se05x_TXn
sss :WARN :Could not delete Key id 10007
sss :WARN :nxEnsure:'ret == SM_OK' failed. At Line:6971 Function:sss_se05x_TXn
sss :WARN :Could not delete Key id 10008
sss :WARN :nxEnsure:'ret == SM_OK' failed. At Line:6971 Function:sss_se05x_TXn
sss :WARN :Could not delete Key id 10009
sss :WARN :nxEnsure:'ret == SM_OK' failed. At Line:6971 Function:sss_se05x_TXn
sss :WARN :Could not delete Key id 1000A
sss :WARN :nxEnsure:'ret == SM_OK' failed. At Line:6971 Function:sss_se05x_TXn
sss :WARN :Could not delete Key id 1000B
sss :WARN :nxEnsure:'ret == SM_OK' failed. At Line:6971 Function:sss_se05x_TXn
sss :WARN :Could not delete Key id 1000C
ECDHE [ SECP256R1] 256 agree 4 ops took 1.710 sec, avg 427.612 ms, 2.339 ops/sec
ECDSA [ SECP256R1] 256 sign 10 ops took 1.010 sec, avg 100.953 ms, 9.906 ops/sec
ECDSA [ SECP256R1] 256 verify 10 ops took 1.010 sec, avg 100.998 ms, 9.901 ops/sec
Benchmark complete
Demo Notes
The benchmark.c and benchmark.h file in this directory have been copied
directly from the wolfSSL download directory, at:
wolfssl-X.X.X/wolfcrypt/benchmark/benchmark.c
wolfssl-X.X.X/wolfcrypt/benchmark/benchmark.h