
de.intarsys.pdf.crypt.AccessPermissionsTools Maven / Gradle / Ivy
package de.intarsys.pdf.crypt;
import de.intarsys.pdf.cos.COSDictionary;
import de.intarsys.pdf.cos.COSObject;
import de.intarsys.pdf.pd.PDDocument;
import de.intarsys.pdf.pd.PDSignature;
import de.intarsys.pdf.pd.PDSignatureReference;
import de.intarsys.pdf.pd.PDTransformMethod;
import de.intarsys.pdf.pd.PDTransformMethodDocMDP;
import java.util.Iterator;
import java.util.List;
public class AccessPermissionsTools {
private AccessPermissionsTools() {
}
public static IAccessPermissions createPermissions(PDDocument doc) {
IAccessPermissions delegate = doc.cosGetDoc().getAccessPermissions();
COSDictionary perms = doc.cosGetPermissionsDict();
if (perms != null) {
COSObject cosDocMDPSig = perms.get(PDTransformMethod.DK_DocMDP);
if (!cosDocMDPSig.isNull()) {
PDSignature sig = (PDSignature) PDSignature.META.createFromCos(cosDocMDPSig);
List references = sig.getSignatureReferences();
for (Iterator i = references.iterator(); i.hasNext(); ) {
PDSignatureReference reference = (PDSignatureReference) i.next();
if (reference.getTransformMethod() == PDTransformMethodDocMDP.SINGLETON) {
return new AccessPermissionsDocMDP(delegate, reference.getTransformParams());
}
}
}
}
return delegate;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy