Hi All,
Please review changes to the following performance improvement:
https://bugs.openjdk.java.net/browse/JDK-8132330
Webrev: http://cr.openjdk.java.net/~skuksenko/crypto/8132330/webrev.02/
Sponsorship is required.
------
Currently sun.security.rsa.RSAPadding::padV15 uses fixed size (64 bytes)
buffer for obtaining random bytes from SecureRandom.
Here we got two sources of inefficiency:
- when length of required padding is greater than 64 -> several calls of
SecureRandom.nextBytes are required that increases contention blocking
on SecureRandom
- when length of required padding is less than 64 it causes unnecessary
overhead (e.g. nextBytes for 16 bytes is 4x times faster than for 64 bytes)
Suggested performance improvement shows RSA encoding (public key) speedup:
- 10%-18% when NativePRNG SecureRandom is used,
- 5%-7% when SHA1PRNG is used.
--
Best regards,
Sergey Kuksenko