diff options
Diffstat (limited to 'src/lib/tlslite/utils/AES.py')
-rwxr-xr-x | src/lib/tlslite/utils/AES.py | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/lib/tlslite/utils/AES.py b/src/lib/tlslite/utils/AES.py new file mode 100755 index 000000000..8413f4c10 --- /dev/null +++ b/src/lib/tlslite/utils/AES.py @@ -0,0 +1,31 @@ +"""Abstract class for AES.""" + +class AES: + def __init__(self, key, mode, IV, implementation): + if len(key) not in (16, 24, 32): + raise AssertionError() + if mode != 2: + raise AssertionError() + if len(IV) != 16: + raise AssertionError() + self.isBlockCipher = True + self.block_size = 16 + self.implementation = implementation + if len(key)==16: + self.name = "aes128" + elif len(key)==24: + self.name = "aes192" + elif len(key)==32: + self.name = "aes256" + else: + raise AssertionError() + + #CBC-Mode encryption, returns ciphertext + #WARNING: *MAY* modify the input as well + def encrypt(self, plaintext): + assert(len(plaintext) % 16 == 0) + + #CBC-Mode decryption, returns plaintext + #WARNING: *MAY* modify the input as well + def decrypt(self, ciphertext): + assert(len(ciphertext) % 16 == 0)
\ No newline at end of file |