WebSphere Application Server & Liberty

WebSphere Application Server & Liberty

Join this online group to communicate across IBM product users and experts by sharing advice and best practices with peers and staying up to date regarding product enhancements.

 View Only

What algorithm to use for KeyManagerFactory: PKIX or SunX509?

By Emily Jiang posted Wed January 28, 2026 10:19 AM

  

PKIX vs SunX509

PKIX is not the default KeyManagerFactory algorithm in OpenJDK, and both Semeru and Liberty intentionally align with upstream behaviour. SunX509 remains the default—even in FIPS mode—unless explicitly overridden.

PKIX executes the full RFC5280 path validation logic, which includes extended policy evaluation and CRL/OCSP behaviour. NIST’s PKITS test suite illustrates the complexity of PKIX‑compliant validation paths. [docs.oracle.com]

In contrast:

  • SunX509 uses a simplified certificate chain validation flow intended for performance and compatibility. [datatracker.ietf.org]
  • SunX509 also caches the entire keystore at initialization (a documented OpenJDK behaviour), which reduces repeated lookup cost during handshake processing. [ibm.com]

These differences might explain the benchmark results showing that PKIX can introduce a noticeable performance overhead (~2× in some scenarios) mentioned in this PR. The upstream references above document the underlying algorithmic differences even though OpenJDK does not provide explicit benchmarks.

Because workload characteristics vary (e.g., chain depth, CRL usage, handshake rate), organisations should validate PKIX behaviour in their environments before adopting it.

Enabling FIPS 140-3 in Liberty inserts the FIPS‑validated crypto providers but does not modify OpenJDK’s default TrustManagerFactory (PKIX) or KeyManagerFactory (SunX509) algorithms. This aligns with both Semeru’s and upstream OpenJDK’s design. If PKIX is desired for KeyManager, it can be easily configured via the property ssl.KeyManagerFactory.algorithm=PKIX in the file java.security. 

0 comments
3 views

Permalink