Version 1.7.0
paragonie-scott
released this
22 Sep 04:15
·
352 commits
to master
since this release
- Improved performance on 32-bit and 64-bit platforms by reducing the number of cycles needed for constant-time multiplication in our Curve25519 and Poly1305 implementations. The actual numbers will vary depending on machine jitter. That being said:
- 32-bit:
- Curve25519 should be to 10% faster than in
v1.6.6
- Poly1305 should be up to 25% faster than in
v1.6.6
- Curve25519 should be to 10% faster than in
- 64-bit (these numbers are mostly irrelevant if you already set
ParagonIE_Sodium_Compat::$fastMult
totrue
):- Curve25519 should be to 15% faster than in
v1.6.6
- Poly1305 should be up to 20% faster than in
v1.6.6
- Curve25519 should be to 15% faster than in
- 32-bit:
- Removed dead code (including the Field Element constructor, which was a vestige of an earlier design; Field Elements always have 10 integers in them).
- Comments, docblocks, and whitespace consistency.
This should be the last release for a while. A hypothetical v1.8.0 would include optional GMP support (which should get performance closer to what libsodium itself offers, and should be available to both 32-bit and 64-bit platforms).
That being said, we're much happier with the stability and performance of ParagonIE_Sodium_Core32_*
than we were with v1.6.0
.
I'd like to thank everyone who has reported bugs, sent patches, or shared optimization strategies with our team over the years. You've helped to bring open source, state-of-the-art cryptography to the hands every PHP developer (one way or another) and had an immeasurable positive impact on many software developer ecosystems. You all rock!