At the moment benchmarking is non-automated, and is run on two of my laptops. See below.
RSA2048 signing |
🥇 aws-lc-rs2,223.6 sigs/sec |
🥈 ring2,046.5 sigs/sec |
🥉 graviola1,326.1 sigs/sec |
golang1,250.8 sigs/sec |
rustcrypto970.58 sigs/sec |
ECDSA-P256 signing |
🥇 graviola87,711 sigs/sec |
🥈 aws-lc-rs70,638 sigs/sec |
🥉 ring67,401 sigs/sec |
golang60,121 sigs/sec |
rustcrypto8,434.8 sigs/sec |
ECDSA-P384 signing |
🥇 aws-lc-rs16,133 sigs/sec |
🥈 graviola8,979.8 sigs/sec |
🥉 golang7,192.5 sigs/sec |
ring3,443.5 sigs/sec |
rustcrypto2,230.8 sigs/sec |
RSA2048 signature verification |
🥇 aws-lc-rs68,349 sigs/sec |
🥈 ring57,900 sigs/sec |
🥉 graviola49,376 sigs/sec |
golang39,064 sigs/sec |
rustcrypto7,913.6 sigs/sec |
ECDSA-P256 signature verification |
🥇 graviola26,677 sigs/sec |
🥈 aws-lc-rs24,933 sigs/sec |
🥉 ring23,804 sigs/sec |
golang19,410 sigs/sec |
rustcrypto5,260.5 sigs/sec |
ECDSA-P384 signature verification |
🥇 aws-lc-rs6,732.8 sigs/sec |
🥈 graviola5,032.3 sigs/sec |
🥉 golang2,320.3 sigs/sec |
ring1,922.4 sigs/sec |
rustcrypto1,266.1 sigs/sec |
X25519 key agreement |
🥇 aws-lc-rs43,664 kx/sec |
🥈 graviola42,779 kx/sec |
🥉 ring27,066 kx/sec |
dalek24,135 kx/sec |
golang13,375 kx/sec |
P256 key agreement |
🥇 aws-lc-rs25,470 kx/sec |
🥈 graviola24,100 kx/sec |
🥉 ring21,183 kx/sec |
golang20,282 kx/sec |
rustcrypto5,229.9 kx/sec |
P384 key agreement |
🥇 aws-lc-rs7,058.2 kx/sec |
🥈 graviola4,712.2 kx/sec |
🥉 golang2,483.2 kx/sec |
ring1,854.8 kx/sec |
rustcrypto1,270 kx/sec |
RSA2048 signing |
ⓘ🥇 aws-lc-rs5,544.1 sigs/sec |
🥈 ring2,442.5 sigs/sec |
🥉 graviola2,353 sigs/sec |
golang1,390.7 sigs/sec |
rustcrypto874.41 sigs/sec |
ECDSA-P256 signing |
🥇 graviola93,167 sigs/sec |
🥈 aws-lc-rs86,112 sigs/sec |
🥉 ring82,546 sigs/sec |
golang44,575 sigs/sec |
rustcrypto9,360.3 sigs/sec |
ECDSA-P384 signing |
🥇 aws-lc-rs16,682 sigs/sec |
🥈 graviola9,458.4 sigs/sec |
🥉 golang6,758.6 sigs/sec |
ring3,299 sigs/sec |
rustcrypto2,250.9 sigs/sec |
RSA2048 signature verification |
🥇 graviola85,182 sigs/sec |
🥈 aws-lc-rs78,069 sigs/sec |
🥉 ring66,076 sigs/sec |
golang46,786 sigs/sec |
rustcrypto7,385.7 sigs/sec |
ECDSA-P256 signature verification |
🥇 aws-lc-rs27,338 sigs/sec |
🥈 graviola27,031 sigs/sec |
🥉 ring26,403 sigs/sec |
golang20,017 sigs/sec |
rustcrypto5,650.1 sigs/sec |
ECDSA-P384 signature verification |
🥇 aws-lc-rs7,104.4 sigs/sec |
🥈 graviola5,145.4 sigs/sec |
🥉 golang2,316 sigs/sec |
ring1,840.3 sigs/sec |
rustcrypto1,244.9 sigs/sec |
X25519 key agreement |
🥇 graviola43,563 kx/sec |
🥈 aws-lc-rs43,465 kx/sec |
🥉 ring22,887 kx/sec |
dalek20,184 kx/sec |
golang14,762 kx/sec |
P256 key agreement |
🥇 aws-lc-rs25,872 kx/sec |
🥈 ring24,622 kx/sec |
🥉 graviola24,622 kx/sec |
golang21,198 kx/sec |
rustcrypto5,600.1 kx/sec |
P384 key agreement |
🥇 aws-lc-rs7,304.2 kx/sec |
🥈 graviola5,024.3 kx/sec |
🥉 golang2,519.5 kx/sec |
ring1,784.3 kx/sec |
rustcrypto1,244.4 kx/sec |