You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ki...@apache.org on 2016/11/11 23:22:43 UTC
svn commit: r1769363 [2/2] - in /poi/trunk/src:
examples/src/org/apache/poi/crypt/examples/
examples/src/org/apache/poi/examples/util/
examples/src/org/apache/poi/xssf/eventusermodel/examples/
examples/src/org/apache/poi/xssf/streaming/examples/ exampl...
Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFWorkbookWithCustomZipEntrySource.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFWorkbookWithCustomZipEntrySource.java?rev=1769363&r1=1769362&r2=1769363&view=diff
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFWorkbookWithCustomZipEntrySource.java (original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFWorkbookWithCustomZipEntrySource.java Fri Nov 11 23:22:43 2016
@@ -27,31 +27,19 @@ import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
-import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
-import java.io.OutputStream;
import java.nio.charset.Charset;
import java.security.GeneralSecurityException;
-import java.security.SecureRandom;
import java.util.List;
-import javax.crypto.Cipher;
-import javax.crypto.CipherInputStream;
-import javax.crypto.CipherOutputStream;
-import javax.crypto.spec.SecretKeySpec;
-
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.openxml4j.opc.OPCPackage;
import org.apache.poi.openxml4j.util.ZipEntrySource;
-import org.apache.poi.poifs.crypt.AesZipFileZipEntrySource;
-import org.apache.poi.poifs.crypt.ChainingMode;
-import org.apache.poi.poifs.crypt.CipherAlgorithm;
-import org.apache.poi.poifs.crypt.CryptoFunctions;
+import org.apache.poi.poifs.crypt.temp.AesZipFileZipEntrySource;
+import org.apache.poi.poifs.crypt.temp.EncryptedTempData;
+import org.apache.poi.poifs.crypt.temp.SXSSFWorkbookWithCustomZipEntrySource;
import org.apache.poi.util.IOUtils;
-import org.apache.poi.util.POILogFactory;
-import org.apache.poi.util.POILogger;
-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;
@@ -145,104 +133,4 @@ public final class TestSXSSFWorkbookWith
workbook.dispose();
assertFalse("tempFile deleted after dispose?", tempFile.exists());
}
-
- static class SXSSFWorkbookWithCustomZipEntrySource extends SXSSFWorkbook {
-
- private static final POILogger logger = POILogFactory.getLogger(SXSSFWorkbookWithCustomZipEntrySource.class);
-
- @Override
- public void write(OutputStream stream) throws IOException {
- flushSheets();
- EncryptedTempData tempData = new EncryptedTempData();
- OutputStream os = tempData.getOutputStream();
- getXSSFWorkbook().write(os);
- os.close();
- ZipEntrySource source = null;
- try {
- // provide ZipEntrySource to poi which decrypts on the fly
- source = AesZipFileZipEntrySource.createZipEntrySource(tempData.getInputStream());
- injectData(source, stream);
- } catch (GeneralSecurityException e) {
- throw new IOException(e);
- } finally {
- tempData.dispose();
- IOUtils.closeQuietly(source);
- }
- }
-
- @Override
- protected SheetDataWriter createSheetDataWriter() throws IOException {
- //log values to ensure these values are accessible to subclasses
- logger.log(POILogger.INFO, "isCompressTempFiles: " + isCompressTempFiles());
- logger.log(POILogger.INFO, "SharedStringSource: " + getSharedStringSource());
- return new SheetDataWriterWithDecorator();
- }
- }
-
- static class SheetDataWriterWithDecorator extends SheetDataWriter {
- final static CipherAlgorithm cipherAlgorithm = CipherAlgorithm.aes128;
- SecretKeySpec skeySpec;
- byte[] ivBytes;
-
- public SheetDataWriterWithDecorator() throws IOException {
- super();
- }
-
- void init() {
- if(skeySpec == null) {
- SecureRandom sr = new SecureRandom();
- ivBytes = new byte[16];
- byte[] keyBytes = new byte[16];
- sr.nextBytes(ivBytes);
- sr.nextBytes(keyBytes);
- skeySpec = new SecretKeySpec(keyBytes, cipherAlgorithm.jceId);
- }
- }
-
- @Override
- protected OutputStream decorateOutputStream(FileOutputStream fos) {
- init();
- Cipher ciEnc = CryptoFunctions.getCipher(skeySpec, cipherAlgorithm, ChainingMode.cbc, ivBytes, Cipher.ENCRYPT_MODE, "PKCS5Padding");
- return new CipherOutputStream(fos, ciEnc);
- }
-
- @Override
- protected InputStream decorateInputStream(FileInputStream fis) {
- Cipher ciDec = CryptoFunctions.getCipher(skeySpec, cipherAlgorithm, ChainingMode.cbc, ivBytes, Cipher.DECRYPT_MODE, "PKCS5Padding");
- return new CipherInputStream(fis, ciDec);
- }
- }
-
- // a class to save and read an AES-encrypted workbook
- static class EncryptedTempData {
- final static CipherAlgorithm cipherAlgorithm = CipherAlgorithm.aes128;
- final SecretKeySpec skeySpec;
- final byte[] ivBytes;
- final File tempFile;
-
- EncryptedTempData() throws IOException {
- SecureRandom sr = new SecureRandom();
- ivBytes = new byte[16];
- byte[] keyBytes = new byte[16];
- sr.nextBytes(ivBytes);
- sr.nextBytes(keyBytes);
- skeySpec = new SecretKeySpec(keyBytes, cipherAlgorithm.jceId);
- tempFile = TempFile.createTempFile("poi-temp-data", ".tmp");
- }
-
- OutputStream getOutputStream() throws IOException {
- Cipher ciEnc = CryptoFunctions.getCipher(skeySpec, cipherAlgorithm, ChainingMode.cbc, ivBytes, Cipher.ENCRYPT_MODE, null);
- return new CipherOutputStream(new FileOutputStream(tempFile), ciEnc);
- }
-
- InputStream getInputStream() throws IOException {
- Cipher ciDec = CryptoFunctions.getCipher(skeySpec, cipherAlgorithm, ChainingMode.cbc, ivBytes, Cipher.DECRYPT_MODE, null);
- return new CipherInputStream(new FileInputStream(tempFile), ciDec);
- }
-
- void dispose() {
- assertTrue("Could not delete tempfile " + tempFile + ": " + tempFile.exists(),
- !tempFile.exists() || tempFile.delete());
- }
- }
-}
+}
\ No newline at end of file
Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hdgf/pointers/PointerV5.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hdgf/pointers/PointerV5.java?rev=1769363&r1=1769362&r2=1769363&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/src/org/apache/poi/hdgf/pointers/PointerV5.java (original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hdgf/pointers/PointerV5.java Fri Nov 11 23:22:43 2016
@@ -28,14 +28,24 @@ public final class PointerV5 extends Poi
return (0x40 <= format && format < 0x50);
}
public boolean destinationHasPointers() {
- if(type == 20) return true;
- if(type == 22) return false;
- if(format == 0x1d || format == 0x1e) return true;
+ if(type == 20) {
+ return true;
+ }
+ if(type == 22) {
+ return false;
+ }
+ if(format == 0x1d || format == 0x1e) {
+ return true;
+ }
return (0x50 <= format && format < 0x60);
}
public boolean destinationHasChunks() {
- if (type == 21) return true;
- if (type == 24) return true;
+ if (type == 21) {
+ return true;
+ }
+ if (type == 24) {
+ return true;
+ }
return (0xd0 <= format && format < 0xdf);
}
Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hslf/blip/PICT.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/blip/PICT.java?rev=1769363&r1=1769362&r2=1769363&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/src/org/apache/poi/hslf/blip/PICT.java (original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hslf/blip/PICT.java Fri Nov 11 23:22:43 2016
@@ -33,7 +33,7 @@ import org.apache.poi.util.Units;
* Represents Macintosh PICT picture data.
*/
public final class PICT extends Metafile {
- private static POILogger LOG = POILogFactory.getLogger(PICT.class);
+ private static final POILogger LOG = POILogFactory.getLogger(PICT.class);
public static class NativeHeader {
/**
Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFFreeformShape.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFFreeformShape.java?rev=1769363&r1=1769362&r2=1769363&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFFreeformShape.java (original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFFreeformShape.java Fri Nov 11 23:22:43 2016
@@ -346,7 +346,9 @@ public final class HSLFFreeformShape ext
}
private void fillPoint(byte xyMaster[], double xyPoints[]) {
- if (xyMaster == null || xyPoints == null || (xyMaster.length != 4 && xyMaster.length != 8) || xyPoints.length != 2) {
+ int masterCnt = (xyMaster == null) ? 0 : xyMaster.length;
+ int pointCnt = (xyPoints == null) ? 0 : xyPoints.length;
+ if ((masterCnt != 4 && masterCnt != 8) || pointCnt != 2) {
logger.log(POILogger.WARN, "Invalid number of master bytes for a single point - ignore point");
return;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org