예제 #1
0
 def test_encrypt(self):
     msg = b'message'
     key = list(range(16))
     encrypted = aes_encrypt(bytes_to_intlist(msg), key)
     decrypted = intlist_to_bytes(aes_decrypt(encrypted, key))
     self.assertEqual(decrypted, msg)
예제 #2
0

def openssl_encode(algo, key, iv):
    cmd = [
        'openssl', 'enc', '-e', '-' + algo, '-K',
        hex_str(key), '-iv',
        hex_str(iv)
    ]
    prog = subprocess.Popen(cmd, stdin=subprocess.PIPE, stdout=subprocess.PIPE)
    out, _ = prog.communicate(secret_msg)
    return out


iv = key = [0x20, 0x15] + 14 * [0]

r = openssl_encode('aes-128-cbc', key, iv)
print('aes_cbc_decrypt')
print(repr(r))

password = key
new_key = aes_encrypt(password, key_expansion(password))
r = openssl_encode('aes-128-ctr', new_key, iv)
print('aes_decrypt_text 16')
print(repr(r))

password = key + 16 * [0]
new_key = aes_encrypt(password, key_expansion(password)) * (32 // 16)
r = openssl_encode('aes-256-ctr', new_key, iv)
print('aes_decrypt_text 32')
print(repr(r))