]> source.dussan.org Git - poi.git/commitdiff
Use a constant for the name of the OOXML encrypted package node
authorNick Burch <nick@apache.org>
Wed, 29 Apr 2015 19:47:35 +0000 (19:47 +0000)
committerNick Burch <nick@apache.org>
Wed, 29 Apr 2015 19:47:35 +0000 (19:47 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1676838 13f79535-47bb-0310-9956-ffa450edef68

src/integrationtest/org/apache/poi/stress/POIXMLDocumentHandler.java
src/java/org/apache/poi/hssf/usermodel/HSSFWorkbook.java
src/java/org/apache/poi/poifs/crypt/ChunkedCipherOutputStream.java
src/java/org/apache/poi/poifs/crypt/DataSpaceMapUtils.java
src/java/org/apache/poi/poifs/crypt/Decryptor.java
src/java/org/apache/poi/poifs/crypt/Encryptor.java
src/java/org/apache/poi/poifs/crypt/binaryrc4/BinaryRC4Decryptor.java
src/java/org/apache/poi/poifs/crypt/standard/StandardDecryptor.java
src/java/org/apache/poi/poifs/crypt/standard/StandardEncryptor.java
src/ooxml/java/org/apache/poi/poifs/crypt/agile/AgileDecryptor.java
src/ooxml/testcases/org/apache/poi/poifs/crypt/TestEncryptor.java

index c720272352c27a52cdde727e7cf18c009ae35d30..7b0821dcc0eb3e36486199574d693368bc93cc8a 100644 (file)
@@ -27,6 +27,7 @@ import org.apache.poi.openxml4j.exceptions.OpenXML4JException;
 import org.apache.poi.openxml4j.opc.OPCPackage;
 import org.apache.poi.openxml4j.opc.PackageAccess;
 import org.apache.poi.openxml4j.opc.PackagePart;
+import org.apache.poi.poifs.crypt.Decryptor;
 import org.apache.poi.poifs.filesystem.POIFSFileSystem;
 import org.junit.Ignore;
 import org.junit.Test;
@@ -43,7 +44,7 @@ public final class POIXMLDocumentHandler {
     protected static boolean isEncrypted(InputStream stream) throws IOException {
         if (POIFSFileSystem.hasPOIFSHeader(stream)) {
             POIFSFileSystem poifs = new POIFSFileSystem(stream);
-            if (poifs.getRoot().hasEntry("EncryptedPackage")) {
+            if (poifs.getRoot().hasEntry(Decryptor.DEFAULT_POIFS_ENTRY)) {
                 return true;
             }
             throw new IOException("wrong file format or file extension for OO XML file");
index 503ed64d6c3aa8067b4831af89bfeccc333106d5..aee2d5444afb7ef3cf397794e40576ac2661297e 100644 (file)
@@ -65,6 +65,7 @@ import org.apache.poi.hssf.record.UnknownRecord;
 import org.apache.poi.hssf.record.aggregates.RecordAggregate.RecordVisitor;
 import org.apache.poi.hssf.record.common.UnicodeString;
 import org.apache.poi.hssf.util.CellReference;
+import org.apache.poi.poifs.crypt.Decryptor;
 import org.apache.poi.poifs.filesystem.DirectoryEntry;
 import org.apache.poi.poifs.filesystem.DirectoryNode;
 import org.apache.poi.poifs.filesystem.EntryUtils;
@@ -248,7 +249,7 @@ public final class HSSFWorkbook extends POIDocument implements org.apache.poi.ss
         
         // check for an encrypted .xlsx file - they get OLE2 wrapped
         try {
-               directory.getEntry("EncryptedPackage");
+               directory.getEntry(Decryptor.DEFAULT_POIFS_ENTRY);
                throw new EncryptedDocumentException("The supplied spreadsheet seems to be an Encrypted .xlsx file. " +
                                "It must be decrypted before use by XSSF, it cannot be used by HSSF");
         } catch (FileNotFoundException e) {
index 8a2bf0045409e2578de49a228bedc5b7a7841143..f663c7e089888347ceeb0c1c8cfb7f07c00fc883 100644 (file)
@@ -16,6 +16,8 @@
 ==================================================================== */\r
 package org.apache.poi.poifs.crypt;\r
 \r
+import static org.apache.poi.poifs.crypt.Decryptor.DEFAULT_POIFS_ENTRY;\r
+\r
 import java.io.File;\r
 import java.io.FileInputStream;\r
 import java.io.FileOutputStream;\r
@@ -133,7 +135,7 @@ public abstract class ChunkedCipherOutputStream extends FilterOutputStream {
             \r
             int oleStreamSize = (int)(fileOut.length()+LittleEndianConsts.LONG_SIZE);\r
             calculateChecksum(fileOut, oleStreamSize);\r
-            dir.createDocument("EncryptedPackage", oleStreamSize, new EncryptedPackageWriter());\r
+            dir.createDocument(DEFAULT_POIFS_ENTRY, oleStreamSize, new EncryptedPackageWriter());\r
             createEncryptionInfoEntry(dir, fileOut);\r
         } catch (GeneralSecurityException e) {\r
             throw new IOException(e);\r
index 0c80c6c2b350e9406ac584b3ef2f376f38014589..f6477fb9b577ac6f35f0329127097159242f1949 100644 (file)
@@ -36,7 +36,7 @@ public class DataSpaceMapUtils {
     public static void addDefaultDataSpace(DirectoryEntry dir) throws IOException {\r
         DataSpaceMapEntry dsme = new DataSpaceMapEntry(\r
                 new int[]{ 0 }\r
-              , new String[]{ "EncryptedPackage" }\r
+              , new String[]{ Decryptor.DEFAULT_POIFS_ENTRY }\r
               , "StrongEncryptionDataSpace"\r
           );\r
           DataSpaceMap dsm = new DataSpaceMap(new DataSpaceMapEntry[]{dsme});\r
index af449290e85634651f2c0deec2e3634ebadd97a7..d584346f9c787a2138d34d65dac1665cb07569fd 100644 (file)
@@ -29,6 +29,7 @@ import org.apache.poi.poifs.filesystem.POIFSFileSystem;
 
 public abstract class Decryptor {
     public static final String DEFAULT_PASSWORD="VelvetSweatshop";
+    public static final String DEFAULT_POIFS_ENTRY="EncryptedPackage";
     
     protected final EncryptionInfoBuilder builder;
     private SecretKey secretKey;
index abfd6933069261855297b6ae1f49e2ef5c32382b..4c1b51258fdc7a644a92a15bbbc0d988cc3e059e 100644 (file)
@@ -27,6 +27,7 @@ import org.apache.poi.poifs.filesystem.NPOIFSFileSystem;
 import org.apache.poi.poifs.filesystem.POIFSFileSystem;\r
 \r
 public abstract class Encryptor {\r
+    protected static final String DEFAULT_POIFS_ENTRY = Decryptor.DEFAULT_POIFS_ENTRY;\r
     private SecretKey secretKey;\r
     \r
     /**\r
index 40eab54e3acfec995e9a07b277205c6c0c3c6830..a2d3d6f0e11ca4d3b04018bec32503de16f4d2f6 100644 (file)
@@ -118,7 +118,7 @@ public class BinaryRC4Decryptor extends Decryptor {
 \r
     public InputStream getDataStream(DirectoryNode dir) throws IOException,\r
             GeneralSecurityException {\r
-        DocumentInputStream dis = dir.createDocumentInputStream("EncryptedPackage");\r
+        DocumentInputStream dis = dir.createDocumentInputStream(DEFAULT_POIFS_ENTRY);\r
         _length = dis.readLong();\r
         BinaryRC4CipherInputStream cipherStream = new BinaryRC4CipherInputStream(dis, _length);\r
         return cipherStream;\r
@@ -131,4 +131,4 @@ public class BinaryRC4Decryptor extends Decryptor {
         \r
         return _length;\r
     }\r
-}
\ No newline at end of file
+}\r
index 2b2c75b52033e760616be65a743c8635c286bd39..1d6ddd398e56fb7e014e588458f58d3611ebf5e9 100644 (file)
@@ -123,7 +123,7 @@ public class StandardDecryptor extends Decryptor {
     }
 
     public InputStream getDataStream(DirectoryNode dir) throws IOException {
-        DocumentInputStream dis = dir.createDocumentInputStream("EncryptedPackage");
+        DocumentInputStream dis = dir.createDocumentInputStream(DEFAULT_POIFS_ENTRY);
 
         _length = dis.readLong();
 
index 7049c715dec9d2cbf4472b31242bcc4f91cb998a..ae6304fbb5c2d2e99cba958fad2a8b3247a83cf9 100644 (file)
@@ -166,7 +166,7 @@ public class StandardEncryptor extends Encryptor {
         \r
         void writeToPOIFS() throws IOException {\r
             int oleStreamSize = (int)(fileOut.length()+LittleEndianConsts.LONG_SIZE);\r
-            dir.createDocument("EncryptedPackage", oleStreamSize, this);\r
+            dir.createDocument(DEFAULT_POIFS_ENTRY, oleStreamSize, this);\r
             // TODO: any properties???\r
         }\r
     \r
index 05499685f507dffa9dc71f6d57f62ab81bbf4445..3af78128c80b6732ab39cdb4fd250a5a474aef61 100644 (file)
@@ -279,7 +279,7 @@ public class AgileDecryptor extends Decryptor {
     }
 
     public InputStream getDataStream(DirectoryNode dir) throws IOException, GeneralSecurityException {
-        DocumentInputStream dis = dir.createDocumentInputStream("EncryptedPackage");
+        DocumentInputStream dis = dir.createDocumentInputStream(DEFAULT_POIFS_ENTRY);
         _length = dis.readLong();
         
         ChunkedCipherInputStream cipherStream = new AgileCipherInputStream(dis, _length);
index 2cd9889bd288cde4cfa4013f80e9c5202ee4f24e..fd494ba2679e33ed705f06fa050bc4f4897fbf59 100644 (file)
@@ -111,7 +111,7 @@ public class TestEncryptor {
         long decPackLenExpected = decExpected.getLength();\r
         assertEquals(decPackLenExpected, payloadExpected.length);\r
 \r
-        is = nfs.getRoot().createDocumentInputStream("EncryptedPackage");\r
+        is = nfs.getRoot().createDocumentInputStream(Decryptor.DEFAULT_POIFS_ENTRY);\r
         is = new BoundedInputStream(is, is.available()-16); // ignore padding block\r
         byte encPackExpected[] = IOUtils.toByteArray(is);\r
         is.close();\r
@@ -163,7 +163,7 @@ public class TestEncryptor {
         \r
         long decPackLenActual = decActual.getLength();\r
         \r
-        is = nfs.getRoot().createDocumentInputStream("EncryptedPackage");\r
+        is = nfs.getRoot().createDocumentInputStream(Decryptor.DEFAULT_POIFS_ENTRY);\r
         is = new BoundedInputStream(is, is.available()-16); // ignore padding block\r
         byte encPackActual[] = IOUtils.toByteArray(is);\r
         is.close();\r