ASF Bugzilla – Attachment 34349 Details for
Bug 60230
Roundtrip test that encrypts XSSFWorkbook and then decrypts it fails with latest code
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
test case that hightlights the issue
patch.txt (text/plain), 3.19 KB, created by
PJ Fanning
on 2016-10-09 17:52:10 UTC
(
hide
)
Description:
test case that hightlights the issue
Filename:
MIME Type:
Creator:
PJ Fanning
Created:
2016-10-09 17:52:10 UTC
Size:
3.19 KB
patch
obsolete
>diff --git a/src/ooxml/testcases/org/apache/poi/xssf/TestWorkbookProtection.java b/src/ooxml/testcases/org/apache/poi/xssf/TestWorkbookProtection.java >index 9690619..0f49569 100644 >--- a/src/ooxml/testcases/org/apache/poi/xssf/TestWorkbookProtection.java >+++ b/src/ooxml/testcases/org/apache/poi/xssf/TestWorkbookProtection.java >@@ -23,8 +23,24 @@ import static org.junit.Assert.assertFalse; > import static org.junit.Assert.assertNull; > import static org.junit.Assert.assertTrue; > >+import java.io.File; >+import java.io.FileInputStream; >+import java.io.FileOutputStream; >+import java.io.OutputStream; >+ >+import org.apache.poi.openxml4j.opc.OPCPackage; > import org.apache.poi.poifs.crypt.CryptoFunctions; >+import org.apache.poi.poifs.crypt.Decryptor; >+import org.apache.poi.poifs.crypt.EncryptionInfo; >+import org.apache.poi.poifs.crypt.EncryptionMode; >+import org.apache.poi.poifs.crypt.Encryptor; > import org.apache.poi.poifs.crypt.HashAlgorithm; >+import org.apache.poi.poifs.filesystem.POIFSFileSystem; >+import org.apache.poi.util.IOUtils; >+import org.apache.poi.util.TempFile; >+import org.apache.poi.xssf.usermodel.XSSFCell; >+import org.apache.poi.xssf.usermodel.XSSFRow; >+import org.apache.poi.xssf.usermodel.XSSFSheet; > import org.apache.poi.xssf.usermodel.XSSFWorkbook; > import org.junit.Test; > >@@ -171,4 +187,45 @@ public class TestWorkbookProtection { > assertTrue(wb.isRevisionLocked()); > assertTrue(wb.validateRevisionsPassword("test")); > } >+ >+ @Test >+ public void testEncryptDecrypt() throws Exception { >+ final String password = "abc123"; >+ final String sheetName = "TestSheet1"; >+ final String cellValue = "customZipEntrySource"; >+ XSSFWorkbook workbook = new XSSFWorkbook(); >+ XSSFSheet sheet1 = workbook.createSheet(sheetName); >+ XSSFRow row1 = sheet1.createRow(1); >+ XSSFCell cell1 = row1.createCell(1); >+ cell1.setCellValue(cellValue); >+ File tf1 = TempFile.createTempFile("poitest", ".xlsx"); >+ FileOutputStream fos1 = new FileOutputStream(tf1); >+ workbook.write(fos1); >+ IOUtils.closeQuietly(fos1); >+ POIFSFileSystem poiFileSystem = new POIFSFileSystem(); >+ EncryptionInfo encryptionInfo = new EncryptionInfo(EncryptionMode.agile); >+ Encryptor enc = encryptionInfo.getEncryptor(); >+ enc.confirmPassword(password); >+ OPCPackage opc = OPCPackage.open(new FileInputStream(tf1)); >+ try { >+ OutputStream os = enc.getDataStream(poiFileSystem); >+ opc.save(os); >+ IOUtils.closeQuietly(os); >+ } finally { >+ IOUtils.closeQuietly(opc); >+ } >+ tf1.delete(); >+ FileOutputStream fos2 = new FileOutputStream(tf1); >+ poiFileSystem.writeFilesystem(fos2); >+ IOUtils.closeQuietly(fos2); >+ workbook.close(); >+ POIFSFileSystem poiFileSystem2 = new POIFSFileSystem(new FileInputStream(tf1)); >+ EncryptionInfo encryptionInfo2 = new EncryptionInfo(poiFileSystem2); >+ Decryptor decryptor = encryptionInfo2.getDecryptor(); >+ decryptor.verifyPassword(password); >+ XSSFWorkbook workbook2 = new XSSFWorkbook(decryptor.getDataStream(poiFileSystem2)); >+ workbook2.close(); >+ tf1.delete(); >+ } >+ > }
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 60230
: 34349