Added a native extension in pure C for modular exponentiation, optimized for SSE2 on x86.
In the process, we drop support for the arbitrary arithmetic library MPIR
on Windows, which is painful to compile and deploy.
The custom modular exponentiation is 130% (160%) slower on an Intel CPU in 32-bit (64-bit) mode,
compared to MPIR. Still, that is much faster that CPython's own pow() function which
is 900% (855%) slower than MPIR. Support for the GMP library on Unix remains.
Added support for manylinux wheels.
Support for Python 3.7.
Resolved issues
The DSA parameter 'p' prime was created with 255 bits cleared
(but still with the correct strength).
GH106. Not all docs were included in the tar ball.
Thanks to Christopher Hoskin.
GH109. ECDSA verification failed for DER encoded signatures.
Thanks to Alastair Houghton.
Human-friendly messages for padding errors with ECB and CBC.
Updates
Here's a list of all the updates bundled in this pull request. I've added some links to make it easier for you to find all the information you need.
Changelogs
pycryptodome 3.4.7 -> 3.4.8
That's it for now!
Happy merging! 🤖