diff options
Diffstat (limited to 'cryptography/primitives/block/ciphers.py')
-rw-r--r-- | cryptography/primitives/block/ciphers.py | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/cryptography/primitives/block/ciphers.py b/cryptography/primitives/block/ciphers.py index cf54aa35..4ac150a4 100644 --- a/cryptography/primitives/block/ciphers.py +++ b/cryptography/primitives/block/ciphers.py @@ -17,7 +17,7 @@ from __future__ import absolute_import, division, print_function class AES(object): name = "AES" block_size = 128 - key_sizes = set([128, 192, 256]) + key_sizes = frozenset([128, 192, 256]) def __init__(self, key): super(AES, self).__init__() @@ -32,3 +32,23 @@ class AES(object): @property def key_size(self): return len(self.key) * 8 + + +class Camellia(object): + name = "camellia" + block_size = 128 + key_sizes = frozenset([128, 192, 256]) + + def __init__(self, key): + super(Camellia, self).__init__() + self.key = key + + # Verify that the key size matches the expected key size + if self.key_size not in self.key_sizes: + raise ValueError("Invalid key size ({0}) for {1}".format( + self.key_size, self.name + )) + + @property + def key_size(self): + return len(self.key) * 8 |