"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "examples/src/main/java/org/apache/pdfbox/examples/signature/SigUtils.java" between
pdfbox-2.0.23-src.zip and pdfbox-2.0.24-src.zip

About: Apache PDFBox is a Java PDF library tool that allows creation of new PDF documents, manipulation of existing documents and the ability to extract content from documents.

SigUtils.java  (pdfbox-2.0.23-src):SigUtils.java  (pdfbox-2.0.24-src)
skipping to change at line 92 skipping to change at line 92
public static int getMDPPermission(PDDocument doc) public static int getMDPPermission(PDDocument doc)
{ {
COSBase base = doc.getDocumentCatalog().getCOSObject().getDictionaryObje ct(COSName.PERMS); COSBase base = doc.getDocumentCatalog().getCOSObject().getDictionaryObje ct(COSName.PERMS);
if (base instanceof COSDictionary) if (base instanceof COSDictionary)
{ {
COSDictionary permsDict = (COSDictionary) base; COSDictionary permsDict = (COSDictionary) base;
base = permsDict.getDictionaryObject(COSName.DOCMDP); base = permsDict.getDictionaryObject(COSName.DOCMDP);
if (base instanceof COSDictionary) if (base instanceof COSDictionary)
{ {
COSDictionary signatureDict = (COSDictionary) base; COSDictionary signatureDict = (COSDictionary) base;
base = signatureDict.getDictionaryObject("Reference"); base = signatureDict.getDictionaryObject(COSName.REFERENCE);
if (base instanceof COSArray) if (base instanceof COSArray)
{ {
COSArray refArray = (COSArray) base; COSArray refArray = (COSArray) base;
for (int i = 0; i < refArray.size(); ++i) for (int i = 0; i < refArray.size(); ++i)
{ {
base = refArray.getObject(i); base = refArray.getObject(i);
if (base instanceof COSDictionary) if (base instanceof COSDictionary)
{ {
COSDictionary sigRefDict = (COSDictionary) base; COSDictionary sigRefDict = (COSDictionary) base;
if (COSName.DOCMDP.equals(sigRefDict.getDictionaryOb ject("TransformMethod"))) if (COSName.DOCMDP.equals(sigRefDict.getDictionaryOb ject(COSName.TRANSFORM_METHOD)))
{ {
base = sigRefDict.getDictionaryObject("Transform Params"); base = sigRefDict.getDictionaryObject(COSName.TR ANSFORM_PARAMS);
if (base instanceof COSDictionary) if (base instanceof COSDictionary)
{ {
COSDictionary transformDict = (COSDictionary ) base; COSDictionary transformDict = (COSDictionary ) base;
int accessPermissions = transformDict.getInt (COSName.P, 2); int accessPermissions = transformDict.getInt (COSName.P, 2);
if (accessPermissions < 1 || accessPermissio ns > 3) if (accessPermissions < 1 || accessPermissio ns > 3)
{ {
accessPermissions = 2; accessPermissions = 2;
} }
return accessPermissions; return accessPermissions;
} }
skipping to change at line 156 skipping to change at line 156
if (sig.getCOSObject().containsKey(COSName.CONTENTS)) if (sig.getCOSObject().containsKey(COSName.CONTENTS))
{ {
throw new IOException("DocMDP transform method not allowed if an approval signature exists"); throw new IOException("DocMDP transform method not allowed if an approval signature exists");
} }
} }
COSDictionary sigDict = signature.getCOSObject(); COSDictionary sigDict = signature.getCOSObject();
// DocMDP specific stuff // DocMDP specific stuff
COSDictionary transformParameters = new COSDictionary(); COSDictionary transformParameters = new COSDictionary();
transformParameters.setItem(COSName.TYPE, COSName.getPDFName("TransformP arams")); transformParameters.setItem(COSName.TYPE, COSName.TRANSFORM_PARAMS);
transformParameters.setInt(COSName.P, accessPermissions); transformParameters.setInt(COSName.P, accessPermissions);
transformParameters.setName(COSName.V, "1.2"); transformParameters.setName(COSName.V, "1.2");
transformParameters.setNeedToBeUpdated(true); transformParameters.setNeedToBeUpdated(true);
COSDictionary referenceDict = new COSDictionary(); COSDictionary referenceDict = new COSDictionary();
referenceDict.setItem(COSName.TYPE, COSName.getPDFName("SigRef")); referenceDict.setItem(COSName.TYPE, COSName.SIG_REF);
referenceDict.setItem("TransformMethod", COSName.DOCMDP); referenceDict.setItem(COSName.TRANSFORM_METHOD, COSName.DOCMDP);
referenceDict.setItem("DigestMethod", COSName.getPDFName("SHA1")); referenceDict.setItem(COSName.DIGEST_METHOD, COSName.getPDFName("SHA1"))
referenceDict.setItem("TransformParams", transformParameters); ;
referenceDict.setItem(COSName.TRANSFORM_PARAMS, transformParameters);
referenceDict.setNeedToBeUpdated(true); referenceDict.setNeedToBeUpdated(true);
COSArray referenceArray = new COSArray(); COSArray referenceArray = new COSArray();
referenceArray.add(referenceDict); referenceArray.add(referenceDict);
sigDict.setItem("Reference", referenceArray); sigDict.setItem(COSName.REFERENCE, referenceArray);
referenceArray.setNeedToBeUpdated(true); referenceArray.setNeedToBeUpdated(true);
// Catalog // Catalog
COSDictionary catalogDict = doc.getDocumentCatalog().getCOSObject(); COSDictionary catalogDict = doc.getDocumentCatalog().getCOSObject();
COSDictionary permsDict = new COSDictionary(); COSDictionary permsDict = new COSDictionary();
catalogDict.setItem(COSName.PERMS, permsDict); catalogDict.setItem(COSName.PERMS, permsDict);
permsDict.setItem(COSName.DOCMDP, signature); permsDict.setItem(COSName.DOCMDP, signature);
catalogDict.setNeedToBeUpdated(true); catalogDict.setNeedToBeUpdated(true);
permsDict.setNeedToBeUpdated(true); permsDict.setNeedToBeUpdated(true);
} }
 End of changes. 6 change blocks. 
9 lines changed or deleted 10 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)