Class SVTenabledPDFDocumentSigVerifier

java.lang.Object
se.swedenconnect.sigval.pdf.verify.impl.SVTenabledPDFDocumentSigVerifier
All Implemented Interfaces:
se.idsec.signservice.security.sign.pdf.PDFSignatureValidator, se.idsec.signservice.security.sign.SignatureValidator<byte[]>, ExtendedPDFSignatureValidator

public class SVTenabledPDFDocumentSigVerifier extends Object implements ExtendedPDFSignatureValidator
This class provides the functionality to validate signatures on a PDF where the signature validation process is enhanced with validation based on SVA (Signature Validation Assertions). The latest valid SVA that can be verified given the provided trust validation resources is selected. Signatures covered by this SVA is validated based on SVA. Any other signatures are validated through traditional signature validation methods.
Author:
Martin Lindström (martin@idsec.se), Stefan Santesson (stefan@idsec.se)
  • Field Details

    • LOG

      public static Logger LOG
  • Constructor Details

    • SVTenabledPDFDocumentSigVerifier

      public SVTenabledPDFDocumentSigVerifier(PDFSingleSignatureValidator pdfSingleSignatureValidator, PDFSignatureContextFactory pdfSignatureContextFactory)
      Constructor if no SVT validation is supported
      Parameters:
      pdfSingleSignatureValidator - The verifier used to verify signatures not supported by SVA
      pdfSignatureContextFactory - factory for creating an instance of signature context for the validated document
    • SVTenabledPDFDocumentSigVerifier

      public SVTenabledPDFDocumentSigVerifier(PDFSingleSignatureValidator pdfSingleSignatureValidator, PDFSVTValidator pdfsvtValidator, PDFSignatureContextFactory pdfSignatureContextFactory)
      Constructor
      Parameters:
      pdfSingleSignatureValidator - The verifier used to verify signatures not supported by SVA
      pdfsvtValidator - Certificate verifier for the certificate used to sign SVA tokens
      pdfSignatureContextFactory - factory for creating an instance of signature context for the validated document
  • Method Details

    • validate

      public List<se.idsec.signservice.security.sign.SignatureValidationResult> validate(File pdfDoc) throws SignatureException
      Verifies the signatures of a PDF document. Validation based on SVT is given preference over traditional signature validation.
      Parameters:
      pdfDoc - signed PDF document to verify
      Returns:
      Validation result from PDF verification
      Throws:
      SignatureException - on error
    • validate

      public List<se.idsec.signservice.security.sign.SignatureValidationResult> validate(byte[] pdfDocBytes) throws SignatureException
      Verifies the signatures of a PDF document. Validation based on SVA is given preference over traditional signature validation.
      Specified by:
      validate in interface se.idsec.signservice.security.sign.SignatureValidator<byte[]>
      Parameters:
      pdfDocBytes - signed PDF document to verify
      Returns:
      Validation result from PDF verification
      Throws:
      SignatureException - on error
    • isSigned

      public boolean isSigned(byte[] document) throws IllegalArgumentException
      Specified by:
      isSigned in interface se.idsec.signservice.security.sign.SignatureValidator<byte[]>
      Throws:
      IllegalArgumentException
    • getRequiredSignerCertificates

      public List<X509Certificate> getRequiredSignerCertificates()
      This implementation allways perform PKIX validation and returns an empty list for this function
      Specified by:
      getRequiredSignerCertificates in interface se.idsec.signservice.security.sign.SignatureValidator<byte[]>
      Returns:
      empty list
    • getCertificateValidator

      public se.idsec.signservice.security.certificate.CertificateValidator getCertificateValidator()
      Specified by:
      getCertificateValidator in interface se.idsec.signservice.security.sign.SignatureValidator<byte[]>
    • extendedResultValidation

      public SignedDocumentValidationResult<ExtendedPdfSigValResult> extendedResultValidation(byte[] pdfDocBytes) throws SignatureException
      Compile a complete PDF signature verification result object from the list of individual signature results
      Specified by:
      extendedResultValidation in interface ExtendedPDFSignatureValidator
      Parameters:
      pdfDocBytes - validate the complete PDF document and return concluding validation results for the complete document.
      Returns:
      PDF signature validation result objects
      Throws:
      SignatureException - errors validating signature
    • getConcludingSigVerifyResult

      public static SignedDocumentValidationResult<ExtendedPdfSigValResult> getConcludingSigVerifyResult(List<se.idsec.signservice.security.sign.SignatureValidationResult> sigVerifyResultList)
      Compile a complete PDF signature verification result object from the list of individual signature results
      Parameters:
      sigVerifyResultList - list of individual signature validation results. Each result must be of type ExtendedPdfSigValResult
      Returns:
      PDF signature validation result objects