You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ti...@apache.org on 2017/10/25 18:35:50 UTC
svn commit: r1813336 - in
/pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/signature:
CreateSignature.java CreateSignatureBase.java CreateVisibleSignature.java
Author: tilman
Date: Wed Oct 25 18:35:49 2017
New Revision: 1813336
URL: http://svn.apache.org/viewvc?rev=1813336&view=rev
Log:
PDFBOX-1848: remove MDP methods from base class; adjust calls
Modified:
pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/signature/CreateSignature.java
pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/signature/CreateSignatureBase.java
pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/signature/CreateVisibleSignature.java
Modified: pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/signature/CreateSignature.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/signature/CreateSignature.java?rev=1813336&r1=1813335&r2=1813336&view=diff
==============================================================================
--- pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/signature/CreateSignature.java (original)
+++ pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/signature/CreateSignature.java Wed Oct 25 18:35:49 2017
@@ -116,7 +116,7 @@ public class CreateSignature extends Cre
{
setTsaClient(tsaClient);
- int accessPermissions = getMDPPermission(document);
+ int accessPermissions = SigUtils.getMDPPermission(document);
if (accessPermissions == 1)
{
throw new IllegalStateException("No changes to the document are permitted due to DocMDP transform parameters dictionary");
@@ -137,7 +137,7 @@ public class CreateSignature extends Cre
// Optional: certify
if (accessPermissions == 0)
{
- setMDPPermission(document, signature, 2);
+ SigUtils.setMDPPermission(document, signature, 2);
}
if (isExternalSigning())
Modified: pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/signature/CreateSignatureBase.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/signature/CreateSignatureBase.java?rev=1813336&r1=1813335&r2=1813336&view=diff
==============================================================================
--- pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/signature/CreateSignatureBase.java (original)
+++ pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/signature/CreateSignatureBase.java Wed Oct 25 18:35:49 2017
@@ -251,88 +251,4 @@ public abstract class CreateSignatureBas
{
return externalSigning;
}
-
- /**
- * Get the access permissions granted for this document in the DocMDP transform parameters
- * dictionary. Details are described in the table "Entries in the DocMDP transform parameters
- * dictionary" in the PDF specification.
- *
- * @param doc document.
- * @return the permission value. 0 means no DocMDP transform parameters dictionary exists. Other
- * return values are 1, 2 or 3. 2 is also returned if the DocMDP transform parameters dictionary
- * is found but did not contain a /P entry, or if the value is outside the valid range.
- */
- public int getMDPPermission(PDDocument doc)
- {
- COSBase base = doc.getDocumentCatalog().getCOSObject().getDictionaryObject(COSName.PERMS);
- if (base instanceof COSDictionary)
- {
- COSDictionary permsDict = (COSDictionary) base;
- base = permsDict.getDictionaryObject(COSName.DOCMDP);
- if (base instanceof COSDictionary)
- {
- COSDictionary signatureDict = (COSDictionary) base;
- base = signatureDict.getDictionaryObject("Reference");
- if (base instanceof COSArray)
- {
- COSArray refArray = (COSArray) base;
- for (int i = 0; i < refArray.size(); ++i)
- {
- base = refArray.getObject(i);
- if (base instanceof COSDictionary)
- {
- COSDictionary sigRefDict = (COSDictionary) base;
- if (COSName.DOCMDP.equals(sigRefDict.getDictionaryObject("TransformMethod")))
- {
- base = sigRefDict.getDictionaryObject("TransformParams");
- if (base instanceof COSDictionary)
- {
- COSDictionary transformDict = (COSDictionary) base;
- int accessPermissions = transformDict.getInt(COSName.P, 2);
- if (accessPermissions < 1 || accessPermissions > 3)
- {
- accessPermissions = 2;
- }
- return accessPermissions;
- }
- }
- }
- }
- }
- }
- }
- return 0;
- }
-
- public void setMDPPermission(PDDocument doc, PDSignature signature, int accessPermissions)
- {
- COSDictionary sigDict = signature.getCOSObject();
-
- // DocMDP specific stuff
- COSDictionary transformParameters = new COSDictionary();
- transformParameters.setItem(COSName.TYPE, COSName.getPDFName("TransformParams"));
- transformParameters.setInt(COSName.P, accessPermissions);
- transformParameters.setName(COSName.V, "1.2");
- transformParameters.setNeedToBeUpdated(true);
-
- COSDictionary referenceDict = new COSDictionary();
- referenceDict.setItem(COSName.TYPE, COSName.getPDFName("SigRef"));
- referenceDict.setItem("TransformMethod", COSName.getPDFName("DocMDP"));
- referenceDict.setItem("DigestMethod", COSName.getPDFName("SHA1"));
- referenceDict.setItem("TransformParams", transformParameters);
- referenceDict.setNeedToBeUpdated(true);
-
- COSArray referenceArray = new COSArray();
- referenceArray.add(referenceDict);
- sigDict.setItem("Reference", referenceArray);
- referenceArray.setNeedToBeUpdated(true);
-
- // Catalog
- COSDictionary catalogDict = doc.getDocumentCatalog().getCOSObject();
- COSDictionary permsDict = new COSDictionary();
- catalogDict.setItem(COSName.PERMS, permsDict);
- permsDict.setItem(COSName.DOCMDP, signature);
- catalogDict.setNeedToBeUpdated(true);
- permsDict.setNeedToBeUpdated(true);
- }
}
Modified: pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/signature/CreateVisibleSignature.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/signature/CreateVisibleSignature.java?rev=1813336&r1=1813335&r2=1813336&view=diff
==============================================================================
--- pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/signature/CreateVisibleSignature.java (original)
+++ pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/signature/CreateVisibleSignature.java Wed Oct 25 18:35:49 2017
@@ -195,7 +195,7 @@ public class CreateVisibleSignature exte
try (PDDocument doc = PDDocument.load(inputFile))
{
- int accessPermissions = getMDPPermission(doc);
+ int accessPermissions = SigUtils.getMDPPermission(doc);
if (accessPermissions == 1)
{
throw new IllegalStateException("No changes to the document are permitted due to DocMDP transform parameters dictionary");
@@ -221,7 +221,7 @@ public class CreateVisibleSignature exte
// PDF/A-1b requires PDF version 1.4 max, so don't increase the version on such files.
if (doc.getVersion() >= 1.5f && accessPermissions == 0)
{
- setMDPPermission(doc, signature, 2);
+ SigUtils.setMDPPermission(doc, signature, 2);
}
PDAcroForm acroForm = doc.getDocumentCatalog().getAcroForm();