Skip to content

Commit f9d93c5

Browse files
committed
feat: add support for FIPS bouncy castle kubernetes-client#3590
Prefer FIPS version of bouncy castle if available. Otherwise, fallback to non FIPS version.
1 parent ad0acd8 commit f9d93c5

File tree

1 file changed

+21
-1
lines changed

1 file changed

+21
-1
lines changed

util/src/main/java/io/kubernetes/client/util/SSLUtils.java

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import java.security.KeyStoreException;
2525
import java.security.NoSuchAlgorithmException;
2626
import java.security.PrivateKey;
27+
import java.security.Provider;
2728
import java.security.Security;
2829
import java.security.UnrecoverableKeyException;
2930
import java.security.cert.Certificate;
@@ -42,8 +43,27 @@
4243
import org.bouncycastle.util.io.pem.PemWriter;
4344

4445
public class SSLUtils {
46+
4547
static {
46-
Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());
48+
Provider provider;
49+
try {
50+
Class clazz = getProvider();
51+
provider = (Provider) clazz.getDeclaredConstructor(null).newInstance();
52+
} catch (Exception e) {
53+
throw new RuntimeException(e);
54+
}
55+
56+
Security.addProvider(provider);
57+
}
58+
59+
public static Class getProvider() throws ClassNotFoundException {
60+
Class clazz;
61+
try {
62+
clazz = Class.forName("org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider");
63+
} catch(ClassNotFoundException cnf) {
64+
clazz = Class.forName("org.bouncycastle.jce.provider.BouncyCastleProvider");
65+
}
66+
return clazz;
4767
}
4868

4969
public static boolean isNotNullOrEmpty(String val) {

0 commit comments

Comments
 (0)