def test_create_truststore_single(self): store_filename = os.path.join( gettempdir(), 'truststore-' + ''.join(random.choice(string.digits) for _ in range(20)) + '.jks') toolkits.create_truststore(TRUSTED_CERT_PEM, store_filepath=store_filename) assert os.path.isfile(store_filename)
def test_create_truststore_file_list(self): store_filename = os.path.join( gettempdir(), 'truststore-' + ''.join(random.choice(string.digits) for _ in range(20)) + '.jks') toolkits.create_truststore([self.ca_crt_file, self.client_ca_crt_file], store_filepath=store_filename, store_passwd="abcdef") assert os.path.isfile(store_filename)
def test_create_truststore_list(self): store_filename = os.path.join( gettempdir(), 'truststore-' + ''.join(random.choice(string.digits) for _ in range(20)) + '.jks') toolkits.create_truststore([TRUSTED_CERT_PEM, CLIENT_CA_CERT_PEM], store_filepath=store_filename, store_passwd=None) assert os.path.isfile(store_filename)
def test_extend_truststore_file_list(self): store_filename = os.path.join( gettempdir(), 'truststore-' + ''.join(random.choice(string.digits) for _ in range(20)) + '.jks') store_passwd = toolkits.create_truststore( [self.client_ca_crt_file], store_filepath=store_filename) assert os.path.isfile(store_filename) new_aliases = toolkits.extend_truststore( [self.ca_crt_file, self.client_ca_crt_file], store_filepath=store_filename, store_passwd=store_passwd) assert len(new_aliases) == 2
def create_spl_params(self, topology) -> dict: spl_params = dict() if self.trusted_certs: if self.truststore: print("adding trusted certificate(s) to truststore: " + self.truststore) extend_truststore(self.trusted_certs, self.truststore, self.truststore_password) else: # create truststore with given certificates truststore_basename = 'truststore-' + _generate_random_digits( 16) + '.jks' truststore_filepath = os.path.join(gettempdir(), truststore_basename) print("adding trusted certificate(s) to new truststore: " + truststore_filepath) truststore_pass = create_truststore(self.trusted_certs, truststore_filepath) print("truststore password is: " + truststore_pass) topology.add_file_dependency(truststore_filepath, 'etc') spl_params['trustStore'] = 'etc/' + truststore_basename spl_params['trustStorePassword'] = truststore_pass if self.truststore: topology.add_file_dependency(self.truststore, 'etc') spl_params['trustStore'] = 'etc/' + os.path.basename( self.truststore) spl_params['trustStorePassword'] = self.truststore_password if self.client_cert: if self.keystore: print("adding client cert and key to keystore: " + self.keystore) extend_keystore(self.client_cert, self.client_private_key, self.keystore, self.keystore_password) else: # create keystore with given certificate and key keystore_basename = 'keystore-' + _generate_random_digits( 16) + '.jks' keystore_filepath = os.path.join(gettempdir(), keystore_basename) print("adding client certificate and key to new keystore: " + keystore_filepath) keystore_pass = create_keystore(self.client_cert, self.client_private_key, keystore_filepath) print("keystore password is: " + keystore_pass) topology.add_file_dependency(keystore_filepath, 'etc') spl_params['keyStore'] = 'etc/' + keystore_basename spl_params['keyStorePassword'] = keystore_pass if self.keystore: topology.add_file_dependency(self.keystore, 'etc') spl_params['keyStore'] = 'etc/' + os.path.basename(self.keystore) spl_params['keyStorePassword'] = self.keystore_password spl_params['serverURI'] = self.server_uri spl_params['keepAliveInterval'] = self.keep_alive_seconds spl_params['reconnectionBound'] = self.reconnection_bound if self.reconnection_bound != 0: spl_params['period'] = streamsx.spl.types.int64(30) if self.app_config_name: spl_params['appConfigName'] = self.app_config_name spl_params[ 'passwordPropName'] = MQTTComposite._APP_CONFIG_PROP_NAME_FOR_PASSWORD spl_params[ 'userPropName'] = MQTTComposite._APP_CONFIG_PROP_NAME_FOR_USERNAME if self.username: spl_params['userID'] = self.username if self.password: spl_params['password'] = self.password if self.client_id: spl_params['clientID'] = self.client_id if self.command_timeout_millis is not None: spl_params['commandTimeout'] = streamsx.spl.types.int64( self.command_timeout_millis) if self.ssl_protocol: spl_params['sslProtocol'] = self.ssl_protocol if self.vm_arg or self.ssl_debug: vmargs = [] if isinstance(self.vm_arg, list): vmargs.extend(self.vm_arg) elif isinstance(self.vm_arg, str): vmargs.append(self.vm_arg) if self.ssl_debug: vmargs.append('-Djavax.net.debug=all') spl_params['vmArg'] = vmargs return spl_params