Upstream version 7.35.144.0
[platform/framework/web/crosswalk.git] / src / third_party / tlslite / tlslite / utils / AES.py
1 """Abstract class for AES."""
2
3 class AES:
4     def __init__(self, key, mode, IV, implementation):
5         if len(key) not in (16, 24, 32):
6             raise AssertionError()
7         if mode != 2:
8             raise AssertionError()
9         if len(IV) != 16:
10             raise AssertionError()
11         self.isBlockCipher = True
12         self.block_size = 16
13         self.implementation = implementation
14         if len(key)==16:
15             self.name = "aes128"
16         elif len(key)==24:
17             self.name = "aes192"
18         elif len(key)==32:
19             self.name = "aes256"
20         else:
21             raise AssertionError()
22
23     #CBC-Mode encryption, returns ciphertext
24     #WARNING: *MAY* modify the input as well
25     def encrypt(self, plaintext):
26         assert(len(plaintext) % 16 == 0)
27
28     #CBC-Mode decryption, returns plaintext
29     #WARNING: *MAY* modify the input as well
30     def decrypt(self, ciphertext):
31         assert(len(ciphertext) % 16 == 0)