def decrypt(source_text, passphrase, debug_stmt=None):
if debug_stmt is None:<EOL><INDENT>debug_stmt = "<STR_LIT>"<EOL><DEDENT>full_encrypted = b64decode(source_text)<EOL>salt = full_encrypted[<NUM_LIT:8>:IV_BLOCK_SIZE]<EOL>encrypted_text = full_encrypted[IV_BLOCK_SIZE:]<EOL>key, iv_ = _openssl_key_iv(passphrase, salt)<EOL>cipher = Cipher(<EOL>algorithms.AES(key), modes.CBC(iv_), default_backend()<EOL>).decryptor()<EOL>plain_text = cipher.update(encrypted_text)<EOL>plain_text += cipher.finalize()<EOL>if six.PY2:<EOL><INDENT>padding = ord(plain_text[-<NUM_LIT:1>])<EOL><DEDENT>else:<EOL><INDENT>padding = plain_text[-<NUM_LIT:1>]<EOL><DEDENT>plain_text = plain_text[:-padding]<EOL>if hasattr(plain_text, '<STR_LIT>'):<EOL><INDENT>plain_text = plain_text.decode('<STR_LIT:utf-8>')<EOL><DEDENT>_log_debug(salt, key, iv_, source_text, plain_text,<EOL>passphrase=passphrase, debug_stmt=debug_stmt)<EOL>return plain_text<EOL>
Returns plain text from *source_text*, a base64 AES encrypted string
as generated with openssl.

    $ echo '_source_text_' | openssl aes-256-cbc -a -k _passphrase_ -p
    salt=...
    key=...
    iv=...
    _full_encrypted_