RFR: 8359956: Support algorithm constraints and certificate checks in SunX509 key manager [v12]
Artur Barashev
abarashev at openjdk.org
Mon Jul 21 16:23:03 UTC 2025
> SunX509 key manager should support the same certificate checks that are supported by PKIX key manager.
>
> Effectively there should be only 2 differences between 2 key managers:
> - PKIX supports multiple key stores through KeyStore.Builder interface while SunX509 supports only a single keystore.
> - SunX509 caches its whole key store on initialization thus improving performance. This means that subsequent modifications of the KeyStore have no effect on SunX509 KM, unlike PKIX .
>
> **SUNX509 KeyManager performance before the change**
> 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
>
> **SUNX509 KeyManager performance after the change**
> Benchmark (resume) (tlsVersion) Mode Cnt Score Error Units
> SSLHandshake.doHandshake true TLSv1.2 thrpt 15 20954.399 ± 260.817 ops/s
> SSLHandshake.doHandshake true TLS thrpt 15 1813.401 ± 13.917 ops/s
> SSLHandshake.doHandshake false TLSv1.2 thrpt 15 **1158.190** ± 6.023 ops/s
> SSLHandshake.doHandshake false TLS thrpt 15 **1012.988** ± 10.943 ops/s
Artur Barashev has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains 26 additional commits since the last revision:
- Merge branch 'master' into JDK-8353113
- Add more unit test cases. Some code tweaks.
- Update unit tests. Some code refactoring.
- Update system property name in one more test
- Remove a couple of empty lines
- Make certificate checking toggle specific to SunX509. Update issue number.
- Add more unit tests. Some code refactoring and adjustments.
- Support certificate checks in SunX509 key manager
- Address some review comments
- Merge branch 'master' into JDK-8353113
- ... and 16 more: https://git.openjdk.org/jdk/compare/2966b576...5626eb9d
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/25016/files
- new: https://git.openjdk.org/jdk/pull/25016/files/3edca307..5626eb9d
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=25016&range=11
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=25016&range=10-11
Stats: 99740 lines in 2588 files changed: 64291 ins; 21247 del; 14202 mod
Patch: https://git.openjdk.org/jdk/pull/25016.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/25016/head:pull/25016
PR: https://git.openjdk.org/jdk/pull/25016
More information about the security-dev
mailing list