@@ -388,73 +388,132 @@ Board: NUCLEO-L4A6ZG
388388CPU: Cortex-M4 at 80 MHz
389389IDE: STM32CubeIDE
390390RTOS: FreeRTOS
391+ Compiler: GCC with -Os
391392
392- ### STM32L4A6Z (STM Crypto/Hash Acceleration, -Os, SP-ASM Cortex-M)
393+ ### STM32L4A6Z (STM Crypto/Hash Acceleration, SP-ASM Cortex-M Small and ARM ASM Thumb speedups)
394+
395+ Build options used:
396+
397+ ``` c
398+ #define WOLFSSL_HAVE_SP_ECC
399+ #define WOLFSSL_SP_ARM_CORTEX_M_ASM
400+ #define WOLFSSL_SP_384
401+ #define WOLFSSL_SP_SMALL
402+ #define WOLFSSL_SP_NO_MALLOC
403+
404+ #define WOLFSSL_ARMASM
405+ #define WOLFSSL_ARMASM_INLINE
406+ #define WOLFSSL_ARMASM_NO_HW_CRYPTO
407+ #define WOLFSSL_ARMASM_NO_NEON
408+ #define WOLFSSL_ARM_ARCH 7
409+ ```
393410
394411```
395412------------------------------------------------------------------------------
396- wolfSSL version 4.4.1
413+ wolfSSL version 5.6.4
397414------------------------------------------------------------------------------
398415wolfCrypt Benchmark (block bytes 1024, min 1.0 sec each)
399- RNG 250 KB took 1.083 seconds, 230.840 KB/s
400- AES-128-CBC-enc 4 MB took 1.000 seconds, 4.175 MB/s
401- AES-128-CBC-dec 3 MB took 1.000 seconds, 3.442 MB/s
402- AES-256-CBC-enc 3 MB took 1.000 seconds, 3.247 MB/s
403- AES-256-CBC-dec 3 MB took 1.008 seconds, 2.664 MB/s
404- AES-128-GCM-enc 4 MB took 1.000 seconds, 3.589 MB/s
405- AES-128-GCM-dec 4 MB took 1.004 seconds, 3.575 MB/s
406- AES-256-GCM-enc 3 MB took 1.004 seconds, 2.869 MB/s
407- AES-256-GCM-dec 3 MB took 1.000 seconds, 2.856 MB/s
408- CHACHA 2 MB took 1.008 seconds, 2.010 MB/s
409- CHA-POLY 1 MB took 1.004 seconds, 1.337 MB/s
410- POLY1305 6 MB took 1.000 seconds, 6.030 MB/s
411- SHA-256 4 MB took 1.004 seconds, 3.623 MB/s
412- HMAC-SHA256 4 MB took 1.000 seconds, 3.540 MB/s
413- RSA 2048 public 36 ops took 1.020 sec, avg 28.333 ms, 35.294 ops/sec
414- RSA 2048 private 2 ops took 2.031 sec, avg 1015.500 ms, 0.985 ops/sec
415- DH 2048 key gen 3 ops took 1.353 sec, avg 451.000 ms, 2.217 ops/sec
416- DH 2048 agree 4 ops took 1.804 sec, avg 451.000 ms, 2.217 ops/sec
417- ECC 256 key gen 33 ops took 1.011 sec, avg 30.636 ms, 32.641 ops/sec
418- ECDHE 256 agree 16 ops took 1.078 sec, avg 67.375 ms, 14.842 ops/sec
419- ECDSA 256 sign 24 ops took 1.012 sec, avg 42.167 ms, 23.715 ops/sec
420- ECDSA 256 verify 12 ops took 1.165 sec, avg 97.083 ms, 10.300 ops/sec
416+ RNG 225 KiB took 1.078 seconds, 208.720 KiB/s
417+ AES-128-CBC-enc 4 MiB took 1.000 seconds, 4.150 MiB/s
418+ AES-128-CBC-dec 3 MiB took 1.004 seconds, 3.234 MiB/s
419+ AES-256-CBC-enc 3 MiB took 1.000 seconds, 3.247 MiB/s
420+ AES-256-CBC-dec 3 MiB took 1.008 seconds, 2.543 MiB/s
421+ AES-128-GCM-enc 4 MiB took 1.000 seconds, 3.687 MiB/s
422+ AES-128-GCM-dec 4 MiB took 1.000 seconds, 3.638 MiB/s
423+ AES-256-GCM-enc 3 MiB took 1.000 seconds, 2.930 MiB/s
424+ AES-256-GCM-dec 3 MiB took 1.004 seconds, 2.894 MiB/s
425+ AES-128-GCM-enc-no_AAD 4 MiB took 1.000 seconds, 3.687 MiB/s
426+ AES-128-GCM-dec-no_AAD 4 MiB took 1.000 seconds, 3.662 MiB/s
427+ AES-256-GCM-enc-no_AAD 3 MiB took 1.003 seconds, 2.945 MiB/s
428+ AES-256-GCM-dec-no_AAD 3 MiB took 1.004 seconds, 2.918 MiB/s
429+ GMAC Table 4-bit 952 KiB took 1.000 seconds, 952.000 KiB/s
430+ CHACHA 3 MiB took 1.004 seconds, 2.894 MiB/s
431+ CHA-POLY 2 MiB took 1.004 seconds, 1.775 MiB/s
432+ POLY1305 7 MiB took 1.000 seconds, 7.227 MiB/s
433+ SHA-256 7 MiB took 1.000 seconds, 7.104 MiB/s
434+ SHA-512 350 KiB took 1.036 seconds, 337.838 KiB/s
435+ SHA-512/224 350 KiB took 1.035 seconds, 338.164 KiB/s
436+ SHA-512/256 350 KiB took 1.035 seconds, 338.164 KiB/s
437+ HMAC-SHA256 7 MiB took 1.000 seconds, 6.763 MiB/s
438+ HMAC-SHA512 350 KiB took 1.047 seconds, 334.288 KiB/s
439+ RSA 2048 public 36 ops took 1.008 sec, avg 28.000 ms, 35.714 ops/sec
440+ RSA 2048 private 2 ops took 2.016 sec, avg 1008.000 ms, 0.992 ops/sec
441+ DH 2048 key gen 3 ops took 1.416 sec, avg 472.000 ms, 2.119 ops/sec
442+ DH 2048 agree 4 ops took 1.890 sec, avg 472.500 ms, 2.116 ops/sec
443+ ECC [ SECP256R1] 256 key gen 32 ops took 1.000 sec, avg 31.250 ms, 32.000 ops/sec
444+ ECDHE [ SECP256R1] 256 agree 16 ops took 1.101 sec, avg 68.812 ms, 14.532 ops/sec
445+ ECDSA [ SECP256R1] 256 sign 24 ops took 1.020 sec, avg 42.500 ms, 23.529 ops/sec
446+ ECDSA [ SECP256R1] 256 verify 12 ops took 1.133 sec, avg 94.417 ms, 10.591 ops/sec
447+ ECC [ SECP384R1] 384 key gen 10 ops took 1.232 sec, avg 123.200 ms, 8.117 ops/sec
448+ ECDHE [ SECP384R1] 384 agree 4 ops took 1.063 sec, avg 265.750 ms, 3.763 ops/sec
449+ ECDSA [ SECP384R1] 384 sign 8 ops took 1.223 sec, avg 152.875 ms, 6.541 ops/sec
450+ ECDSA [ SECP384R1] 384 verify 4 ops took 1.388 sec, avg 347.000 ms, 2.882 ops/sec
451+ CURVE 25519 key gen 32 ops took 1.023 sec, avg 31.969 ms, 31.281 ops/sec
452+ CURVE 25519 agree 32 ops took 1.012 sec, avg 31.625 ms, 31.621 ops/sec
453+ ED 25519 key gen 80 ops took 1.008 sec, avg 12.600 ms, 79.365 ops/sec
454+ ED 25519 sign 64 ops took 1.027 sec, avg 16.047 ms, 62.317 ops/sec
455+ ED 25519 verify 28 ops took 1.024 sec, avg 36.571 ms, 27.344 ops/sec
421456Benchmark complete
422457Benchmark Test: Return code 0
423458```
424459
425- ### STM32L4A6Z (No HW Crypto, -Os, FastMath)
460+ ### STM32L4A6Z (No HW Crypto, SP Math All (sp_int.c) NO ASM)
461+
462+ ```
463+ #define WOLFSSL_SP_MATH_ALL
464+ #define WOLFSSL_SP_SMALL
465+ #define WOLFSSL_NO_ASM
466+ #define WOLFSSL_SP_NO_MALLOC
467+ #define CURVED25519_SMALL
468+ ```
426469
427470```
428471------------------------------------------------------------------------------
429- wolfSSL version 4.4.1
472+ wolfSSL version 5.6.4
430473------------------------------------------------------------------------------
431474wolfCrypt Benchmark (block bytes 1024, min 1.0 sec each)
432- RNG 450 KB took 1.048 seconds, 429.389 KB/s
433- AES-128-CBC-enc 625 KB took 1.008 seconds, 620.040 KB/s
434- AES-128-CBC-dec 675 KB took 1.008 seconds, 669.643 KB/s
435- AES-192-CBC-enc 550 KB took 1.023 seconds, 537.634 KB/s
436- AES-192-CBC-dec 575 KB took 1.012 seconds, 568.182 KB/s
437- AES-256-CBC-enc 475 KB took 1.004 seconds, 473.108 KB/s
438- AES-256-CBC-dec 500 KB took 1.008 seconds, 496.032 KB/s
439- AES-128-GCM-enc 50 KB took 1.440 seconds, 34.722 KB/s
440- AES-128-GCM-dec 50 KB took 1.435 seconds, 34.843 KB/s
441- AES-192-GCM-enc 50 KB took 1.466 seconds, 34.106 KB/s
442- AES-192-GCM-dec 50 KB took 1.463 seconds, 34.176 KB/s
443- AES-256-GCM-enc 50 KB took 1.482 seconds, 33.738 KB/s
444- AES-256-GCM-dec 50 KB took 1.478 seconds, 33.829 KB/s
445- CHACHA 2 MB took 1.008 seconds, 2.010 MB/s
446- CHA-POLY 1 MB took 1.008 seconds, 1.332 MB/s
447- POLY1305 6 MB took 1.000 seconds, 6.006 MB/s
448- SHA-256 1 MB took 1.000 seconds, 1.123 MB/s
449- HMAC-SHA256 1 MB took 1.008 seconds, 1.114 MB/s
450- RSA 2048 public 16 ops took 1.028 sec, avg 64.250 ms, 15.564 ops/sec
451- RSA 2048 private 2 ops took 7.491 sec, avg 3745.500 ms, 0.267 ops/sec
452- DH 2048 key gen 2 ops took 1.440 sec, avg 720.000 ms, 1.389 ops/sec
453- DH 2048 agree 2 ops took 2.882 sec, avg 1441.000 ms, 0.694 ops/sec
454- ECC 256 key gen 2 ops took 1.918 sec, avg 959.000 ms, 1.043 ops/sec
455- ECDHE 256 agree 2 ops took 1.914 sec, avg 957.000 ms, 1.045 ops/sec
456- ECDSA 256 sign 2 ops took 1.941 sec, avg 970.500 ms, 1.030 ops/sec
457- ECDSA 256 verify 2 ops took 1.294 sec, avg 647.000 ms, 1.546 ops/sec
475+ RNG 325 KiB took 1.059 seconds, 306.893 KiB/s
476+ AES-128-CBC-enc 425 KiB took 1.000 seconds, 425.000 KiB/s
477+ AES-128-CBC-dec 450 KiB took 1.028 seconds, 437.743 KiB/s
478+ AES-192-CBC-enc 375 KiB took 1.035 seconds, 362.319 KiB/s
479+ AES-192-CBC-dec 375 KiB took 1.015 seconds, 369.458 KiB/s
480+ AES-256-CBC-enc 325 KiB took 1.032 seconds, 314.922 KiB/s
481+ AES-256-CBC-dec 325 KiB took 1.004 seconds, 323.705 KiB/s
482+ AES-128-GCM-enc 325 KiB took 1.063 seconds, 305.738 KiB/s
483+ AES-128-GCM-dec 325 KiB took 1.066 seconds, 304.878 KiB/s
484+ AES-192-GCM-enc 275 KiB took 1.020 seconds, 269.608 KiB/s
485+ AES-192-GCM-dec 275 KiB took 1.015 seconds, 270.936 KiB/s
486+ AES-256-GCM-enc 250 KiB took 1.028 seconds, 243.191 KiB/s
487+ AES-256-GCM-dec 250 KiB took 1.027 seconds, 243.427 KiB/s
488+ AES-128-GCM-enc-no_AAD 325 KiB took 1.059 seconds, 306.893 KiB/s
489+ AES-128-GCM-dec-no_AAD 325 KiB took 1.062 seconds, 306.026 KiB/s
490+ AES-192-GCM-enc-no_AAD 275 KiB took 1.012 seconds, 271.739 KiB/s
491+ AES-192-GCM-dec-no_AAD 275 KiB took 1.015 seconds, 270.936 KiB/s
492+ AES-256-GCM-enc-no_AAD 250 KiB took 1.020 seconds, 245.098 KiB/s
493+ AES-256-GCM-dec-no_AAD 250 KiB took 1.023 seconds, 244.379 KiB/s
494+ GMAC Table 4-bit 1 MiB took 1.000 seconds, 1.064 MiB/s
495+ CHACHA 3 MiB took 1.000 seconds, 2.832 MiB/s
496+ CHA-POLY 2 MiB took 1.004 seconds, 1.751 MiB/s
497+ POLY1305 7 MiB took 1.000 seconds, 7.104 MiB/s
498+ SHA-256 850 KiB took 1.003 seconds, 847.458 KiB/s
499+ SHA-512 350 KiB took 1.036 seconds, 337.838 KiB/s
500+ SHA-512/224 350 KiB took 1.035 seconds, 338.164 KiB/s
501+ SHA-512/256 350 KiB took 1.035 seconds, 338.164 KiB/s
502+ HMAC-SHA256 850 KiB took 1.012 seconds, 839.921 KiB/s
503+ HMAC-SHA512 350 KiB took 1.051 seconds, 333.016 KiB/s
504+ RSA 2048 public 24 ops took 1.067 sec, avg 44.458 ms, 22.493 ops/sec
505+ RSA 2048 private 2 ops took 5.643 sec, avg 2821.500 ms, 0.354 ops/sec
506+ DH 2048 key gen 2 ops took 1.078 sec, avg 539.000 ms, 1.855 ops/sec
507+ DH 2048 agree 2 ops took 2.455 sec, avg 1227.500 ms, 0.815 ops/sec
508+ ECC [ SECP256R1] 256 key gen 4 ops took 1.808 sec, avg 452.000 ms, 2.212 ops/sec
509+ ECDHE [ SECP256R1] 256 agree 4 ops took 1.807 sec, avg 451.750 ms, 2.214 ops/sec
510+ ECDSA [ SECP256R1] 256 sign 4 ops took 1.828 sec, avg 457.000 ms, 2.188 ops/sec
511+ ECDSA [ SECP256R1] 256 verify 4 ops took 1.224 sec, avg 306.000 ms, 3.268 ops/sec
512+ CURVE 25519 key gen 2 ops took 1.392 sec, avg 696.000 ms, 1.437 ops/sec
513+ CURVE 25519 agree 2 ops took 1.384 sec, avg 692.000 ms, 1.445 ops/sec
514+ ED 25519 key gen 2 ops took 1.412 sec, avg 706.000 ms, 1.416 ops/sec
515+ ED 25519 sign 2 ops took 1.435 sec, avg 717.500 ms, 1.394 ops/sec
516+ ED 25519 verify 2 ops took 2.949 sec, avg 1474.500 ms, 0.678 ops/sec
458517Benchmark complete
459518Benchmark Test: Return code 0
460519```
0 commit comments