Is there a practical way to determine which JCE crypto providers are used?

We have configured the Java product to use only RSA JCE cryptographic services certified by FIPS. However, the product will not work if only RSA libraries are listed in java.security. Therefore, something is requesting non-FIPS algorithms from another provider.

In the process of elimination, we can say which banks are necessary for successful work, but this does not tell us which algorithms are requested or by whom.

This seems like a frequently asked question, but obviously we have not stumbled upon the correct documentation or the Google search bar: is there any reliable, convenient and consistent mechanism for determining which JCE providers are used in the running instance of the JVM

+5
source share
4 answers

I suggest you implement your own ClassLoader and have log debugging information.

Although, I'm not sure if this will let you know about each class that FooJCEProvider loads, not just the first class to load FooJCEProvider.

jconsole? " MBean Verbose, "

+1

As Bruno stated, you can go through all the suppliers.

At run time, you can check which provider uses your Cipher using the getProvider method .

+1
source

Does System.setProperty("javax.net.debug","all")anything useful help you?

0
source

All Articles