You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by le...@apache.org on 2015/02/13 19:55:29 UTC

svn commit: r1659645 - in /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox: cos/COSDocument.java pdfwriter/COSWriter.java pdmodel/PDDocument.java

Author: lehmi
Date: Fri Feb 13 18:55:28 2015
New Revision: 1659645

URL: http://svn.apache.org/r1659645
Log:
PDFBOX-2683: removed reference to signatureInterface from COSDocument

Modified:
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSDocument.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDocument.java

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSDocument.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSDocument.java?rev=1659645&r1=1659644&r2=1659645&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSDocument.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSDocument.java Fri Feb 13 18:55:28 2015
@@ -29,7 +29,6 @@ import java.util.Map;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.pdfbox.pdfparser.PDFObjectStreamParser;
-import org.apache.pdfbox.pdmodel.interactive.digitalsignature.SignatureInterface;
 
 /**
  * This is the in-memory representation of the PDF document.  You need to call
@@ -66,11 +65,6 @@ public class COSDocument extends COSBase
      */
     private COSDictionary trailer;
     
-    /**
-     * Signature interface.
-     */
-    private SignatureInterface signatureInterface;
-
     private boolean warnMissingClose = true;
     
     /** 
@@ -317,15 +311,6 @@ public class COSDocument extends COSBase
     }
 
     /**
-     * This will return the signature interface.
-     * @return the signature interface 
-     */
-    public SignatureInterface getSignatureInterface() 
-    {
-        return signatureInterface;
-    }
-    
-    /**
      * This will set the encryption dictionary, this should only be called when
      * encrypting the document.
      *
@@ -417,15 +402,6 @@ public class COSDocument extends COSBase
     }
     
     /**
-     * Set the signature interface to the given value.
-     * @param sigInterface the signature interface
-     */
-    public void setSignatureInterface(SignatureInterface sigInterface) 
-    {
-        signatureInterface = sigInterface;
-    }
-
-    /**
      * This will get the document catalog.
      *
      * Maybe this should move to an object at PDFEdit level

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java?rev=1659645&r1=1659644&r2=1659645&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java Fri Feb 13 18:55:28 2015
@@ -210,6 +210,7 @@ public class COSWriter implements ICOSVi
     private long byteRangeOffset, byteRangeLength;
     private InputStream incrementalInput;
     private OutputStream incrementalOutput;
+    private SignatureInterface signatureInterface;
 
     /**
      * COSWriter constructor comment.
@@ -724,7 +725,6 @@ public class COSWriter implements ICOSVi
                 new ByteArrayInputStream(signBuffer));
 
         // sign the bytes
-        SignatureInterface signatureInterface = doc.getSignatureInterface();
         byte[] sign = signatureInterface.sign(signStream);
         String signature = new COSString(sign).toHexString();
         // substract 2 bytes because of the enclosing "<>"
@@ -1209,10 +1209,25 @@ public class COSWriter implements ICOSVi
      */
     public void write(PDDocument doc) throws IOException
     {
+        write(doc, null);
+    }
+
+    /**
+     * This will write the pdf document.
+     *
+     * @param doc The document to write.
+     * @param signInterface class to be used for signing 
+     *
+     * @throws IOException If an error occurs while generating the data.
+     */
+    public void write(PDDocument doc, SignatureInterface signInterface) throws IOException
+    {
         Long idTime = doc.getDocumentId() == null ? System.currentTimeMillis() : 
                                                     doc.getDocumentId();
 
         pdDocument = doc;
+        signatureInterface = signInterface;
+        
         if(incrementalUpdate)
         {
             prepareIncrement(doc);

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDocument.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDocument.java?rev=1659645&r1=1659644&r2=1659645&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDocument.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDocument.java Fri Feb 13 18:55:28 2015
@@ -102,6 +102,9 @@ public class PDDocument implements Close
     // fonts to subset before saving
     private final Set<PDFont> fontsToSubset = new HashSet<PDFont>();
     
+    // Signature interface
+    private SignatureInterface signInterface;
+    
     /**
      * Creates an empty PDF document.
      * You need to add at least one page for the document to be valid.
@@ -180,7 +183,7 @@ public class PDDocument implements Close
         // Reserve ByteRange
         sigObject.setByteRange(new int[] { 0, 1000000000, 1000000000, 1000000000 });
 
-        getDocument().setSignatureInterface(signatureInterface);
+        signInterface = signatureInterface;
 
         //
         // Create SignatureForm for signature
@@ -967,7 +970,7 @@ public class PDDocument implements Close
         try
         {
             writer = new COSWriter(output, input);
-            writer.write(this);
+            writer.write(this, signInterface);
             writer.close();
         }
         finally