Skip to content

@paragonie-scott paragonie-scott released this Sep 22, 2018 · 78 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
    • 64-bit (these numbers are mostly irrelevant if you already set ParagonIE_Sodium_Compat::$fastMult to true):
      • Curve25519 should be to 15% faster than in v1.6.6
      • Poly1305 should be up to 20% faster than in v1.6.6
  • 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!

Assets 4
You can’t perform that action at this time.