Example #1
0
 def decrypt2(self, text):
     """Decrypts encrypted 'text' with a expanded key using implemented AES algorithm"""
     text = base64.b64decode(text)
     iv = text[:AES.block_size]
     key=aes.expand_key(self.key)
     plaintext = aes.decrypt(key,iv,text[AES.block_size:])
     return plaintext.rstrip(b"\0")
Example #2
0
 def encrypt2(self, text):
     """Encrypts 'text' text with a expanded key using implemented AES algorithm"""
     # add padd
     text = self._pad(text)
     key=aes.expand_key(self.key)
     # choose random initialization vector (IV)
     iv = Random.new().read(AES.block_size)
     # create AES CBC mode cipher
     cipher = AES.new(self.key, AES.MODE_CBC, iv)
     # encrypt
     return base64.b64encode(iv + aes.encrypt(key,iv,text))
Example #3
0
 def test_a1_128_key_expansion(self):
     print "(A.1) Testing 128 key expansion... ",
     round_keys = expand_key(0x2b7e151628aed2a6abf7158809cf4f3c, 4, 10)
     # we will just check the final column of the last round key, that's good enough
     self.assertEqual([0xb6, 0x63, 0x0c, 0xa6], round_keys[43])
     print "Passed"
Example #4
0
 def test_a3_256_key_expansion(self):
     print "(A.3) Testing 256 key expansion... ",
     round_keys = expand_key(0x603deb1015ca71be2b73aef0857d77811f352c073b6108d72d9810a30914dff4, 8, 14)
     self.assertEquals([0x70, 0x6c, 0x63, 0x1e], round_keys[59])
     print "Passed"
Example #5
0
 def test_a2_196_key_expansion(self):
     print "(A.2) Testing 192 key expansion... ",
     round_keys = expand_key(0x8e73b0f7da0e6452c810f32b809079e562f8ead2522c6b7b, 6, 12)
     self.assertEquals([0x01, 0x00, 0x22, 0x02], round_keys[51])
     print "Passed"