From e80a6010ee92779b2668c9766311dd59234ebaf1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CFernando?= Date: Wed, 21 Oct 2015 23:54:04 -0500 Subject: [PATCH] Fix typo and add name to not_implemented and mock key_manager Fixes a typo, and adds the name parameter to the functions in the not_imlemented_key_manager and mock_key_manager. Change-Id: Ic0954325750782e830f597969278ce1c257263b1 --- .../key_manager/not_implemented_key_manager.py | 5 +++-- .../tests/unit/key_manager/mock_key_manager.py | 18 ++++++++++++------ .../unit/key_manager/test_mock_key_manager.py | 12 +++++++++++- 3 files changed, 26 insertions(+), 9 deletions(-) diff --git a/castellan/key_manager/not_implemented_key_manager.py b/castellan/key_manager/not_implemented_key_manager.py index 425f71cf..b4f32ad1 100644 --- a/castellan/key_manager/not_implemented_key_manager.py +++ b/castellan/key_manager/not_implemented_key_manager.py @@ -29,10 +29,11 @@ class NotImplementedKeyManager(key_manager.KeyManager): super(NotImplementedKeyManager, self).__init__(configuration) def create_key(self, context, algorithm='AES', length=256, - expiration=None, **kwargs): + expiration=None, name=None, **kwargs): raise NotImplementedError() - def create_key_pair(self, context, algorithm, lengthm, expiration=None): + def create_key_pair(self, context, algorithm, length, + expiration=None, name=None): raise NotImplementedError() def store(self, context, managed_object, expiration=None, **kwargs): diff --git a/castellan/tests/unit/key_manager/mock_key_manager.py b/castellan/tests/unit/key_manager/mock_key_manager.py index d4f56c83..97c95854 100644 --- a/castellan/tests/unit/key_manager/mock_key_manager.py +++ b/castellan/tests/unit/key_manager/mock_key_manager.py @@ -64,12 +64,14 @@ class MockKeyManager(key_manager.KeyManager): return hex_encoded def _generate_key(self, **kwargs): + name = kwargs.get('name', None) key_length = kwargs.get('key_length', 256) _hex = self._generate_hex_key(key_length) return sym_key.SymmetricKey( 'AES', key_length, - bytes(binascii.unhexlify(_hex))) + bytes(binascii.unhexlify(_hex)), + name) def create_key(self, context, **kwargs): """Creates a symmetric key. @@ -84,7 +86,7 @@ class MockKeyManager(key_manager.KeyManager): key = self._generate_key(**kwargs) return self.store(context, key) - def _generate_public_and_private_key(self, length): + def _generate_public_and_private_key(self, length, name): crypto_private_key = rsa.generate_private_key( public_exponent=65537, key_size=length, @@ -104,16 +106,19 @@ class MockKeyManager(key_manager.KeyManager): private_key = pri_key.PrivateKey( algorithm='RSA', bit_length=length, - key=bytearray(private_der)) + key=bytearray(private_der), + name=name) public_key = pub_key.PublicKey( algorithm='RSA', bit_length=length, - key=bytearray(public_der)) + key=bytearray(public_der), + name=name) return private_key, public_key - def create_key_pair(self, context, algorithm, length, expiration=None): + def create_key_pair(self, context, algorithm, length, + expiration=None, name=None): """Creates an asymmetric key pair. This implementation returns UUIDs for the created keys in the order: @@ -134,7 +139,8 @@ class MockKeyManager(key_manager.KeyManager): length, valid_lengths) raise ValueError(msg) - private_key, public_key = self._generate_public_and_private_key(length) + private_key, public_key = self._generate_public_and_private_key(length, + name) private_key_uuid = self.store(context, private_key) public_key_uuid = self.store(context, public_key) diff --git a/castellan/tests/unit/key_manager/test_mock_key_manager.py b/castellan/tests/unit/key_manager/test_mock_key_manager.py index 94c800b3..58a2dc7f 100644 --- a/castellan/tests/unit/key_manager/test_mock_key_manager.py +++ b/castellan/tests/unit/key_manager/test_mock_key_manager.py @@ -66,14 +66,21 @@ class MockKeyManagerTestCase(test_key_mgr.KeyManagerTestCase): key = self.key_mgr.get(self.context, key_id) self.assertEqual(length / 8, len(key.get_encoded())) + def test_create_key_with_name(self): + name = 'my key' + key_id = self.key_mgr.create_key(self.context, name=name) + key = self.key_mgr.get(self.context, key_id) + self.assertEqual(name, key.name) + def test_create_key_null_context(self): self.assertRaises(exception.Forbidden, self.key_mgr.create_key, None) def test_create_key_pair(self): for length in [2048, 3072, 4096]: + name = str(length) + ' key' private_key_uuid, public_key_uuid = self.key_mgr.create_key_pair( - self.context, 'RSA', length) + self.context, 'RSA', length, name=name) private_key = self.key_mgr.get(self.context, private_key_uuid) public_key = self.key_mgr.get(self.context, public_key_uuid) @@ -81,6 +88,9 @@ class MockKeyManagerTestCase(test_key_mgr.KeyManagerTestCase): crypto_private_key = get_cryptography_private_key(private_key) crypto_public_key = get_cryptography_public_key(public_key) + self.assertEqual(name, private_key.name) + self.assertEqual(name, public_key.name) + self.assertEqual(length, crypto_private_key.key_size) self.assertEqual(length, crypto_public_key.key_size)