Class PDDocumentUtils

java.lang.Object
br.ufsc.labsec.signature.conformanceVerifier.pdf.PDDocumentUtils

public class PDDocumentUtils extends Object
Esta classe engloba métodos úteis para lidar com modificações no arquivo PDF.
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static class 
     
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final org.apache.pdfbox.cos.COSName
     
    static final org.apache.pdfbox.cos.COSName
     
    static final org.apache.pdfbox.cos.COSName
     
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    static boolean
    allValidEntries(org.apache.pdfbox.cos.COSDictionary base, Set<org.apache.pdfbox.cos.COSName> validEntries)
     
    static <T extends org.apache.pdfbox.cos.COSBase>
    Optional<T>
    as(org.apache.pdfbox.cos.COSBase b, Class<T> clazz)
     
    static org.apache.pdfbox.cos.COSObject
    asCOSObject(org.apache.pdfbox.cos.COSBase b)
     
    static <T extends org.apache.pdfbox.cos.COSBase>
    boolean
    compare(org.apache.pdfbox.cos.COSArray array1, org.apache.pdfbox.cos.COSArray array2, Class<T> clazz)
     
    static int
    comparePosition(org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature signature1, org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature signature2)
     
    static boolean
    containsTransformMethod(org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature signature)
     
    static void
    copyVisualSignature(org.apache.pdfbox.pdmodel.PDDocument document, org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature signature)
    Copia a representação visual de uma assinatura para todas as páginas.
    static byte[]
     
    static byte[]
    digest(org.bouncycastle.asn1.ASN1ObjectIdentifier identifier, PadesSignature signature)
     
    static byte[]
     
    static byte[]
    DIGEST(org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature signature, byte[] pdfBytes)
     
    static byte[]
    DIGEST(org.bouncycastle.asn1.ASN1ObjectIdentifier identifier, PadesSignature signature)
     
    static boolean
    equalLock(org.apache.pdfbox.cos.COSBase base, org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature signature)
     
    static org.apache.pdfbox.cos.COSName
    fieldTypeFromHierarchy(org.apache.pdfbox.cos.COSBase base)
     
    static String
    formatXpath(String before, String now)
    Formata o XPath de uma assinatura PDF, dado o Xpath anterior e o que deve ser concatenado
    static Optional<org.apache.pdfbox.cos.COSDictionary>
    getAcroForm(org.apache.pdfbox.cos.COSDocument document)
     
    getApprovalSignatures(org.apache.pdfbox.pdmodel.PDDocument document, org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature certificationSignature)
     
    static String
    getBaseIdentification(boolean isSignature)
     
    static Optional<org.apache.pdfbox.cos.COSDictionary>
    getCatalog(org.apache.pdfbox.cos.COSDocument document)
     
    getCertificationSignature(org.apache.pdfbox.pdmodel.PDDocument document)
     
    static org.apache.pdfbox.cos.COSBase
    getDocMDP(org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature signature)
    Retorna o dicionário DocMDP do objeto de assinatura.
    static int
    getDocMDPValue(org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature signature)
    Retorna o valor do parâmetro P do dicionário DocMDP.
    static int
    getDocMDPValueOrElse(org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature signature, int defaultValue)
    Retorna o valor do parâmetro P do dicionário DocMDP ou um valor padrão caso não exista.
    static Stream<org.apache.commons.lang3.tuple.Pair<org.apache.pdfbox.cos.COSString, org.apache.pdfbox.cos.COSBase>>
    getEmbeddedFiles(org.apache.pdfbox.cos.COSDocument document)
     
    static Stream<org.apache.commons.lang3.tuple.Pair<byte[],String>>
    getEmbeddedFiles(org.apache.pdfbox.cos.COSDocument pdfDoc, String xpathBefore)
    Checa se há EmbeddedFiles no documento que está sendo analisado e, caso possua, faça recursão de geração de relatório
    static org.apache.pdfbox.cos.COSBase
    getEntry(org.apache.pdfbox.cos.COSBase base, org.apache.pdfbox.cos.COSName name)
     
    static org.apache.pdfbox.cos.COSBase
    getFieldMDP(org.apache.pdfbox.cos.COSBase base)
     
    static org.apache.pdfbox.cos.COSBase
    getFieldMDP(org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature signature)
     
    static List<org.apache.pdfbox.cos.COSBase>
    getFieldsFromHierarchy(org.apache.pdfbox.cos.COSArray array)
     
    static void
    getFieldsFromHierarchy(org.apache.pdfbox.cos.COSArray array, List<org.apache.pdfbox.cos.COSBase> leafFields)
     
    static List<org.apache.pdfbox.cos.COSBase>
    getFieldsFromHierarchy(org.apache.pdfbox.cos.COSDocument document)
     
    static org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature
    getFirstSignature(org.apache.pdfbox.pdmodel.PDDocument document, boolean withUpdateRules)
    Retorna a primeira assinatura realizada no documento, conforme o byte range de atualizações incrementais
    static String
    getFullyQualifiedName(org.apache.pdfbox.cos.COSBase base)
     
    static org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature
    getLastSignature(org.apache.pdfbox.pdmodel.PDDocument document)
    Retorna a última assinatura realizada no documento
    static Stream<org.apache.commons.lang3.tuple.Pair<org.apache.pdfbox.cos.COSString, org.apache.pdfbox.cos.COSBase>>
    getNamedObjects(org.apache.pdfbox.cos.COSDictionary treeNode)
     
    static Stream<org.apache.commons.lang3.tuple.Pair<org.apache.pdfbox.cos.COSString, org.apache.pdfbox.cos.COSBase>>
    getNamedObjects(org.apache.pdfbox.cos.COSDictionary nameDictionary, org.apache.pdfbox.cos.COSName entry)
     
    static Stream<org.apache.commons.lang3.tuple.Pair<org.apache.pdfbox.cos.COSString, org.apache.pdfbox.cos.COSBase>>
    getNamedPages(org.apache.pdfbox.cos.COSDocument document)
     
    static Optional<org.apache.pdfbox.cos.COSDictionary>
    getNamesDictionary(org.apache.pdfbox.cos.COSDocument document)
     
    static String
    getObjectIdentification(org.apache.pdfbox.cos.COSObject object, boolean isSignature)
    Formata as Strings que representam a identificação de uma assinatura no documento PDF (equivalente a XPath)
    static List<org.apache.pdfbox.cos.COSBase>
    getPageObjects(org.apache.pdfbox.cos.COSDocument document)
     
    static List<org.apache.pdfbox.cos.COSBase>
    getPageObjects(org.apache.pdfbox.pdmodel.PDDocument document)
     
    static org.apache.pdfbox.cos.COSBase
    getReference(org.apache.pdfbox.cos.COSBase base, org.apache.pdfbox.cos.COSName method)
     
    static org.apache.pdfbox.cos.COSBase
    getReference(org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature signature, org.apache.pdfbox.cos.COSName method)
     
    static String
    getReferenceFromSignature(List<org.apache.pdfbox.pdmodel.interactive.form.PDSignatureField> rawSignatures, org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature signature)
    Correlacionar o COSObject de rawSignatures com a instância de PDSignature, por seus dicionários
    static Optional<org.apache.pdfbox.cos.COSArray>
    getReferences(org.apache.pdfbox.cos.COSBase base)
     
    static Optional<org.apache.pdfbox.cos.COSArray>
    getReferences(org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature signature)
     
    static List<org.apache.pdfbox.cos.COSDictionary>
    getReferencesAsList(org.apache.pdfbox.cos.COSBase base)
     
    static List<org.apache.pdfbox.cos.COSDictionary>
    getReferencesAsList(org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature signature)
     
    static Optional<org.apache.pdfbox.cos.COSArray>
    getRootFields(org.apache.pdfbox.cos.COSDocument document)
     
    static List<org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature>
    getSignatures(org.apache.pdfbox.pdmodel.PDDocument document)
     
    static org.apache.pdfbox.pdmodel.PDDocument
    getSignedDocument(byte[] pdfBytes, org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature signature)
     
    static org.apache.pdfbox.cos.COSBase
    getWidgetParent(org.apache.pdfbox.cos.COSBase base)
     
    static boolean
    hasDocMDP(org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature signature)
     
    static boolean
    hasDocMDP(org.apache.pdfbox.pdmodel.PDDocument document)
     
    static boolean
    hasEntry(org.apache.pdfbox.cos.COSBase base, org.apache.pdfbox.cos.COSName entry)
     
    static boolean
    hasFieldMDP(org.apache.pdfbox.cos.COSBase base)
     
    static boolean
    hasFieldMDP(org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature signature)
     
    static boolean
    hasJavaScript(org.apache.pdfbox.pdmodel.PDDocument document)
     
    static boolean
    isAnnotation(org.apache.pdfbox.cos.COSBase base)
     
    static boolean
    isField(org.apache.pdfbox.cos.COSBase base)
     
    static boolean
    isNonTerminalField(org.apache.pdfbox.cos.COSBase base)
     
    static boolean
    isPage(org.apache.pdfbox.cos.COSBase base)
     
    static boolean
    isPageNode(org.apache.pdfbox.cos.COSBase base)
     
    static boolean
    isPageObject(org.apache.pdfbox.cos.COSBase base)
     
    static boolean
    isSignatureDictionary(org.apache.pdfbox.cos.COSBase base, boolean timestamp)
     
    static boolean
    isSignatureField(org.apache.pdfbox.cos.COSBase base)
     
    static boolean
    isSignatureField(org.apache.pdfbox.cos.COSBase base, boolean timestamp)
     
    static boolean
    isSignatureWidget(org.apache.pdfbox.cos.COSBase base)
     
    static boolean
    isSignedSignatureField(org.apache.pdfbox.cos.COSBase base)
     
    static boolean
    isTerminalField(org.apache.pdfbox.cos.COSBase base)
     
    static boolean
    isTimestampWidget(org.apache.pdfbox.cos.COSBase base)
     
    static boolean
    isUnsignedSignatureField(org.apache.pdfbox.cos.COSBase base)
     
    static boolean
    isWidget(org.apache.pdfbox.cos.COSBase base)
     
    static org.apache.pdfbox.pdmodel.PDDocument
    openPDDocument(byte[] documentBytes)
     
    static org.apache.pdfbox.pdmodel.PDDocument
    openPDDocument(InputStream documentStream)
     
    static org.apache.pdfbox.pdmodel.PDDocument
    openPDDocument(InputStream documentStream, int size)
     
    static boolean
    signs(org.apache.pdfbox.cos.COSDictionary signature, long offset)
     
    static boolean
    signs(org.apache.pdfbox.cos.COSDictionary signature, org.apache.pdfbox.cos.COSObjectKey key, org.apache.pdfbox.cos.COSDocument document)
     
    static boolean
    signs(org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature signature, long offset)
     
    static boolean
    signs(org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature signature, org.apache.pdfbox.cos.COSObjectKey key, org.apache.pdfbox.cos.COSDocument document)
     
    static boolean
    signs(org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature signature, org.apache.pdfbox.cos.COSObject object, org.apache.pdfbox.cos.COSDocument document)
     

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • ETSI_RFC3161

      public static final org.apache.pdfbox.cos.COSName ETSI_RFC3161
    • LOCK

      public static final org.apache.pdfbox.cos.COSName LOCK
    • ACTION

      public static final org.apache.pdfbox.cos.COSName ACTION
  • Constructor Details

    • PDDocumentUtils

      public PDDocumentUtils()
  • Method Details

    • getLastSignature

      public static org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature getLastSignature(org.apache.pdfbox.pdmodel.PDDocument document)
      Retorna a última assinatura realizada no documento
      Parameters:
      document - Documento PDF
      Returns:
      A última assinatura do documento
    • getFirstSignature

      public static org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature getFirstSignature(org.apache.pdfbox.pdmodel.PDDocument document, boolean withUpdateRules)
      Retorna a primeira assinatura realizada no documento, conforme o byte range de atualizações incrementais
      Parameters:
      document - Documento PDF
      Returns:
      A primeira assinatura do documento
    • getReferences

      public static Optional<org.apache.pdfbox.cos.COSArray> getReferences(org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature signature)
    • getReferences

      public static Optional<org.apache.pdfbox.cos.COSArray> getReferences(org.apache.pdfbox.cos.COSBase base)
    • getReferencesAsList

      public static List<org.apache.pdfbox.cos.COSDictionary> getReferencesAsList(org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature signature)
    • getReferencesAsList

      public static List<org.apache.pdfbox.cos.COSDictionary> getReferencesAsList(org.apache.pdfbox.cos.COSBase base)
    • containsTransformMethod

      public static boolean containsTransformMethod(org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature signature)
    • getFullyQualifiedName

      public static String getFullyQualifiedName(org.apache.pdfbox.cos.COSBase base)
    • isWidget

      public static boolean isWidget(org.apache.pdfbox.cos.COSBase base)
    • isPage

      public static boolean isPage(org.apache.pdfbox.cos.COSBase base)
    • isPageNode

      public static boolean isPageNode(org.apache.pdfbox.cos.COSBase base)
    • isPageObject

      public static boolean isPageObject(org.apache.pdfbox.cos.COSBase base)
    • getPageObjects

      public static List<org.apache.pdfbox.cos.COSBase> getPageObjects(org.apache.pdfbox.pdmodel.PDDocument document)
    • getPageObjects

      public static List<org.apache.pdfbox.cos.COSBase> getPageObjects(org.apache.pdfbox.cos.COSDocument document)
    • getCatalog

      public static Optional<org.apache.pdfbox.cos.COSDictionary> getCatalog(org.apache.pdfbox.cos.COSDocument document)
    • getAcroForm

      public static Optional<org.apache.pdfbox.cos.COSDictionary> getAcroForm(org.apache.pdfbox.cos.COSDocument document)
    • getRootFields

      public static Optional<org.apache.pdfbox.cos.COSArray> getRootFields(org.apache.pdfbox.cos.COSDocument document)
    • getFieldsFromHierarchy

      public static List<org.apache.pdfbox.cos.COSBase> getFieldsFromHierarchy(org.apache.pdfbox.cos.COSDocument document)
    • signs

      public static boolean signs(org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature signature, org.apache.pdfbox.cos.COSObject object, org.apache.pdfbox.cos.COSDocument document)
    • signs

      public static boolean signs(org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature signature, org.apache.pdfbox.cos.COSObjectKey key, org.apache.pdfbox.cos.COSDocument document)
    • signs

      public static boolean signs(org.apache.pdfbox.cos.COSDictionary signature, org.apache.pdfbox.cos.COSObjectKey key, org.apache.pdfbox.cos.COSDocument document)
    • getEntry

      public static org.apache.pdfbox.cos.COSBase getEntry(org.apache.pdfbox.cos.COSBase base, org.apache.pdfbox.cos.COSName name)
    • hasEntry

      public static boolean hasEntry(org.apache.pdfbox.cos.COSBase base, org.apache.pdfbox.cos.COSName entry)
    • equalLock

      public static boolean equalLock(org.apache.pdfbox.cos.COSBase base, org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature signature) throws IOException
      Throws:
      IOException
    • compare

      public static <T extends org.apache.pdfbox.cos.COSBase> boolean compare(org.apache.pdfbox.cos.COSArray array1, org.apache.pdfbox.cos.COSArray array2, Class<T> clazz)
    • signs

      public static boolean signs(org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature signature, long offset)
    • signs

      public static boolean signs(org.apache.pdfbox.cos.COSDictionary signature, long offset)
    • getFieldsFromHierarchy

      public static List<org.apache.pdfbox.cos.COSBase> getFieldsFromHierarchy(org.apache.pdfbox.cos.COSArray array)
    • getFieldsFromHierarchy

      public static void getFieldsFromHierarchy(org.apache.pdfbox.cos.COSArray array, List<org.apache.pdfbox.cos.COSBase> leafFields)
    • getNamesDictionary

      public static Optional<org.apache.pdfbox.cos.COSDictionary> getNamesDictionary(org.apache.pdfbox.cos.COSDocument document)
    • getEmbeddedFiles

      public static Stream<org.apache.commons.lang3.tuple.Pair<org.apache.pdfbox.cos.COSString, org.apache.pdfbox.cos.COSBase>> getEmbeddedFiles(org.apache.pdfbox.cos.COSDocument document)
    • getNamedPages

      public static Stream<org.apache.commons.lang3.tuple.Pair<org.apache.pdfbox.cos.COSString, org.apache.pdfbox.cos.COSBase>> getNamedPages(org.apache.pdfbox.cos.COSDocument document)
    • getNamedObjects

      public static Stream<org.apache.commons.lang3.tuple.Pair<org.apache.pdfbox.cos.COSString, org.apache.pdfbox.cos.COSBase>> getNamedObjects(org.apache.pdfbox.cos.COSDictionary nameDictionary, org.apache.pdfbox.cos.COSName entry)
    • getNamedObjects

      public static Stream<org.apache.commons.lang3.tuple.Pair<org.apache.pdfbox.cos.COSString, org.apache.pdfbox.cos.COSBase>> getNamedObjects(org.apache.pdfbox.cos.COSDictionary treeNode)
    • isAnnotation

      public static boolean isAnnotation(org.apache.pdfbox.cos.COSBase base)
    • isField

      public static boolean isField(org.apache.pdfbox.cos.COSBase base)
    • isSignedSignatureField

      public static boolean isSignedSignatureField(org.apache.pdfbox.cos.COSBase base)
    • isUnsignedSignatureField

      public static boolean isUnsignedSignatureField(org.apache.pdfbox.cos.COSBase base)
    • isSignatureField

      public static boolean isSignatureField(org.apache.pdfbox.cos.COSBase base)
    • isSignatureField

      public static boolean isSignatureField(org.apache.pdfbox.cos.COSBase base, boolean timestamp)
    • isSignatureDictionary

      public static boolean isSignatureDictionary(org.apache.pdfbox.cos.COSBase base, boolean timestamp)
    • comparePosition

      public static int comparePosition(org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature signature1, org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature signature2)
    • getCertificationSignature

      public static PDDocumentUtils.OurPDSignature getCertificationSignature(org.apache.pdfbox.pdmodel.PDDocument document)
    • getReference

      public static org.apache.pdfbox.cos.COSBase getReference(org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature signature, org.apache.pdfbox.cos.COSName method)
    • getReference

      public static org.apache.pdfbox.cos.COSBase getReference(org.apache.pdfbox.cos.COSBase base, org.apache.pdfbox.cos.COSName method)
    • getDocMDP

      public static org.apache.pdfbox.cos.COSBase getDocMDP(org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature signature)
      Retorna o dicionário DocMDP do objeto de assinatura.
      Parameters:
      signature - A assinatura do documento
      Returns:
      O dicionário DocMDP ou null se não existir
    • getDocMDPValue

      public static int getDocMDPValue(org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature signature)
      Retorna o valor do parâmetro P do dicionário DocMDP.
      Parameters:
      signature - A assinatura do documento
      Returns:
      O valor do parâmetro P ou -1 se não existir ou não for um dicionário válido
    • getDocMDPValueOrElse

      public static int getDocMDPValueOrElse(org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature signature, int defaultValue)
      Retorna o valor do parâmetro P do dicionário DocMDP ou um valor padrão caso não exista.
      Parameters:
      signature - A assinatura do documento
      defaultValue - O valor padrão a ser retornado caso o dicionário DocMDP não exista ou não contenha o parâmetro P
      Returns:
      O valor do parâmetro P ou o valor padrão fornecido
    • hasDocMDP

      public static boolean hasDocMDP(org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature signature)
    • hasDocMDP

      public static boolean hasDocMDP(org.apache.pdfbox.pdmodel.PDDocument document)
    • getFieldMDP

      public static org.apache.pdfbox.cos.COSBase getFieldMDP(org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature signature)
    • getFieldMDP

      public static org.apache.pdfbox.cos.COSBase getFieldMDP(org.apache.pdfbox.cos.COSBase base)
    • hasFieldMDP

      public static boolean hasFieldMDP(org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature signature)
    • hasFieldMDP

      public static boolean hasFieldMDP(org.apache.pdfbox.cos.COSBase base)
    • getApprovalSignatures

      public static List<PDDocumentUtils.OurPDSignature> getApprovalSignatures(org.apache.pdfbox.pdmodel.PDDocument document, org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature certificationSignature)
    • getSignedDocument

      public static org.apache.pdfbox.pdmodel.PDDocument getSignedDocument(byte[] pdfBytes, org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature signature) throws IOException
      Throws:
      IOException
    • getWidgetParent

      public static org.apache.pdfbox.cos.COSBase getWidgetParent(org.apache.pdfbox.cos.COSBase base)
    • isSignatureWidget

      public static boolean isSignatureWidget(org.apache.pdfbox.cos.COSBase base)
    • isTimestampWidget

      public static boolean isTimestampWidget(org.apache.pdfbox.cos.COSBase base)
    • isTerminalField

      public static boolean isTerminalField(org.apache.pdfbox.cos.COSBase base)
    • isNonTerminalField

      public static boolean isNonTerminalField(org.apache.pdfbox.cos.COSBase base)
    • fieldTypeFromHierarchy

      public static org.apache.pdfbox.cos.COSName fieldTypeFromHierarchy(org.apache.pdfbox.cos.COSBase base)
    • as

      public static <T extends org.apache.pdfbox.cos.COSBase> Optional<T> as(org.apache.pdfbox.cos.COSBase b, Class<T> clazz)
    • asCOSObject

      public static org.apache.pdfbox.cos.COSObject asCOSObject(org.apache.pdfbox.cos.COSBase b)
    • openPDDocument

      public static org.apache.pdfbox.pdmodel.PDDocument openPDDocument(byte[] documentBytes) throws IOException
      Throws:
      IOException
    • openPDDocument

      public static org.apache.pdfbox.pdmodel.PDDocument openPDDocument(InputStream documentStream) throws IOException
      Throws:
      IOException
    • openPDDocument

      public static org.apache.pdfbox.pdmodel.PDDocument openPDDocument(InputStream documentStream, int size) throws IOException
      Throws:
      IOException
    • getEmbeddedFiles

      public static Stream<org.apache.commons.lang3.tuple.Pair<byte[],String>> getEmbeddedFiles(org.apache.pdfbox.cos.COSDocument pdfDoc, String xpathBefore)
      Checa se há EmbeddedFiles no documento que está sendo analisado e, caso possua, faça recursão de geração de relatório
      Parameters:
      pdfDoc - Documento PDF analisado no momento
      xpathBefore - XPath anterior analisado (para montar hierarquias de assinaturas)
    • formatXpath

      public static String formatXpath(String before, String now)
      Formata o XPath de uma assinatura PDF, dado o Xpath anterior e o que deve ser concatenado
      Parameters:
      before - XPath anterior
      now - Xpath a ser concatenado
      Returns:
      XPath concatenado
    • getReferenceFromSignature

      public static String getReferenceFromSignature(List<org.apache.pdfbox.pdmodel.interactive.form.PDSignatureField> rawSignatures, org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature signature)
      Correlacionar o COSObject de rawSignatures com a instância de PDSignature, por seus dicionários
      Parameters:
      rawSignatures - Lista de COSObject correspondentes à assinaturas
      signature - Instância de PDSignature que deve ser feita correlação
      Returns:
      XPath de referência da assinatura
    • getObjectIdentification

      public static String getObjectIdentification(org.apache.pdfbox.cos.COSObject object, boolean isSignature)
      Formata as Strings que representam a identificação de uma assinatura no documento PDF (equivalente a XPath)
      Parameters:
      object - Objeto que detém a informação de identificação no documento
      Returns:
      XPath formatado de identificação da assinatura no documento PDF
    • getBaseIdentification

      public static String getBaseIdentification(boolean isSignature)
    • getSignatures

      public static List<org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature> getSignatures(org.apache.pdfbox.pdmodel.PDDocument document)
    • digest

      public static byte[] digest(PadesSignature signature) throws IOException
      Throws:
      IOException
    • digest

      public static byte[] digest(org.bouncycastle.asn1.ASN1ObjectIdentifier identifier, PadesSignature signature) throws IOException
      Throws:
      IOException
    • DIGEST

      public static byte[] DIGEST(PadesSignature signature)
    • DIGEST

      public static byte[] DIGEST(org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature signature, byte[] pdfBytes)
    • DIGEST

      public static byte[] DIGEST(org.bouncycastle.asn1.ASN1ObjectIdentifier identifier, PadesSignature signature)
    • copyVisualSignature

      public static void copyVisualSignature(org.apache.pdfbox.pdmodel.PDDocument document, org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature signature) throws IOException
      Copia a representação visual de uma assinatura para todas as páginas. Não faz nada caso a assinatura não seja encontrada no documento ou não tenha representação visual.
      Parameters:
      document - Documento com assinatura
      signature - Assinatura com representação visual a ser copiada
      Throws:
      IOException - Caso ocorra algum erro ao manipular o documento
    • hasJavaScript

      public static boolean hasJavaScript(org.apache.pdfbox.pdmodel.PDDocument document)
    • allValidEntries

      public static boolean allValidEntries(org.apache.pdfbox.cos.COSDictionary base, Set<org.apache.pdfbox.cos.COSName> validEntries)