def decrypt(input, salt, passphrase): iterations = 10000 output_size = 16 key = botan.pbkdf2(passphrase, salt, iterations, output_size, "SHA-1") decryptor = botan.Cipher("AES-128/EAX", "decrypt", key) return decryptor.cipher(input, salt)
def encrypt(input, passphrase): rng = botan.RandomNumberGenerator() # Use as both EAX IV and PBKDF2 salt salt = rng.gen_random(10) iterations = 10000 output_size = 16 key = botan.pbkdf2(passphrase, salt, iterations, output_size, "SHA-1") encryptor = botan.Cipher("AES-128/EAX", "encrypt", key) ciphertext = encryptor.cipher(input, salt) return (ciphertext, salt)