Este é um lembrete sobre como aplicar HMAC sobre os dados criptografados AES para integridade:
ciphertext = iv + aes(key, iv, plaintext)
tag = hmac(hmac_key, ciphertext, sha256)
Os comprimentos das chaves também são importantes:
key = os.urandom(256/8) # AES-256 key size
iv = os.urandom(128/8) # AES block size
hmac_key = os.urandom(512/8) # SHA-256 block size
Comentários são bem vindos.