diff options
author | David Reid <dreid@dreid.org> | 2014-04-12 09:01:21 -0400 |
---|---|---|
committer | David Reid <dreid@dreid.org> | 2014-04-12 09:01:21 -0400 |
commit | 762f660a93921abfbc82faa3a02a385810dde9dd (patch) | |
tree | fc47c36b0ab7ea46f9adfa6fcf6208c6d566e126 /cryptography | |
parent | ec53c7158e6b879f0706ef0360556c6a0e768fa4 (diff) | |
parent | 7e914c90611a2fc6c62d4697d40d0215dc33ce57 (diff) | |
download | cryptography-762f660a93921abfbc82faa3a02a385810dde9dd.tar.gz cryptography-762f660a93921abfbc82faa3a02a385810dde9dd.tar.bz2 cryptography-762f660a93921abfbc82faa3a02a385810dde9dd.zip |
Merge pull request #908 from reaperhulk/seed-support
SEED support
Diffstat (limited to 'cryptography')
-rw-r--r-- | cryptography/hazmat/backends/openssl/backend.py | 8 | ||||
-rw-r--r-- | cryptography/hazmat/primitives/ciphers/algorithms.py | 15 |
2 files changed, 22 insertions, 1 deletions
diff --git a/cryptography/hazmat/backends/openssl/backend.py b/cryptography/hazmat/backends/openssl/backend.py index bbcfa327..021ce8c4 100644 --- a/cryptography/hazmat/backends/openssl/backend.py +++ b/cryptography/hazmat/backends/openssl/backend.py @@ -35,7 +35,7 @@ from cryptography.hazmat.primitives.asymmetric.padding import ( MGF1, PKCS1v15, PSS ) from cryptography.hazmat.primitives.ciphers.algorithms import ( - AES, ARC4, Blowfish, CAST5, Camellia, IDEA, TripleDES + AES, ARC4, Blowfish, CAST5, Camellia, IDEA, SEED, TripleDES ) from cryptography.hazmat.primitives.ciphers.modes import ( CBC, CFB, CTR, ECB, GCM, OFB @@ -167,6 +167,12 @@ class Backend(object): mode_cls, GetCipherByName("bf-{mode.name}") ) + for mode_cls in [CBC, CFB, OFB, ECB]: + self.register_cipher_adapter( + SEED, + mode_cls, + GetCipherByName("seed-{mode.name}") + ) for cipher_cls, mode_cls in itertools.product( [CAST5, IDEA], [CBC, OFB, CFB, ECB], diff --git a/cryptography/hazmat/primitives/ciphers/algorithms.py b/cryptography/hazmat/primitives/ciphers/algorithms.py index 2d37e0cf..52daf178 100644 --- a/cryptography/hazmat/primitives/ciphers/algorithms.py +++ b/cryptography/hazmat/primitives/ciphers/algorithms.py @@ -130,3 +130,18 @@ class IDEA(object): @property def key_size(self): return len(self.key) * 8 + + +@utils.register_interface(interfaces.BlockCipherAlgorithm) +@utils.register_interface(interfaces.CipherAlgorithm) +class SEED(object): + name = "SEED" + block_size = 128 + key_sizes = frozenset([128]) + + def __init__(self, key): + self.key = _verify_key_size(self, key) + + @property + def key_size(self): + return len(self.key) * 8 |