At the moment benchmarking is non-automated, and is run on two of my laptops. See below.
RSA2048 signing |
🥇 aws-lc-rs2,223.5 sigs/sec |
🥈 ring2,043.4 sigs/sec |
🥉 graviola1,326.5 sigs/sec |
golang1,250.8 sigs/sec |
rustcrypto969.29 sigs/sec |
ECDSA-P256 signing |
🥇 graviola87,510 sigs/sec |
🥈 aws-lc-rs68,614 sigs/sec |
🥉 ring65,850 sigs/sec |
golang60,121 sigs/sec |
rustcrypto8,272.6 sigs/sec |
ECDSA-P384 signing |
🥇 aws-lc-rs16,079 sigs/sec |
🥈 graviola8,722.8 sigs/sec |
🥉 golang7,192.5 sigs/sec |
ring3,440.8 sigs/sec |
rustcrypto2,283.8 sigs/sec |
RSA2048 signature verification |
🥇 aws-lc-rs68,763 sigs/sec |
🥈 ring58,776 sigs/sec |
🥉 graviola49,531 sigs/sec |
golang39,064 sigs/sec |
rustcrypto8,084.7 sigs/sec |
ECDSA-P256 signature verification |
🥇 graviola26,670 sigs/sec |
🥈 aws-lc-rs24,896 sigs/sec |
🥉 ring23,160 sigs/sec |
golang19,410 sigs/sec |
rustcrypto5,164.2 sigs/sec |
ECDSA-P384 signature verification |
🥇 aws-lc-rs6,503.8 sigs/sec |
🥈 graviola4,893.4 sigs/sec |
🥉 golang2,320.3 sigs/sec |
ring1,922.4 sigs/sec |
rustcrypto1,233.4 sigs/sec |
X25519 key agreement |
🥇 graviola42,769 kx/sec |
🥈 aws-lc-rs42,558 kx/sec |
🥉 ring26,331 kx/sec |
dalek23,550 kx/sec |
golang13,375 kx/sec |
P256 key agreement |
🥇 aws-lc-rs24,810 kx/sec |
🥈 graviola23,341 kx/sec |
🥉 ring21,189 kx/sec |
golang20,282 kx/sec |
rustcrypto5,138.3 kx/sec |
P384 key agreement |
🥇 aws-lc-rs6,879.7 kx/sec |
🥈 graviola4,585.7 kx/sec |
🥉 golang2,483.2 kx/sec |
ring1,855.3 kx/sec |
rustcrypto1,235 kx/sec |
RSA2048 signing |
ⓘ🥇 aws-lc-rs5,476.5 sigs/sec |
🥈 ring2,407.5 sigs/sec |
🥉 graviola2,318.2 sigs/sec |
golang1,390.7 sigs/sec |
rustcrypto874.06 sigs/sec |
ECDSA-P256 signing |
🥇 graviola90,898 sigs/sec |
🥈 aws-lc-rs84,749 sigs/sec |
🥉 ring81,198 sigs/sec |
golang44,575 sigs/sec |
rustcrypto9,446.6 sigs/sec |
ECDSA-P384 signing |
🥇 aws-lc-rs16,398 sigs/sec |
🥈 graviola9,303 sigs/sec |
🥉 golang6,758.6 sigs/sec |
ring3,296.2 sigs/sec |
rustcrypto2,219.6 sigs/sec |
RSA2048 signature verification |
🥇 graviola84,549 sigs/sec |
🥈 aws-lc-rs76,438 sigs/sec |
🥉 ring64,915 sigs/sec |
golang46,786 sigs/sec |
rustcrypto7,404.7 sigs/sec |
ECDSA-P256 signature verification |
🥇 aws-lc-rs26,874 sigs/sec |
🥈 graviola26,606 sigs/sec |
🥉 ring26,113 sigs/sec |
golang20,017 sigs/sec |
rustcrypto5,618.7 sigs/sec |
ECDSA-P384 signature verification |
🥇 aws-lc-rs6,993.5 sigs/sec |
🥈 graviola5,169.8 sigs/sec |
🥉 golang2,316 sigs/sec |
ring1,827.9 sigs/sec |
rustcrypto1,225.9 sigs/sec |
X25519 key agreement |
🥇 graviola43,204 kx/sec |
🥈 aws-lc-rs43,016 kx/sec |
🥉 ring22,785 kx/sec |
dalek20,185 kx/sec |
golang14,762 kx/sec |
P256 key agreement |
🥇 aws-lc-rs25,621 kx/sec |
🥈 ring24,342 kx/sec |
🥉 graviola24,263 kx/sec |
golang21,198 kx/sec |
rustcrypto5,583.2 kx/sec |
P384 key agreement |
🥇 aws-lc-rs7,290.4 kx/sec |
🥈 graviola4,950.9 kx/sec |
🥉 golang2,519.5 kx/sec |
ring1,771.7 kx/sec |
rustcrypto1,223.1 kx/sec |