]> source.dussan.org Git - poi.git/commitdiff
Bug 60230 - Roundtrip test that encrypts XSSFWorkbook and then decrypts it fails...
authorAndreas Beeker <kiwiwings@apache.org>
Sun, 9 Oct 2016 20:34:35 +0000 (20:34 +0000)
committerAndreas Beeker <kiwiwings@apache.org>
Sun, 9 Oct 2016 20:34:35 +0000 (20:34 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1764008 13f79535-47bb-0310-9956-ffa450edef68

src/java/org/apache/poi/poifs/crypt/ChunkedCipherInputStream.java
src/ooxml/testcases/org/apache/poi/xssf/TestWorkbookProtection.java

index 8999b6e0dd80438f0a00c1891dfe75835f93990e..1045b3058bcba4ab52b226308b34e730e69e0781 100644 (file)
@@ -199,7 +199,7 @@ public abstract class ChunkedCipherInputStream extends LittleEndianInputStream {
 \r
         System.arraycopy(_plain, 0, _chunk, 0, totalBytes);\r
 \r
-        invokeCipher(totalBytes, _chunkSize > -1);\r
+        invokeCipher(totalBytes, totalBytes == _chunkSize);\r
     }\r
 \r
     /**\r
index b216a46d5f0bac23b470bfae93606464807c2ed1..9c7e9355dd53ea91f48b3b66ec853c06ab2eda9f 100644 (file)
@@ -189,7 +189,6 @@ public class TestWorkbookProtection {
         assertTrue(wb.validateRevisionsPassword("test"));
     }
     
-    @Ignore("bug 60230: currently failing due to regression from bug 59857 r1762726")
     @Test
     public void testEncryptDecrypt() throws Exception {
         final String password = "abc123";
@@ -208,7 +207,9 @@ public class TestWorkbookProtection {
         EncryptionInfo encryptionInfo = new EncryptionInfo(EncryptionMode.agile);
         Encryptor enc = encryptionInfo.getEncryptor();
         enc.confirmPassword(password);
-        OPCPackage opc = OPCPackage.open(new FileInputStream(tf1));
+        FileInputStream fis = new FileInputStream(tf1);
+        OPCPackage opc = OPCPackage.open(fis);
+        IOUtils.closeQuietly(fis);
         try {
             OutputStream os = enc.getDataStream(poiFileSystem);
             opc.save(os);
@@ -221,7 +222,9 @@ public class TestWorkbookProtection {
         poiFileSystem.writeFilesystem(fos2);
         IOUtils.closeQuietly(fos2);
         workbook.close();
-        POIFSFileSystem poiFileSystem2 = new POIFSFileSystem(new FileInputStream(tf1));
+        fis = new FileInputStream(tf1);
+        POIFSFileSystem poiFileSystem2 = new POIFSFileSystem(fis);
+        IOUtils.closeQuietly(fis);
         EncryptionInfo encryptionInfo2 = new EncryptionInfo(poiFileSystem2);
         Decryptor decryptor = encryptionInfo2.getDecryptor();
         decryptor.verifyPassword(password);