What steps will reproduce the problem?
1. Create an encrypted file containing 1 or more empty files
2. Try to decrypt it.
What is the expected output? What do you see instead?
Empty files should be extracted. WinZip has no problem.
Instead I get
java.util.zip.ZipException: invalid entry CRC (expected 0xffffffff but got 0x0)
at java.util.zip.ZipInputStream.readEnd(ZipInputStream.java:396)
at java.util.zip.ZipInputStream.read(ZipInputStream.java:156)
at java.io.FilterInputStream.read(FilterInputStream.java:90)
at de.idyl.crypto.zip.AesZipFileDecrypter.extractEntry(AesZipFileDecrypter.java:352)
at de.idyl.crypto.zip.AesZipFileDecrypter.extractEntry(AesZipFileDecrypter.java:387)
What version of the product are you using? On what operating system?
winzipaes_src_20110206 on Windows XP Professional
Please provide any additional information below.
Looking at the source code I notice that the AesZipFileDecrypter class contains
the following:
// at the end of the entry read-cycle a CRC check is performed.
// because our entry doesn't have a CRC this will result in an Exception
// we solve this by updating a CRC and pass this to the Entry.
CRC32 crc32 = new CRC32();
while (read > 0) {
outStream.write(buffer, 0, read);
crc32.update(buffer, 0, read);
entry.setCrc(crc32.getValue());
read = zipInputStream.read(buffer);
}
I presume this is failing to work as expected when the file size is 0.
Original issue reported on code.google.com by mek...@googlemail.com on 4 May 2011 at 10:26
Original issue reported on code.google.com by
mek...@googlemail.com
on 4 May 2011 at 10:26