wolfssl/IDE/PlatformIO/examples/wolfssl_benchmark/README.md

215 lines
14 KiB
Markdown

# wolfSSL Benchmark Example
This ESP32 example uses the [wolfSSL wolfcrypt Benchmark Application](https://github.com/wolfSSL/wolfssl/tree/master/wolfcrypt/benchmark).
Other target boards _should_ work, but have not yet been tested.
For general information on [wolfSSL examples for Espressif](../README.md), see the
[README](https://github.com/wolfSSL/wolfssl/blob/master/IDE/Espressif/ESP-IDF/README.md) file.
## Example Output
Note the default wolfSSL `user_settings.h` is configured by default to be the most
compatible across the widest ranges of targets. Contact wolfSSL at support@wolfssl.com
for help in optimizing for your particular application, or see the
[docs](https://www.wolfssl.com/documentation/manuals/wolfssl/index.html).
```
ets Jun 8 2016 00:22:57
rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0030,len:7168
load:0x40078000,len:15612
load:0x40080400,len:4
load:0x40080404,len:3736
entry 0x40080624
I (28) boot: ESP-IDF 5.2.1 2nd stage bootloader
I (29) boot: compile time May 17 2024 19:42:46
W (29) boot: Unicore bootloader
I (32) boot: chip revision: v1.0
I (36) boot.esp32: SPI Speed : 40MHz
I (41) boot.esp32: SPI Mode : DIO
I (45) boot.esp32: SPI Flash Size : 4MB
I (50) boot: Enabling RNG early entropy source...
I (55) boot: Partition Table:
I (59) boot: ## Label Usage Type ST Offset Length
I (66) boot: 0 nvs WiFi data 01 02 00009000 00006000
I (74) boot: 1 phy_init RF data 01 01 0000f000 00001000
I (81) boot: 2 factory factory app 00 00 00010000 00100000
I (89) boot: End of partition table
I (93) esp_image: segment 0: paddr=00010020 vaddr=3f400020 size=1900ch (102412) map
I (138) esp_image: segment 1: paddr=00029034 vaddr=3ffb0000 size=01794h ( 6036) load
I (141) esp_image: segment 2: paddr=0002a7d0 vaddr=40080000 size=05848h ( 22600) load
I (154) esp_image: segment 3: paddr=00030020 vaddr=400d0020 size=4bc50h (310352) map
I (266) esp_image: segment 4: paddr=0007bc78 vaddr=40085848 size=05b64h ( 23396) load
I (276) esp_image: segment 5: paddr=000817e4 vaddr=50000000 size=00004h ( 4) load
I (282) boot: Loaded app from partition at offset 0x10000
I (282) boot: Disabling RNG early entropy source...
I (297) cpu_start: Unicore app
I (297) cpu_start: Single core mode
I (305) cpu_start: Pro cpu start user code
I (305) cpu_start: cpu freq: 240000000 Hz
I (305) cpu_start: Application information:
I (310) cpu_start: Project name: ESP_IDF_Hello_World
I (316) cpu_start: App version: v5.7.0-stable-512-g15af87af8-di
I (323) cpu_start: Compile time: May 17 2024 19:42:07
I (329) cpu_start: ELF file SHA256: eebe816ce...
I (334) cpu_start: ESP-IDF: 5.2.1
I (339) cpu_start: Min chip rev: v0.0
I (344) cpu_start: Max chip rev: v3.99
I (349) cpu_start: Chip rev: v1.0
I (354) heap_init: Initializing. RAM available for dynamic allocation:
I (361) heap_init: At 3FFAE6E0 len 00001920 (6 KiB): DRAM
I (367) heap_init: At 3FFB2018 len 0002DFE8 (183 KiB): DRAM
I (373) heap_init: At 3FFE0440 len 0001FBC0 (126 KiB): D/IRAM
I (379) heap_init: At 40078000 len 00008000 (32 KiB): IRAM
I (386) heap_init: At 4008B3AC len 00014C54 (83 KiB): IRAM
I (392) heap_init: At 3FF80000 len 00002000 (8 KiB): RTCRAM
I (399) spi_flash: detected chip: generic
I (403) spi_flash: flash io: dio
I (407) main_task: Started on CPU0
I (410) main_task: Calling app_main()
I (415) wolfSSL demo: Found WOLFSSL_ESPIDF!
Hello World wolfSSL Version 5.7.0
I (423) esp32_util: Extended Version and Platform Information.
I (429) esp32_util: Chip revision: v1.0
I (434) esp32_util: SSID and plain text WiFi password not displayed in startup logs.
I (442) esp32_util: Define SHOW_SSID_AND_PASSWORD to enable display.
W (449) esp32_util: Warning: old cmake, user_settings.h location unknown.
I (457) esp32_util: LIBWOLFSSL_VERSION_STRING = 5.7.0
I (463) esp32_util: LIBWOLFSSL_VERSION_HEX = 5007000
I (468) esp32_util: Stack HWM: 9204
I (472) esp32_util:
I (475) esp32_util: Macro Name Defined Not Defined
I (482) esp32_util: ------------------------- --------- -------------
I (489) esp32_util: NO_ESPIDF_DEFAULT........ X
I (496) esp32_util: HW_MATH_ENABLED.......... X
I (502) esp32_util: WOLFSSL_SHA224........... X
I (507) esp32_util: WOLFSSL_SHA384........... X
I (513) esp32_util: WOLFSSL_SHA512........... X
I (518) esp32_util: WOLFSSL_SHA3............. X
I (524) esp32_util: HAVE_ED25519............. X
I (529) esp32_util: HAVE_AES_ECB............. X
I (536) esp32_util: HAVE_AES_DIRECT.......... X
I (543) esp32_util: USE_FAST_MATH............ X
I (548) esp32_util: WOLFSSL_SP_MATH_ALL...... X
I (555) esp32_util: SP_MATH.................. X
I (561) esp32_util: WOLFSSL_HW_METRICS....... X
I (567) esp32_util: RSA_LOW_MEM.............. X
I (572) esp32_util: SMALL_SESSION_CACHE...... X
I (579) esp32_util: WC_NO_HARDEN............. X
I (586) esp32_util: TFM_TIMING_RESISTANT..... X
I (591) esp32_util: ECC_TIMING_RESISTANT..... X
I (597) esp32_util: WC_NO_CACHE_RESISTANT.... X
I (602) esp32_util: WC_AES_BITSLICED......... X
I (609) esp32_util: WOLFSSL_AES_NO_UNROLL.... X
I (615) esp32_util: TFM_TIMING_RESISTANT..... X
I (621) esp32_util: ECC_TIMING_RESISTANT..... X
I (627) esp32_util: WC_RSA_BLINDING.......... X
I (632) esp32_util: NO_WRITEV................ X
I (638) esp32_util: FREERTOS................. X
I (643) esp32_util: NO_WOLFSSL_DIR........... X
I (649) esp32_util: WOLFSSL_NO_CURRDIR....... X
I (654) esp32_util: WOLFSSL_LWIP............. X
I (660) esp32_util:
I (663) esp32_util: Compiler Optimization: Default
I (668) esp32_util:
I (671) esp32_util: CONFIG_IDF_TARGET = esp32
W (676) esp32_util: Watchdog active; missing WOLFSSL_ESP_NO_WATCHDOG definition.
I (684) esp32_util: CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ: 240 MHz
I (691) esp32_util: Xthal_have_ccount: 1
I (695) esp32_util: CONFIG_MAIN_TASK_STACK_SIZE: 10500
I (701) esp32_util: CONFIG_ESP_MAIN_TASK_STACK_SIZE: 10500
I (707) esp32_util: CONFIG_TIMER_TASK_STACK_SIZE: 3584
I (713) esp32_util: CONFIG_TIMER_TASK_STACK_DEPTH: 2048
I (719) esp32_util: Stack HWM: 3ffb4ebf
I (724) esp32_util: ESP32_CRYPT is enabled for ESP32.
I (729) esp32_util: SINGLE_THREADED
I (733) esp32_util: Boot count: 1
wolfCrypt Benchmark (block bytes 1024, min 1.0 sec each)
RNG 1625 KiB took 1.016 seconds, 1599.409 KiB/s Cycles per byte = 251.56
AES-128-CBC-enc 7600 KiB took 1.003 seconds, 7577.268 KiB/s Cycles per byte = 30.93
AES-128-CBC-dec 7350 KiB took 1.001 seconds, 7342.657 KiB/s Cycles per byte = 31.94
AES-192-CBC-enc 7575 KiB took 1.001 seconds, 7567.433 KiB/s Cycles per byte = 30.97
AES-192-CBC-dec 7325 KiB took 1.000 seconds, 7325.000 KiB/s Cycles per byte = 31.98
AES-256-CBC-enc 7375 KiB took 1.000 seconds, 7375.000 KiB/s Cycles per byte = 31.77
AES-256-CBC-dec 7325 KiB took 1.001 seconds, 7317.682 KiB/s Cycles per byte = 32.02
AES-128-GCM-enc 350 KiB took 1.008 seconds, 347.222 KiB/s Cycles per byte = 675.33
AES-128-GCM-dec 350 KiB took 1.009 seconds, 346.878 KiB/s Cycles per byte = 675.81
AES-192-GCM-enc 350 KiB took 1.013 seconds, 345.508 KiB/s Cycles per byte = 678.52
AES-192-GCM-dec 350 KiB took 1.014 seconds, 345.168 KiB/s Cycles per byte = 679.06
AES-256-GCM-enc 350 KiB took 1.018 seconds, 343.811 KiB/s Cycles per byte = 681.98
AES-256-GCM-dec 350 KiB took 1.020 seconds, 343.137 KiB/s Cycles per byte = 682.55
GMAC Default 415 KiB took 1.001 seconds, 414.585 KiB/s Cycles per byte = 565.02
AES-XTS-enc 1950 KiB took 1.000 seconds, 1950.000 KiB/s Cycles per byte = 120.17
AES-XTS-dec 1950 KiB took 1.002 seconds, 1946.108 KiB/s Cycles per byte = 120.49
AES-128-CFB 2425 KiB took 1.009 seconds, 2403.370 KiB/s Cycles per byte = 97.53
AES-192-CFB 2350 KiB took 1.010 seconds, 2326.733 KiB/s Cycles per byte = 100.67
AES-256-CFB 2250 KiB took 1.000 seconds, 2250.000 KiB/s Cycles per byte = 104.12
AES-128-OFB 2425 KiB took 1.009 seconds, 2403.370 KiB/s Cycles per byte = 97.47
AES-192-OFB 2350 KiB took 1.009 seconds, 2329.039 KiB/s Cycles per byte = 100.62
AES-256-OFB 2275 KiB took 1.010 seconds, 2252.475 KiB/s Cycles per byte = 104.07
AES-128-CTR 2450 KiB took 1.007 seconds, 2432.969 KiB/s Cycles per byte = 96.33
AES-192-CTR 2375 KiB took 1.009 seconds, 2353.816 KiB/s Cycles per byte = 99.50
AES-256-CTR 2275 KiB took 1.000 seconds, 2275.000 KiB/s Cycles per byte = 102.92
AES-256-SIV-enc 900 KiB took 1.019 seconds, 883.219 KiB/s Cycles per byte = 265.22
AES-256-SIV-dec 900 KiB took 1.019 seconds, 883.219 KiB/s Cycles per byte = 265.40
AES-384-SIV-enc 875 KiB took 1.015 seconds, 862.069 KiB/s Cycles per byte = 271.82
AES-384-SIV-dec 875 KiB took 1.016 seconds, 861.220 KiB/s Cycles per byte = 272.09
AES-512-SIV-enc 850 KiB took 1.012 seconds, 839.921 KiB/s Cycles per byte = 279.14
AES-512-SIV-dec 850 KiB took 1.014 seconds, 838.264 KiB/s Cycles per byte = 279.36
ARC4 4100 KiB took 1.003 seconds, 4087.737 KiB/s Cycles per byte = 57.30
3DES 450 KiB took 1.001 seconds, 449.550 KiB/s Cycles per byte = 521.21
MD5 13775 KiB took 1.000 seconds, 13775.000 KiB/s Cycles per byte = 17.01
POLY1305 7350 KiB took 1.000 seconds, 7350.000 KiB/s Cycles per byte = 31.89
SHA 16175 KiB took 1.000 seconds, 16175.000 KiB/s Cycles per byte = 14.49
SHA-224 1325 KiB took 1.004 seconds, 1319.721 KiB/s Cycles per byte = 177.55
SHA-256 15975 KiB took 1.001 seconds, 15959.041 KiB/s Cycles per byte = 14.69
SHA-384 17400 KiB took 1.000 seconds, 17400.000 KiB/s Cycles per byte = 13.48
SHA-512 17200 KiB took 1.000 seconds, 17200.000 KiB/s Cycles per byte = 13.63
SHA-512/224 1150 KiB took 1.012 seconds, 1136.364 KiB/s Cycles per byte = 206.14
SHA-512/256 1150 KiB took 1.010 seconds, 1138.614 KiB/s Cycles per byte = 205.91
SHA3-224 1125 KiB took 1.001 seconds, 1123.876 KiB/s Cycles per byte = 208.50
SHA3-256 1075 KiB took 1.013 seconds, 1061.204 KiB/s Cycles per byte = 220.77
SHA3-384 825 KiB took 1.007 seconds, 819.265 KiB/s Cycles per byte = 285.94
SHA3-512 575 KiB took 1.002 seconds, 573.852 KiB/s Cycles per byte = 408.48
SHAKE128 1300 KiB took 1.000 seconds, 1300.000 KiB/s Cycles per byte = 180.29
SHAKE256 1075 KiB took 1.012 seconds, 1062.253 KiB/s Cycles per byte = 220.72
BLAKE2b 1650 KiB took 1.007 seconds, 1638.530 KiB/s Cycles per byte = 143.04
BLAKE2s 3475 KiB took 1.003 seconds, 3464.606 KiB/s Cycles per byte = 67.59
AES-128-CMAC 2350 KiB took 1.009 seconds, 2329.039 KiB/s Cycles per byte = 100.65
AES-256-CMAC 2200 KiB took 1.006 seconds, 2186.879 KiB/s Cycles per byte = 107.22
HMAC-MD5 13625 KiB took 1.000 seconds, 13625.000 KiB/s Cycles per byte = 17.21
HMAC-SHA 15800 KiB took 1.000 seconds, 15800.000 KiB/s Cycles per byte = 14.84
HMAC-SHA224 1325 KiB took 1.012 seconds, 1309.289 KiB/s Cycles per byte = 179.02
HMAC-SHA256 15575 KiB took 1.000 seconds, 15575.000 KiB/s Cycles per byte = 15.05
HMAC-SHA384 16375 KiB took 1.000 seconds, 16375.000 KiB/s Cycles per byte = 14.32
HMAC-SHA512 15850 KiB took 1.000 seconds, 15850.000 KiB/s Cycles per byte = 14.80
PBKDF2 1 KiB took 1.024 seconds, 0.549 KiB/s Cycles per byte = 426593.36
RSA 1024 key gen 1 ops took 1.142 sec, avg 1142.000 ms, 0.876 ops/sec
RSA 2048 key gen 1 ops took 2.817 sec, avg 2817.000 ms, 0.355 ops/sec
RSA 2048 public 14 ops took 1.115 sec, avg 79.643 ms, 12.556 ops/sec
RSA 2048 private 6 ops took 1.272 sec, avg 212.000 ms, 4.717 ops/sec
DH 2048 key gen 5 ops took 1.206 sec, avg 241.200 ms, 4.146 ops/sec
DH 2048 agree 14 ops took 1.106 sec, avg 79.000 ms, 12.658 ops/sec
ECC [ SECP256R1] 256 key gen 4 ops took 1.525 sec, avg 381.250 ms, 2.623 ops/sec
ECDHE [ SECP256R1] 256 agree 4 ops took 1.522 sec, avg 380.500 ms, 2.628 ops/sec
ECDSA [ SECP256R1] 256 sign 4 ops took 1.541 sec, avg 385.250 ms, 2.596 ops/sec
ECDSA [ SECP256R1] 256 verify 4 ops took 1.014 sec, avg 253.500 ms, 3.945 ops/sec
CURVE 25519 key gen 3 ops took 1.186 sec, avg 395.333 ms, 2.530 ops/sec
CURVE 25519 agree 4 ops took 1.577 sec, avg 394.250 ms, 2.536 ops/sec
ED 25519 key gen 45 ops took 1.006 sec, avg 22.356 ms, 44.732 ops/sec
ED 25519 sign 40 ops took 1.036 sec, avg 25.900 ms, 38.610 ops/sec
ED 25519 verify 26 ops took 1.014 sec, avg 39.000 ms, 25.641 ops/sec
Benchmark complete
benchmark_test complete! result code: 0
I (82083) main_task: Returned from app_main()
```
See the README.md file in the upper level 'examples' directory for [more information about examples](../README.md).