def decrypt(self, data, ttl=None):
data = self._signer.unsign(data, ttl)<EOL>iv = data[:<NUM_LIT:16>]<EOL>ciphertext = data[<NUM_LIT:16>:]<EOL>decryptor = Cipher(<EOL>algorithms.AES(self._encryption_key), modes.CBC(iv),<EOL>self._backend).decryptor()<EOL>plaintext_padded = decryptor.update(ciphertext)<EOL>try:<EOL><INDENT>plaintext_padded += decryptor.finalize()<EOL><DEDENT>except ValueError:<EOL><INDENT>raise InvalidToken<EOL><DEDENT>unpadder = padding.PKCS7(algorithms.AES.block_size).unpadder()<EOL>unpadded = unpadder.update(plaintext_padded)<EOL>try:<EOL><INDENT>unpadded += unpadder.finalize()<EOL><DEDENT>except ValueError:<EOL><INDENT>raise InvalidToken<EOL><DEDENT>return unpadded<EOL>
:type data: bytes
:type ttl: int
:rtype: bytes