示例#1
0
    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)
示例#2
0
 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)
示例#3
0
 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
示例#4
0
 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'))
示例#5
0
 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'))
示例#6
0
 def test_create_directory_returns_true_on_success(self, makedirs_mock):
     self.assertTrue(Utils.create_directory('test'))
示例#7
0
 def test_update_path_returns_path_on_create_directory_success(self, utils_mock):
     self.assertIsNone(Utils.update_path('test'))
示例#8
0
 def test_update_path_exists_on_user_cancel(self, utils_mock):
     with self.assertRaises(SystemExit):
         Utils.update_path('test')
示例#9
0
 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'))
示例#10
0
 def test_returns_csr_as_text(self):
     self.assertEqual(Utils.get_csr_as_text('test'), 'base64 data...')
示例#11
0
 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))))
示例#12
0
 def test_normalize_cn(self):
     normalized_common_name = Utils.normalize_cn('*.example.com')
     self.assertEqual(normalized_common_name, 'STAR_example_com')
示例#13
0
 def _prepare_fs(file_name):
     Utils.update_path(file_name)