Browse Source

Bug 58616: Try to initialize with empty password if not done before

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1722407 13f79535-47bb-0310-9956-ffa450edef68
tags/REL_3_14_FINAL
Dominik Stadler 8 years ago
parent
commit
baee1a5599

+ 1
- 0
src/integrationtest/org/apache/poi/TestAllFiles.java View File

@@ -199,6 +199,7 @@ public class TestAllFiles {
//EXPECTED_FAILURES.add("poifs/protected_sha512.xlsx");
//EXPECTED_FAILURES.add("poifs/extenxls_pwd123.xlsx");
//EXPECTED_FAILURES.add("poifs/protected_agile.docx");
EXPECTED_FAILURES.add("spreadsheet/58616.xlsx");

// TODO: fails XMLExportTest, is this ok?
EXPECTED_FAILURES.add("spreadsheet/CustomXMLMapping-singleattributenamespace.xlsx");

+ 3
- 0
src/java/org/apache/poi/poifs/crypt/standard/StandardDecryptor.java View File

@@ -127,6 +127,9 @@ public class StandardDecryptor extends Decryptor {

_length = dis.readLong();

if(getSecretKey() == null) {
verifyPassword(null);
}
// limit wrong calculated ole entries - (bug #57080)
// standard encryption always uses aes encoding, so blockSize is always 16
// http://stackoverflow.com/questions/3283787/size-of-data-after-aes-encryption

+ 11
- 0
src/ooxml/testcases/org/apache/poi/poifs/crypt/TestDecryptor.java View File

@@ -22,6 +22,7 @@ import static org.junit.Assert.assertTrue;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.security.GeneralSecurityException;
@@ -33,6 +34,7 @@ import org.apache.poi.poifs.filesystem.DirectoryNode;
import org.apache.poi.poifs.filesystem.NPOIFSFileSystem;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.apache.poi.util.IOUtils;
import org.apache.poi.xssf.XSSFTestDataSamples;
import org.junit.Test;
/**
@@ -151,4 +153,13 @@ public class TestDecryptor {
zis.close();
fs.close();
}
@Test
public void test58616() throws IOException, GeneralSecurityException {
POIFSFileSystem pfs = new POIFSFileSystem(new FileInputStream(XSSFTestDataSamples.getSampleFile("58616.xlsx")));
EncryptionInfo info = new EncryptionInfo(pfs);
Decryptor dec = Decryptor.getInstance(info);
//dec.verifyPassword(null);
dec.getDataStream(pfs);
}
}

BIN
test-data/spreadsheet/58616.xlsx View File


Loading…
Cancel
Save