from Crypto.Cipher import AES import hashlib, hmac def decrypt_wa_crypt14(crypt_file, key_file, output_file): with open(key_file, 'rb') as kf: key = kf.read(32) # 256-bit key
| Version | Magic Bytes (hex) | |---------|-------------------| | Crypt8 | 57 48 41 54 53 41 50 50 08 | | Crypt12 | 57 48 41 54 53 41 50 50 0C | | Crypt14 | 57 48 41 54 53 41 50 50 0E | msgstore db crypt
with open(output_file, 'wb') as of: of.write(plaintext) # now a standard SQLite DB from Crypto
cipher = AES.new(key, AES.MODE_GCM, nonce=nonce) plaintext = cipher.decrypt_and_verify(ciphertext, tag) from Crypto.Cipher import AES import hashlib