BlogDocs

Use neon impls for squaring/multiplication mod p256/p384(#19)

Merged
Comparing
jbp-neon-field-ops
(
867f3a6
) with
main
(
03d2c08
)
0%
IMPROVEMENTS
0
REGRESSIONS
0
UNTOUCHED
120
NEW
0
DROPPED
0
IGNORED
0

Benchmarks

Passed

rustcrypto[32B]
graviola-bench/benches/aes_gcm.rs::benches::aes128_gcm::aes128-gcm::rustcrypto[32B]
+2%
3.5 µs
3.4 µs
rustcrypto[32B]
graviola-bench/benches/aes_gcm.rs::benches::aes256_gcm::aes256-gcm::rustcrypto[32B]
+2%
3.5 µs
3.5 µs
ring[32B]
graviola-bench/benches/aes_gcm.rs::benches::aes128_gcm::aes128-gcm::ring[32B]
+1%
5.1 µs
5 µs
ring[32B]
graviola-bench/benches/chacha20poly1305.rs::benches::bench_chacha20poly1305::chacha20poly1305::ring[32B]
+1%
3.5 µs
3.5 µs
graviola[32B]
graviola-bench/benches/chacha20poly1305.rs::benches::bench_chacha20poly1305::chacha20poly1305::graviola[32B]
+1%
4.4 µs
4.3 µs
aws-lc-rs[32B]
graviola-bench/benches/chacha20poly1305.rs::benches::bench_chacha20poly1305::chacha20poly1305::aws-lc-rs[32B]
+1%
4.4 µs
4.4 µs
graviola[32B]
graviola-bench/benches/sha2.rs::benches::sha512::sha512::graviola[32B]
+1%
4.4 µs
4.4 µs
ring[32B]
graviola-bench/benches/aes_gcm.rs::benches::aes256_gcm::aes256-gcm::ring[32B]
+1%
5.1 µs
5.1 µs
rustcrypto[2KB]
graviola-bench/benches/aes_gcm.rs::benches::aes128_gcm::aes128-gcm::rustcrypto[2KB]
+1%
11.4 µs
11.3 µs
rustcrypto[2KB]
graviola-bench/benches/aes_gcm.rs::benches::aes256_gcm::aes256-gcm::rustcrypto[2KB]
0%
12.1 µs
12.1 µs
ring[2KB]
graviola-bench/benches/aes_gcm.rs::benches::aes128_gcm::aes128-gcm::ring[2KB]
0%
10.9 µs
10.9 µs
ring[2KB]
graviola-bench/benches/chacha20poly1305.rs::benches::bench_chacha20poly1305::chacha20poly1305::ring[2KB]
0%
12.5 µs
12.5 µs
rustcrypto[32B]
graviola-bench/benches/chacha20poly1305.rs::benches::bench_chacha20poly1305::chacha20poly1305::rustcrypto[32B]
0%
13.1 µs
13 µs
aws-lc-rs[2KB]
graviola-bench/benches/chacha20poly1305.rs::benches::bench_chacha20poly1305::chacha20poly1305::aws-lc-rs[2KB]
0%
13.4 µs
13.3 µs
rustcrypto[8KB]
graviola-bench/benches/aes_gcm.rs::benches::aes128_gcm::aes128-gcm::rustcrypto[8KB]
0%
29.8 µs
29.7 µs
rustcrypto[8KB]
graviola-bench/benches/aes_gcm.rs::benches::aes256_gcm::aes256-gcm::rustcrypto[8KB]
0%
30.9 µs
30.8 µs
graviola[2KB]
graviola-bench/benches/chacha20poly1305.rs::benches::bench_chacha20poly1305::chacha20poly1305::graviola[2KB]
0%
17.9 µs
17.8 µs
rustcrypto[2KB]
graviola-bench/benches/chacha20poly1305.rs::benches::bench_chacha20poly1305::chacha20poly1305::rustcrypto[2KB]
0%
21.8 µs
21.8 µs
ring[8KB]
graviola-bench/benches/aes_gcm.rs::benches::aes128_gcm::aes128-gcm::ring[8KB]
0%
22.1 µs
22.1 µs
rustcrypto[16KB]
graviola-bench/benches/aes_gcm.rs::benches::aes128_gcm::aes128-gcm::rustcrypto[16KB]
0%
67.3 µs
67.2 µs
rustcrypto[16KB]
graviola-bench/benches/aes_gcm.rs::benches::aes256_gcm::aes256-gcm::rustcrypto[16KB]
0%
69.3 µs
69.3 µs
ring[16KB]
graviola-bench/benches/aes_gcm.rs::benches::aes128_gcm::aes128-gcm::ring[16KB]
0%
49.6 µs
49.6 µs
aws-lc-rs[16KB]
graviola-bench/benches/chacha20poly1305.rs::benches::bench_chacha20poly1305::chacha20poly1305::aws-lc-rs[16KB]
0%
64.6 µs
64.5 µs
ring[16KB]
graviola-bench/benches/chacha20poly1305.rs::benches::bench_chacha20poly1305::chacha20poly1305::ring[16KB]
0%
63.7 µs
63.7 µs
ring
graviola-bench/benches/p256.rs::benches::ecdsa_sign::p256-ecdsa-sign::ring
0%
152.9 µs
152.8 µs
rustcrypto[16KB]
graviola-bench/benches/chacha20poly1305.rs::benches::bench_chacha20poly1305::chacha20poly1305::rustcrypto[16KB]
0%
84.7 µs
84.6 µs
graviola[16KB]
graviola-bench/benches/chacha20poly1305.rs::benches::bench_chacha20poly1305::chacha20poly1305::graviola[16KB]
0%
112.8 µs
112.8 µs
ring
graviola-bench/benches/p256.rs::benches::keygen::p256-keygen::ring
0%
126.6 µs
126.6 µs
aws-lc-rs
graviola-bench/benches/rsa_pub.rs::benches::rsa2048_pkcs1_sha256_verify::rsa2048-pkcs1-sha256-verify::aws-lc-rs
0%
127.2 µs
127.2 µs
graviola
graviola-bench/benches/p256.rs::benches::ecdsa_sign::p256-ecdsa-sign::graviola
0%
184.4 µs
184.4 µs
graviola
graviola-bench/benches/p384.rs::benches::ecdsa_sign::p384-ecdsa-sign::graviola
0%
745.9 µs
745.8 µs
graviola
graviola-bench/benches/p256.rs::benches::ecdsa_verify::p256-ecdsa-verify::graviola
0%
364.7 µs
364.7 µs
aws-lc-rs
graviola-bench/benches/p384.rs::benches::ecdsa_verify::p384-ecdsa-verify::aws-lc-rs
0%
928.1 µs
928 µs
rustcrypto
graviola-bench/benches/rsa_pub.rs::benches::rsa2048_pkcs1_sha256_verify::rsa2048-pkcs1-sha256-verify::rustcrypto
0%
954.4 µs
954.4 µs
aws-lc-rs
graviola-bench/benches/p384.rs::benches::ecdh::p384-ecdh::aws-lc-rs
0%
1.1 ms
1.1 ms
rustcrypto
graviola-bench/benches/p256.rs::benches::ecdsa_verify::p256-ecdsa-verify::rustcrypto
0%
1.1 ms
1.1 ms
graviola
graviola-bench/benches/p384.rs::benches::ecdsa_verify::p384-ecdsa-verify::graviola
0%
1.3 ms
1.3 ms
graviola
graviola-bench/benches/rsa_priv.rs::benches::rsa2048_pkcs1_sha256_sign::rsa2048-pkcs1-sha256-sign::graviola
0%
2.5 ms
2.5 ms
ring
graviola-bench/benches/p384.rs::benches::keygen::p384-keygen::ring
0%
2 ms
2 ms
rustcrypto
graviola-bench/benches/p384.rs::benches::ecdsa_verify::p384-ecdsa-verify::rustcrypto
0%
5.5 ms
5.5 ms
aws-lc-rs
graviola-bench/benches/p384.rs::benches::keygen::p384-keygen::aws-lc-rs
0%
265.2 µs
265.2 µs
ring[64KB]
graviola-bench/benches/sha2.rs::benches::sha256::sha256::ring[64KB]
0%
663.3 µs
663.3 µs
ring[64KB]
graviola-bench/benches/sha2.rs::benches::sha512::sha512::ring[64KB]
0%
482.3 µs
482.3 µs
ring[1MB]
graviola-bench/benches/sha2.rs::benches::sha256::sha256::ring[1MB]
0%
10.5 ms
10.5 ms
ring[1MB]
graviola-bench/benches/sha2.rs::benches::sha512::sha512::ring[1MB]
0%
7.6 ms
7.6 ms
aws-lc-rs[2KB]
graviola-bench/benches/aes_gcm.rs::benches::aes128_gcm::aes128-gcm::aws-lc-rs[2KB]
0%
11.1 µs
11.1 µs
aws-lc-rs[8KB]
graviola-bench/benches/aes_gcm.rs::benches::aes128_gcm::aes128-gcm::aws-lc-rs[8KB]
0%
22.2 µs
22.2 µs
graviola[2KB]
graviola-bench/benches/aes_gcm.rs::benches::aes128_gcm::aes128-gcm::graviola[2KB]
0%
8.4 µs
8.4 µs
graviola[32B]
graviola-bench/benches/aes_gcm.rs::benches::aes128_gcm::aes128-gcm::graviola[32B]
0%
3.1 µs
3.1 µs
graviola[8KB]
graviola-bench/benches/aes_gcm.rs::benches::aes128_gcm::aes128-gcm::graviola[8KB]
0%
18.4 µs
18.4 µs
aws-lc-rs[2KB]
graviola-bench/benches/aes_gcm.rs::benches::aes256_gcm::aes256-gcm::aws-lc-rs[2KB]
0%
11.5 µs
11.5 µs
aws-lc-rs[8KB]
graviola-bench/benches/aes_gcm.rs::benches::aes256_gcm::aes256-gcm::aws-lc-rs[8KB]
0%
23.1 µs
23.1 µs
graviola[2KB]
graviola-bench/benches/aes_gcm.rs::benches::aes256_gcm::aes256-gcm::graviola[2KB]
0%
9 µs
9 µs
graviola[32B]
graviola-bench/benches/aes_gcm.rs::benches::aes256_gcm::aes256-gcm::graviola[32B]
0%
3.1 µs
3.1 µs
graviola[8KB]
graviola-bench/benches/aes_gcm.rs::benches::aes256_gcm::aes256-gcm::graviola[8KB]
0%
19.3 µs
19.3 µs
ring[2KB]
graviola-bench/benches/aes_gcm.rs::benches::aes256_gcm::aes256-gcm::ring[2KB]
0%
11.6 µs
11.6 µs
ring[8KB]
graviola-bench/benches/aes_gcm.rs::benches::aes256_gcm::aes256-gcm::ring[8KB]
0%
23.3 µs
23.3 µs
aws-lc-rs
graviola-bench/benches/p256.rs::benches::ecdh::p256-ecdh::aws-lc-rs
0%
365.7 µs
365.7 µs
graviola
graviola-bench/benches/p256.rs::benches::ecdh::p256-ecdh::graviola
0%
425.1 µs
425.1 µs
p256-rustcrypto
graviola-bench/benches/p256.rs::benches::ecdh::p256-ecdh::p256-rustcrypto
0%
1.1 ms
1.1 ms
aws-lc-rs
graviola-bench/benches/p256.rs::benches::ecdsa_sign::p256-ecdsa-sign::aws-lc-rs
0%
172.1 µs
172.1 µs
ring
graviola-bench/benches/p384.rs::benches::ecdsa_sign::p384-ecdsa-sign::ring
0%
2.2 ms
2.2 ms
rustcrypto
graviola-bench/benches/p384.rs::benches::ecdsa_sign::p384-ecdsa-sign::rustcrypto
0%
3.1 ms
3.1 ms
graviola
graviola-bench/benches/p384.rs::benches::keygen::p384-keygen::graviola
0%
657.8 µs
657.8 µs
p384-rustcrypto
graviola-bench/benches/p384.rs::benches::keygen::p384-keygen::p384-rustcrypto
0%
2.7 ms
2.7 ms
graviola[32B]
graviola-bench/benches/sha2.rs::benches::sha256::sha256::graviola[32B]
0%
3.2 µs
3.2 µs
graviola[8KB]
graviola-bench/benches/sha2.rs::benches::sha256::sha256::graviola[8KB]
0%
189.3 µs
189.3 µs
ring[32B]
graviola-bench/benches/sha2.rs::benches::sha256::sha256::ring[32B]
0%
4.4 µs
4.4 µs
ring[8KB]
graviola-bench/benches/sha2.rs::benches::sha256::sha256::ring[8KB]
0%
86.8 µs
86.8 µs
graviola[8KB]
graviola-bench/benches/sha2.rs::benches::sha512::sha512::graviola[8KB]
0%
88.1 µs
88.1 µs
ring[32B]
graviola-bench/benches/sha2.rs::benches::sha512::sha512::ring[32B]
0%
5.3 µs
5.3 µs
ring[8KB]
graviola-bench/benches/sha2.rs::benches::sha512::sha512::ring[8KB]
0%
65 µs
65 µs
rustcrypto[1MB]
graviola-bench/benches/sha2.rs::benches::sha512::sha512::rustcrypto[1MB]
0%
11.9 ms
11.9 ms
rustcrypto[64KB]
graviola-bench/benches/sha2.rs::benches::sha512::sha512::rustcrypto[64KB]
0%
746.1 µs
746.1 µs
rustcrypto[8KB]
graviola-bench/benches/sha2.rs::benches::sha512::sha512::rustcrypto[8KB]
0%
97.5 µs
97.5 µs
graviola[1MB]
graviola-bench/benches/sha2.rs::benches::sha256::sha256::graviola[1MB]
0%
23.8 ms
23.8 ms
graviola[1MB]
graviola-bench/benches/sha2.rs::benches::sha512::sha512::graviola[1MB]
0%
10.1 ms
10.1 ms
ring
graviola-bench/benches/rsa_priv.rs::benches::rsa2048_pkcs1_sha256_sign::rsa2048-pkcs1-sha256-sign::ring
0%
3.4 ms
3.4 ms
graviola[64KB]
graviola-bench/benches/sha2.rs::benches::sha256::sha256::graviola[64KB]
0%
1.5 ms
1.5 ms
rustcrypto[1MB]
graviola-bench/benches/sha2.rs::benches::sha256::sha256::rustcrypto[1MB]
0%
18 ms
18 ms
aws-lc-rs[1MB]
graviola-bench/benches/sha2.rs::benches::sha256::sha256::aws-lc-rs[1MB]
0%
10.5 ms
10.5 ms
rustcrypto
graviola-bench/benches/rsa_priv.rs::benches::rsa2048_pkcs1_sha256_sign::rsa2048-pkcs1-sha256-sign::rustcrypto
0%
8 ms
8 ms
aws-lc-rs[1MB]
graviola-bench/benches/sha2.rs::benches::sha512::sha512::aws-lc-rs[1MB]
0%
7.6 ms
7.6 ms
graviola[64KB]
graviola-bench/benches/sha2.rs::benches::sha512::sha512::graviola[64KB]
0%
638.7 µs
638.7 µs
p384-rustcrypto
graviola-bench/benches/p384.rs::benches::ecdh::p384-ecdh::p384-rustcrypto
0%
5.4 ms
5.4 ms
ring
graviola-bench/benches/p384.rs::benches::ecdsa_verify::p384-ecdsa-verify::ring
0%
3.9 ms
3.9 ms
graviola
graviola-bench/benches/x25519.rs::benches::x25519::x25519-ecdh::graviola
0%
154.9 µs
154.9 µs
dalek
graviola-bench/benches/x25519.rs::benches::x25519::x25519-ecdh::dalek
0%
361.7 µs
361.8 µs
aws-lc-rs
graviola-bench/benches/rsa_priv.rs::benches::rsa2048_pkcs1_sha256_sign::rsa2048-pkcs1-sha256-sign::aws-lc-rs
0%
2.4 ms
2.4 ms
aws-lc-rs
graviola-bench/benches/x25519.rs::benches::x25519::x25519-ecdh::aws-lc-rs
0%
203 µs
203 µs
ring
graviola-bench/benches/p384.rs::benches::ecdh::p384-ecdh::ring
0%
4 ms
4 ms
graviola
graviola-bench/benches/p256.rs::benches::keygen::p256-keygen::graviola
0%
120.7 µs
120.7 µs
rustcrypto[64KB]
graviola-bench/benches/sha2.rs::benches::sha256::sha256::rustcrypto[64KB]
0%
1.1 ms
1.1 ms
ring[16KB]
graviola-bench/benches/aes_gcm.rs::benches::aes256_gcm::aes256-gcm::ring[16KB]
0%
51.3 µs
51.3 µs
aws-lc-rs[64KB]
graviola-bench/benches/sha2.rs::benches::sha256::sha256::aws-lc-rs[64KB]
0%
665.5 µs
665.6 µs
p256-rustcrypto
graviola-bench/benches/p256.rs::benches::keygen::p256-keygen::p256-rustcrypto
0%
568.9 µs
568.9 µs
graviola[16KB]
graviola-bench/benches/aes_gcm.rs::benches::aes256_gcm::aes256-gcm::graviola[16KB]
0%
46.5 µs
46.5 µs
aws-lc-rs[64KB]
graviola-bench/benches/sha2.rs::benches::sha512::sha512::aws-lc-rs[64KB]
0%
484.9 µs
484.9 µs
graviola[16KB]
graviola-bench/benches/aes_gcm.rs::benches::aes128_gcm::aes128-gcm::graviola[16KB]
0%
44.7 µs
44.7 µs
graviola
graviola-bench/benches/p384.rs::benches::ecdh::p384-ecdh::graviola
0%
1.4 ms
1.4 ms
ring
graviola-bench/benches/x25519.rs::benches::x25519::x25519-ecdh::ring
0%
384.2 µs
384.2 µs
aws-lc-rs[16KB]
graviola-bench/benches/aes_gcm.rs::benches::aes256_gcm::aes256-gcm::aws-lc-rs[16KB]
0%
51.4 µs
51.4 µs
aws-lc-rs[16KB]
graviola-bench/benches/aes_gcm.rs::benches::aes128_gcm::aes128-gcm::aws-lc-rs[16KB]
0%
49.7 µs
49.7 µs
ring
graviola-bench/benches/p256.rs::benches::ecdh::p256-ecdh::ring
0%
344.4 µs
344.5 µs
aws-lc-rs
graviola-bench/benches/p256.rs::benches::ecdsa_verify::p256-ecdsa-verify::aws-lc-rs
0%
267.7 µs
267.7 µs
ring
graviola-bench/benches/p256.rs::benches::ecdsa_verify::p256-ecdsa-verify::ring
0%
260.4 µs
260.5 µs
rustcrypto
graviola-bench/benches/p256.rs::benches::ecdsa_sign::p256-ecdsa-sign::rustcrypto
0%
700.6 µs
700.7 µs
rustcrypto[8KB]
graviola-bench/benches/sha2.rs::benches::sha256::sha256::rustcrypto[8KB]
0%
147.9 µs
147.9 µs
aws-lc-rs
graviola-bench/benches/p256.rs::benches::keygen::p256-keygen::aws-lc-rs
0%
136 µs
136 µs
aws-lc-rs[8KB]
graviola-bench/benches/sha2.rs::benches::sha256::sha256::aws-lc-rs[8KB]
0%
89.1 µs
89.1 µs
aws-lc-rs
graviola-bench/benches/p384.rs::benches::ecdsa_sign::p384-ecdsa-sign::aws-lc-rs
0%
435.8 µs
435.9 µs
aws-lc-rs[8KB]
graviola-bench/benches/sha2.rs::benches::sha512::sha512::aws-lc-rs[8KB]
0%
67.6 µs
67.6 µs
graviola
graviola-bench/benches/rsa_pub.rs::benches::rsa2048_pkcs1_sha256_verify::rsa2048-pkcs1-sha256-verify::graviola
0%
87 µs
87 µs
ring
graviola-bench/benches/rsa_pub.rs::benches::rsa2048_pkcs1_sha256_verify::rsa2048-pkcs1-sha256-verify::ring
0%
146.7 µs
146.8 µs
aws-lc-rs[32B]
graviola-bench/benches/sha2.rs::benches::sha512::sha512::aws-lc-rs[32B]
0%
7.9 µs
7.9 µs
rustcrypto[32B]
graviola-bench/benches/sha2.rs::benches::sha256::sha256::rustcrypto[32B]
0%
7.1 µs
7.2 µs
aws-lc-rs[32B]
graviola-bench/benches/sha2.rs::benches::sha256::sha256::aws-lc-rs[32B]
0%
6.7 µs
6.8 µs
aws-lc-rs[32B]
graviola-bench/benches/aes_gcm.rs::benches::aes256_gcm::aes256-gcm::aws-lc-rs[32B]
-1%
5 µs
5.1 µs
aws-lc-rs[32B]
graviola-bench/benches/aes_gcm.rs::benches::aes128_gcm::aes128-gcm::aws-lc-rs[32B]
-1%
5 µs
5 µs
rustcrypto[32B]
graviola-bench/benches/sha2.rs::benches::sha512::sha512::rustcrypto[32B]
-1%
3.9 µs
3.9 µs

Commits

Click on a commit to change the comparison range
base
main
03d2c08
0%
s2n-bignum: unfork, now our fixes are on main
867f3a6
11 days ago
by ctz
ResourcesHomePricingDocsBlogGitHubChangelog
Copyright © 2024 CodSpeed Technology SAS. All rights reserved.