Skip to content

Commit 18a346a

Browse files
committed
Add test to confirm BCFIPS is working correctly
1 parent d27cfca commit 18a346a

1 file changed

Lines changed: 30 additions & 14 deletions

File tree

  • cloudplatform/connectivity-apache-httpclient4/src/test/java/com/sap/cloud/sdk/cloudplatform/connectivity
Lines changed: 30 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
package com.sap.cloud.sdk.cloudplatform.connectivity;
22

33
import static org.assertj.core.api.Assertions.assertThat;
4+
import static org.assertj.core.api.Assertions.assertThatThrownBy;
45

56
import java.io.FileReader;
67
import java.security.KeyStore;
8+
import java.security.MessageDigest;
9+
import java.security.NoSuchAlgorithmException;
710
import java.security.Security;
811

912
import org.bouncycastle.crypto.CryptoServicesRegistrar;
@@ -16,11 +19,12 @@
1619
import lombok.SneakyThrows;
1720

1821
/**
19-
* Regression guard for the P1 fix: asserts that {@code KeyStoreReader.createKeyStore()} produces a PKCS12 keystore.
20-
* Run with {@code mvn test -P fips-approved}.
22+
* Regression guard for the P1 fix: asserts that {@code KeyStoreReader.createKeyStore()} produces a PKCS12 keystore. Run
23+
* with {@code mvn test -P fips-approved}.
2124
*/
22-
@Tag("fips-approved")
23-
class FipsProviderTest {
25+
@Tag( "fips-approved" )
26+
class FipsProviderTest
27+
{
2428
private static final String RES = "src/test/resources/ClientCertificateAuthenticationLocalTest";
2529
private static final String CRT_PATH = RES + "/client-cert.crt";
2630
private static final String KEY_PATH = RES + "/client-cert.key";
@@ -34,22 +38,34 @@ static void removeBouncyCastleFips()
3438
}
3539

3640
@BeforeAll
37-
static void registerBouncyCastleFips() {
38-
Security.insertProviderAt(new BouncyCastleFipsProvider("C:DEFRND[SHA256];ENABLE{ALL}"), 1);
41+
static void registerBouncyCastleFips()
42+
{
43+
Security.insertProviderAt(new BouncyCastleFipsProvider(), 1);
3944

40-
assertThat(Security.getProvider("BCFIPS")).describedAs("BC FIPS provider must be registered as a JCA provider").isNotNull();
45+
assertThat(Security.getProvider("BCFIPS"))
46+
.describedAs("BC FIPS provider must be registered as a JCA provider")
47+
.isNotNull();
4148

42-
assertThat(CryptoServicesRegistrar.isInApprovedOnlyMode()).describedAs("BC FIPS must be in approved-only mode. " + "Ensure -Dorg.bouncycastle.fips.approved_only=true is set (done by the fips-approved Maven profile).").isTrue();
49+
assertThat(CryptoServicesRegistrar.isInApprovedOnlyMode())
50+
.describedAs("BC FIPS must be in approved-only mode. ")
51+
.isTrue();
4352
}
4453

45-
/**
46-
* Regression guard for the P1 fix: verifies that {@code KeyStoreReader.createKeyStore()} produces a PKCS12
47-
*/
4854
@Test
4955
@SneakyThrows
50-
void keystoreTypeIsP12() {
51-
final KeyStore keyStore = KeyStoreReader.createKeyStore(ALIAS, EMPTY_PASSWORD, new FileReader(CRT_PATH), new FileReader(KEY_PATH));
56+
void keystoreTypeIsP12()
57+
{
58+
final KeyStore keyStore =
59+
KeyStoreReader.createKeyStore(ALIAS, EMPTY_PASSWORD, new FileReader(CRT_PATH), new FileReader(KEY_PATH));
5260

5361
assertThat(keyStore.getType()).isEqualTo("PKCS12");
5462
}
55-
}
63+
64+
@Test
65+
void md5IsRejectedInApprovedOnlyMode()
66+
{
67+
assertThatThrownBy(() -> MessageDigest.getInstance("MD5", "BCFIPS"))
68+
.isInstanceOf(NoSuchAlgorithmException.class);
69+
70+
}
71+
}

0 commit comments

Comments
 (0)