We at wolfSSL have worked hard to provide exceptional performance for our libraries across all platforms, but we’ve taken extra measures for Intel, ARM, RISC-V and PPC. For common key sizes and curves we’ve implemented inline assembly speedups for most algorithms.
For example on the new Raspberry Pi5 with a Cortex A57 at 2.4GHz (default) running on a single thread we achieve the following benchmark results on wolfSSL v5.6.4:
Algorithm | key size | operation | avg ms | ops/sec |
RSA | 2048 | sign | 3.387 | 295.244 |
RSA | 3072 | sign | 9.984 | 100.159 |
RSA | 4096 | sign | 21.742 | 45.995 |
RSA | 2048 | verify | 0.079 | 12646.826 |
RSA | 3072 | verify | 0.174 | 5744.265 |
RSA | 4096 | verify | 0.293 | 3415.934 |
ECDHE | 256 | agree | 0.158 | 6316.186 |
ECDHE | 384 | agree | 0.561 | 1783.881 |
ECDHE | 521 | agree | 1.296 | 771.642 |
ECDSA | 256 | sign | 0.066 | 15179.234 |
ECDSA | 384 | sign | 0.225 | 4436.137 |
ECDSA | 521 | sign | 0.584 | 1712.349 |
ECDSA | 256 | verify | 0.169 | 5925.511 |
ECDSA | 384 | verify | 0.598 | 1672.345 |
ECDSA | 521 | verify | 1.4 | 714.378 |
CURVE | 25519 | agree | 0.146 | 6864.489 |
CURVE | 448 | agree | 0.565 | 1770.784 |
ED | 25519 | sign | 0.045 | 22223.907 |
ED | 448 | sign | 0.232 | 4301.478 |
ED | 25519 | verify | 0.166 | 6018.073 |
ED | 448 | verify | 0.691 | 1448.119 |
Note: Above ECC curves are SECP256R1, SECP384R1 and SECP521R1.
Obtained using:
./configure --disable-shared --enable-sp=yes,asm --enable-armasm --enable-keygen --enable-curve25519 --enable-ed25519 --enable-curve448 --enable-ed448 make ./wolfcrypt/benchmark/benchmark -rsa -rsa_sign -ecc -p256 ./wolfcrypt/benchmark/benchmark -rsa-sz 3072 -rsa_sign -ecc -p384 ./wolfcrypt/benchmark/benchmark -rsa-sz 4096 -rsa_sign -ecc -p521 ./wolfcrypt/benchmark/benchmark -x25519 -ed25519 -x448 -ed448
If you have questions about any of the above, please contact us at facts@wolfSSL.com or call us at +1 425 245 8247.
Download wolfSSL Now