> The current key manager is SunX509, which is configured in the java.security. > The SunX509 algorithm does not check the local certificate. The PKIX > algorithm should be preferred now so that the default key manager could be > more robust. > > Compatibility considerations: > > 1) Customers using local certificates signed using algorithms prohibited by > the default configuration (notably MD5 and SHA1) no longer will be able to > use such certificates without modifying algorithm constraints in > `java.security` config file. > > 2) Performance impact: there is about x2 performance decrease for full > (non-resume) TLS handshake: > > **SUNX509** > Benchmark (resume) (tlsVersion) Mode > Cnt Score Error Units > SSLHandshake.doHandshake true TLSv1.2 thrpt 15 19758.012 ± > 758.237 ops/s > SSLHandshake.doHandshake true TLS thrpt 15 1861.695 ± > 14.681 ops/s > SSLHandshake.doHandshake false TLSv1.2 thrpt 15 **1186.962** ± > 12.085 ops/s > SSLHandshake.doHandshake false TLS thrpt 15 **1056.288** ± > 7.197 ops/s > Finished running test 'micro:java.security.SSLHandshake' > > **PKIX** > Benchmark (resume) (tlsVersion) Mode > Cnt Score Error Units > SSLHandshake.doHandshake true TLSv1.2 thrpt 15 19724.887 ± > 393.636 ops/s > SSLHandshake.doHandshake true TLS thrpt 15 1848.927 ± > 22.946 ops/s > SSLHandshake.doHandshake false TLSv1.2 thrpt 15 **511.684** ± > 5.405 ops/s > SSLHandshake.doHandshake false TLS thrpt 15 **490.698** ± > 6.453 ops/s > Finished running test 'micro:java.security.SSLHandshake'
Artur Barashev has updated the pull request incrementally with one additional commit since the last revision: Skip explicit KeyPair initialization and let the provider default set it ------------- Changes: - all: https://git.openjdk.org/jdk/pull/24756/files - new: https://git.openjdk.org/jdk/pull/24756/files/19a2ad1d..e5e83514 Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk&pr=24756&range=01 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=24756&range=00-01 Stats: 1 line in 1 file changed: 0 ins; 1 del; 0 mod Patch: https://git.openjdk.org/jdk/pull/24756.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/24756/head:pull/24756 PR: https://git.openjdk.org/jdk/pull/24756