Hi All,

When I am trying to add a device, ibm the Datapower Managementperspective in Eclipse tool getting the below error.

Updating version information - Error
cause:java.security.NoSuchAlgorithmException:IbmX509 KeyManagerfactory not available

Any idea, about this error. We are not getting any clue on this error.

We added the certificate to the keystore also before doing this.
Added the certificate to keystore (..\..\bin\keytool.exe -import -alias dproot -file \tmp\rootca-
cert.pem -keystore cacerts ).

Dani AI

Generated

A short, practical diagnosis and checklist.

This kind of failure almost always means the IDE/runtime is asking for a vendor-specific KeyManagerFactory algorithm that the JVM in use does not provide. First, confirm exactly which Java runtime Eclipse is using (the JVM path in eclipse.ini or Installed JREs) and what algorithm that JVM exposes. A quick way to check from the same JVM the plugin uses is to run a tiny snippet that prints the default algorithm and java.home:

System.out.println(javax.net.ssl.KeyManagerFactory.getDefaultAlgorithm());
System.out.println(System.getProperty("java.home"));

The default algorithm name is driven by the ssl.KeyManagerFactory.algorithm security property and differs between IBM and Oracle/OpenJDK runtimes. (docs.oracle.com)

Concrete next steps

  • Make sure the certificate was imported into the truststore used by that exact JVM (look under <java.home>/lib/security/cacerts). Editing the global java.security file or importing into the wrong JRE is a very common source of confusion. (docs.oracle.com)
  • If the plugin expects an IBM JSSE algorithm, either run Eclipse with an IBM JRE (set -vm in eclipse.ini to the IBM javaw) or change the JVM security property so the default algorithm matches what the plugin can use. The JSSE security property can be set in <java-home>/lib/security/java.security or dynamically with Security.setProperty("ssl.KeyManagerFactory.algorithm","SunX509") before JSSE initialization — but note this affects the whole JVM and requires a restart. (docs.oracle.com)

Diagnostics to paste back here

If the problem persists, run this to show available provider algorithms and paste the output (it helps avoid guessing):

for (java.security.Provider p : java.security.Security.getProviders()) {
  System.out.println(p.getName());
  for (java.security.Provider.Service s : p.getServices()) {
    if ("KeyManagerFactory".equals(s.getType())) System.out.println("  " + s.getAlgorithm());
  }
}

Providing the small outputs requested above (default algorithm, java.home, provider list) and the full stack trace that requested will make a precise fix possible. A vendor-agnostic programmatic approach is to use KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm()) so code does not hardcode vendor names. (stackoverflow.com)

Recommended Answers

All 2 Replies

Can you post the full log and exception stack?

HI, Did you get a solution for the above problem?
I have the same issue too.
The very same error.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.