def decrypt(self):
decrypted_chunk = SpooledTemporaryFile(
max_size=self.POOL_SIZE,
mode='wb+'
)
cipher = AES.new(self.key, AES.MODE_CBC, self.iv)
next_chunk = ''
finished = False
while not finished:
chunk, next_chunk = next_chunk, \
self.chunk_stream.read(1024 * AES.block_size)
chunk = cipher.decrypt(chunk)
if len(next_chunk) == 0:
chunk = self.pkcs7_reverse_padded_chunk(chunk)
finished = True
if chunk:
decrypted_chunk.write(chunk)
decrypted_chunk.seek(0)
return decrypted_chunk
评论列表
文章目录