1010import socket
1111
1212from ducktape .cluster .cluster import ClusterNode
13- from ducktape .mark import matrix
1413from ducktape .services .service import Service
14+ from rptest .utils .mode_checks import skip_fips_mode
1515from rptest .clients .rpk import RpkTool
1616from rptest .services .admin import Admin
1717from rptest .services .cluster import cluster
2121
2222
2323class P12TLSProvider (TLSProvider ):
24- def __init__ (self , tls : TLSCertManager , use_pkcs12 : bool ):
24+ def __init__ (self , tls : TLSCertManager ):
2525 self .tls = tls
26- self .use_pkcs12 = use_pkcs12
2726
2827 @property
2928 def ca (self ) -> CertificateAuthority :
@@ -40,7 +39,7 @@ def create_service_client_cert(self, _: Service, name: str) -> Certificate:
4039 common_name = name )
4140
4241 def use_pkcs12_file (self ) -> bool :
43- return self . use_pkcs12
42+ return True
4443
4544 def p12_password (self , node : ClusterNode ) -> str :
4645 assert node .name in self .tls .certs , f"No certificate associated with node { node .name } "
@@ -63,9 +62,9 @@ def setUp(self):
6362 # Skip set up to allow test to control how Redpanda's TLS settings are configured
6463 pass
6564
66- def _prepare_cluster (self , use_pkcs12 : bool ):
65+ def _prepare_cluster (self ):
6766 self .tls = TLSCertManager (self .logger )
68- self .provider = P12TLSProvider (self .tls , use_pkcs12 )
67+ self .provider = P12TLSProvider (self .tls )
6968 self .user_cert = self .tls .create_cert (socket .gethostname (),
7069 common_name = "walterP" ,
7170 name = "user" )
@@ -86,13 +85,18 @@ def _prepare_cluster(self, use_pkcs12: bool):
8685 self .admin .create_user ("walterP" , self .password , self .algorithm )
8786 self .rpk = RpkTool (self .redpanda , tls_cert = self .user_cert )
8887
88+ # This should be revisited when OpenSSL has been upgraded to 3.4+
89+ # Until then, the pkcs#12 file generated by OpenSSL is not FIPS compliant
90+ # as it uses the PKCS12KDF MAC which is not an approved FIPS algorithm.
91+ # Some further reading can be found here:
92+ # https://www.redhat.com/en/blog/fips-140-3-changes-pkcs-12
93+ @skip_fips_mode
8994 @cluster (num_nodes = 3 )
90- @matrix (use_pkcs12 = [True , False ])
91- def test_smoke (self , use_pkcs12 : bool ):
95+ def test_smoke (self ):
9296 """
9397 Simple smoke test to verify that the PKCS12 file is being used
9498 """
95- self ._prepare_cluster (use_pkcs12 )
99+ self ._prepare_cluster ()
96100 TOPIC_NAME = "foo"
97101 self .rpk .create_topic (TOPIC_NAME )
98102 topics = [t for t in self .rpk .list_topics ()]
0 commit comments