-
Notifications
You must be signed in to change notification settings - Fork 72
Open
Description
Hi @soarecostin , thank you for the great library.
I noticed in my app that sometimes I had decryption errors on files from s3, but trying the same operation on the same file some seconds later would suggest.
I noticed that the FileEncrypter has a check in place to handle different chunk sizes received from s3:
// Because Amazon S3 will randomly return smaller sized chunks:
// Check if the size read from the stream is different than the requested chunk size
// In this scenario, request the chunk again, unless this is the last chunk
if (strlen($ciphertext) !== 16 * (self::FILE_ENCRYPTION_BLOCKS + 1)
&& $i + 1 < $numberOfChunks
) {
fseek($fpIn, 16 + 16 * (self::FILE_ENCRYPTION_BLOCKS + 1) * $i);
continue;
}
I added some custom logs and noticed that the bug always happens while trying to decode the last block. Could it happen when S3 return the last chunk with a wrong size? There doesn't appear to be any checks in place to detect (and fix) such an occurrance.
I will try to fix the issue and submit a pull requests in case of success
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels