mockserver icon indicating copy to clipboard operation
mockserver copied to clipboard

Support BouncyCastle FIPS library

Open artik00 opened this issue 2 years ago • 2 comments

Describe the feature request Currently mockserver uses bcprov-jdk18on library, when using a client to communicate with mockserver, which usesbc-fips library , it crashes with :

2023-07-06 22:43:16 java.lang.NoSuchFieldError: blake3_256
2023-07-06 22:43:16 	at org.bouncycastle.jcajce.provider.digest.Blake3$Mappings.configure(Unknown Source)
2023-07-06 22:43:16 	at org.bouncycastle.jce.provider.BouncyCastleProvider.loadServiceClass(BouncyCastleProvider.java:289)
2023-07-06 22:43:16 	at org.bouncycastle.jce.provider.BouncyCastleProvider.loadAlgorithms(BouncyCastleProvider.java:256)
2023-07-06 22:43:16 	at org.bouncycastle.jce.provider.BouncyCastleProvider.setup(BouncyCastleProvider.java:178)
2023-07-06 22:43:16 	at org.bouncycastle.jce.provider.BouncyCastleProvider.access$000(BouncyCastleProvider.java:68)
2023-07-06 22:43:16 	at org.bouncycastle.jce.provider.BouncyCastleProvider$1.run(BouncyCastleProvider.java:170)
2023-07-06 22:43:16 	at java.base/java.security.AccessController.doPrivileged(Native Method)
2023-07-06 22:43:16 	at org.bouncycastle.jce.provider.BouncyCastleProvider.<init>(BouncyCastleProvider.java:166)
2023-07-06 22:43:16 	at org.mockserver.socket.tls.bouncycastle.BCKeyAndCertificateFactory.<clinit>(BCKeyAndCertificateFactory.java:55)
2023-07-06 22:43:16 	at org.mockserver.socket.tls.KeyAndCertificateFactoryFactory.createKeyAndCertificateFactory(KeyAndCertificateFactoryFactory.java:27)
2023-07-06 22:43:16 	at org.mockserver.socket.tls.NettySslContextFactory.<init>(NettySslContextFactory.java:79)
2023-07-06 22:43:16 	at org.mockserver.client.MockServerClient.getNettyHttpClient(MockServerClient.java:341)
2023-07-06 22:43:16 	at org.mockserver.client.MockServerClient.sendRequest(MockServerClient.java:392)
2023-07-06 22:43:16 	at org.mockserver.client.MockServerClient.sendRequest(MockServerClient.java:428)
2023-07-06 22:43:16 	at org.mockserver.client.MockServerClient.hasStarted(MockServerClient.java:583)
2023-07-06 22:43:16 	at org.mockserver.client.MockServerClient.hasStarted(MockServerClient.java:575)

What you are trying to do Currently only using bcprov-jdk* libraries work

The solution you'd like An option which library to use wether bc fips certified or regular.

Describe alternatives you've considered No alternative as of now.

Similar issue that was reported.

Thank you!

artik00 avatar Jul 10 '23 20:07 artik00

If you don't need to support TLS/SSL in your tests you can get away with:

static {
        KeyAndCertificateFactoryFactory.setCustomKeyAndCertificateFactorySupplier((logger, isServerInstance, configuration) -> null);
}

krm1312 avatar Sep 18 '23 21:09 krm1312