Class PDFSingleSignatureValidatorImpl

java.lang.Object
se.swedenconnect.sigval.pdf.verify.impl.PDFSingleSignatureValidatorImpl
All Implemented Interfaces:
PDFSingleSignatureValidator

public class PDFSingleSignatureValidatorImpl extends Object implements PDFSingleSignatureValidator
Implements verification of a PDF signature, validating the actual signature and signing certificates
Author:
Martin Lindström (martin@idsec.se), Stefan Santesson (stefan@idsec.se)
  • Constructor Details

    • PDFSingleSignatureValidatorImpl

      public PDFSingleSignatureValidatorImpl(se.idsec.signservice.security.certificate.CertificateValidator certificateValidator)
      Constructor
      Parameters:
      certificateValidator - the validator used to verify signing certificate chains
    • PDFSingleSignatureValidatorImpl

      public PDFSingleSignatureValidatorImpl(se.idsec.signservice.security.certificate.CertificateValidator certificateValidator, TimeStampPolicyVerifier timeStampPolicyVerifier)
      Constructor
      Parameters:
      certificateValidator - the validator used to verify signing certificate chains
      timeStampPolicyVerifier - verifier validating time stamps to a defined policy
    • PDFSingleSignatureValidatorImpl

      public PDFSingleSignatureValidatorImpl(se.idsec.signservice.security.certificate.CertificateValidator certificateValidator, PDFSignaturePolicyValidator pdfSignaturePolicyValidator, TimeStampPolicyVerifier timeStampPolicyVerifier)
      Constructor
      Parameters:
      certificateValidator - the validator used to verify signing certificate chains
      pdfSignaturePolicyValidator - verifier of the signature results according to a defined policy
      timeStampPolicyVerifier - verifier validating time stamps to a defined policy
  • Method Details

    • verifySignature

      public ExtendedPdfSigValResult verifySignature(org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature signature, byte[] pdfDocument, List<PDFDocTimeStamp> documentTimestamps, PDFSignatureContext signatureContext) throws Exception
      Verifies the signature on a PDF document
      Specified by:
      verifySignature in interface PDFSingleSignatureValidator
      Parameters:
      signature - PDF signature
      pdfDocument - PDF document
      documentTimestamps - document timestamps of the signed PDF document
      signatureContext - signature context data
      Returns:
      Signature validation result
      Throws:
      Exception - on errors during signature validation
    • verifyDocumentTimestamps

      public List<PDFDocTimeStamp> verifyDocumentTimestamps(List<org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature> documentTimestampSignatures, byte[] pdfDocument)
      Verifies document timestamps
      Specified by:
      verifyDocumentTimestamps in interface PDFSingleSignatureValidator
      Parameters:
      documentTimestampSignatures - list of PDF signatures holding document timestamps
      pdfDocument - the PDF document bytes of the PDF document containing the document timestamps
      Returns:
      list of PDF document timestamp objects PDFDocTimeStamp
    • getCertificateValidator

      public se.idsec.signservice.security.certificate.CertificateValidator getCertificateValidator()
      Returns the certificate validator used to validate certificates
      Specified by:
      getCertificateValidator in interface PDFSingleSignatureValidator
      Returns:
      certificate validator
    • verifyPadesProperties

      public void verifyPadesProperties(org.bouncycastle.cms.SignerInformation signer, ExtendedPdfSigValResult sigResult)
      Verifies the PAdES properties of this signature
      Parameters:
      signer - SignerInformation of this signature
      sigResult - signature result object for this signature