def generate_csr(self, common_name): # Prepare file system file_name = Utils.normalize_cn(common_name) self._prepare_fs(common_name) # generate private key self._generate_key(file_name) cert_dir = Utils.get_cert_dir(file_name) openssl_args = 'req -new -key {0}/{1}.key -out {0}/{1}.csr -subj'.format(cert_dir, file_name).split() openssl_args.append(self._prepare_subject(common_name)) self.openssl_exec(openssl_args) return Utils.get_csr_as_text(file_name)
def _generate_key(self, file_name): key_size = self.config.get_key_size() cert_dir = Utils.get_cert_dir(file_name) openssl_args = 'genrsa -out {}/{}.key {}'.format(cert_dir, file_name, key_size).split() if self.config.key_encryption_enabled(): openssl_args.insert(1, self.config.get_key_encryption_algorithm()) self.openssl_exec(openssl_args)
def wrapper(*args): return_as_json = args[-1].get('json', False) args[-1].pop('json', None) api_response = method(*args) if api_response.is_successful(): command_response = api_response.get_command_response() if return_as_json is False: logger.info(Utils.pretty_output(command_response)) else: logger.info(json.dumps(command_response, indent=2)) else: logger.error(json.dumps(api_response.get_error(), indent=2)) return api_response
def test_create_directory_returns_true_on_user_overwrite(self, input_mock, makedirs_mock): makedirs_mock.side_effect = EnvironmentError() self.assertTrue(Utils.create_directory('test'))
def test_create_directory_returns_false_on_user_cancel(self, input_mock, makedirs_mock): makedirs_mock.side_effect = EnvironmentError() self.assertFalse(Utils.create_directory('test'))
def test_create_directory_returns_true_on_success(self, makedirs_mock): self.assertTrue(Utils.create_directory('test'))
def test_update_path_returns_path_on_create_directory_success(self, utils_mock): self.assertIsNone(Utils.update_path('test'))
def test_update_path_exists_on_user_cancel(self, utils_mock): with self.assertRaises(SystemExit): Utils.update_path('test')
def test_adds_csr_extension_to_filename_before_reading(self): with mock.patch(open_reference) as mocked_open: Utils.get_csr_as_text('test') call_arg, _ = mocked_open.call_args self.assertTrue(call_arg[0].endswith('test.csr'))
def test_returns_csr_as_text(self): self.assertEqual(Utils.get_csr_as_text('test'), 'base64 data...')
def test_get_cert_dir(self): cert_dir = Utils.get_cert_dir('example.com') self.assertTrue(cert_dir.endswith('ncsslapi/certs/{}/example.com'.format(str(datetime.today().year))))
def test_normalize_cn(self): normalized_common_name = Utils.normalize_cn('*.example.com') self.assertEqual(normalized_common_name, 'STAR_example_com')
def _prepare_fs(file_name): Utils.update_path(file_name)