summaryrefslogtreecommitdiff
path: root/cesar/maximus/python/lib/mmentry/aes128/AES.py
diff options
context:
space:
mode:
Diffstat (limited to 'cesar/maximus/python/lib/mmentry/aes128/AES.py')
-rw-r--r--cesar/maximus/python/lib/mmentry/aes128/AES.py31
1 files changed, 31 insertions, 0 deletions
diff --git a/cesar/maximus/python/lib/mmentry/aes128/AES.py b/cesar/maximus/python/lib/mmentry/aes128/AES.py
new file mode 100644
index 0000000000..8413f4c109
--- /dev/null
+++ b/cesar/maximus/python/lib/mmentry/aes128/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