Package com.itextpdf.text.pdf.security
Class LtvVerification
- java.lang.Object
-
- com.itextpdf.text.pdf.security.LtvVerification
-
public class LtvVerification extends java.lang.ObjectAdd verification according to PAdES-LTV (part 4)
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classLtvVerification.CertificateInclusionCertificate inclusion in the DSS and VRI dictionaries in the CERT and CERTS keysstatic classLtvVerification.CertificateOptionOptions for how many certificates to includestatic classLtvVerification.LevelWhat type of verification to includeprivate static classLtvVerification.ValidationData
-
Field Summary
Fields Modifier and Type Field Description private AcroFieldsacroFieldsprivate LoggerLOGGERprivate PdfReaderreaderprivate PdfStamperstpprivate booleanusedprivate java.util.Map<PdfName,LtvVerification.ValidationData>validatedprivate PdfWriterwriter
-
Constructor Summary
Constructors Constructor Description LtvVerification(PdfStamper stp)The verification constructor.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanaddVerification(java.lang.String signatureName, OcspClient ocsp, CrlClient crl, LtvVerification.CertificateOption certOption, LtvVerification.Level level, LtvVerification.CertificateInclusion certInclude)Add verification for a particular signaturebooleanaddVerification(java.lang.String signatureName, java.util.Collection<byte[]> ocsps, java.util.Collection<byte[]> crls, java.util.Collection<byte[]> certs)Alternative addVerification.private static byte[]buildOCSPResponse(byte[] BasicOCSPResponse)private voidcreateDss()private static voiddeleteOldReferences(PdfArray all, PdfArray toDelete)private java.security.cert.X509CertificategetParent(java.security.cert.X509Certificate cert, java.security.cert.Certificate[] certs)Returns the issuing certificate for a child certificate.private PdfNamegetSignatureHashKey(java.lang.String signatureName)private static byte[]hashBytesSha1(byte[] b)voidmerge()Merges the validation with any validation already in the document or creates a new one.private voidoutputDss(PdfDictionary dss, PdfDictionary vrim, PdfArray ocsps, PdfArray crls, PdfArray certs)private voidupdateDss()
-
-
-
Field Detail
-
LOGGER
private Logger LOGGER
-
stp
private PdfStamper stp
-
writer
private PdfWriter writer
-
reader
private PdfReader reader
-
acroFields
private AcroFields acroFields
-
validated
private java.util.Map<PdfName,LtvVerification.ValidationData> validated
-
used
private boolean used
-
-
Constructor Detail
-
LtvVerification
public LtvVerification(PdfStamper stp)
The verification constructor. This class should only be created with PdfStamper.getLtvVerification() otherwise the information will not be added to the Pdf.- Parameters:
stp- the PdfStamper to apply the validation to
-
-
Method Detail
-
addVerification
public boolean addVerification(java.lang.String signatureName, OcspClient ocsp, CrlClient crl, LtvVerification.CertificateOption certOption, LtvVerification.Level level, LtvVerification.CertificateInclusion certInclude) throws java.io.IOException, java.security.GeneralSecurityExceptionAdd verification for a particular signature- Parameters:
signatureName- the signature to validate (it may be a timestamp)ocsp- the interface to get the OCSPcrl- the interface to get the CRLcertOption-level- the validation options to includecertInclude-- Returns:
- true if a validation was generated, false otherwise
- Throws:
java.security.GeneralSecurityExceptionjava.io.IOException
-
getParent
private java.security.cert.X509Certificate getParent(java.security.cert.X509Certificate cert, java.security.cert.Certificate[] certs)Returns the issuing certificate for a child certificate.- Parameters:
cert- the certificate for which we search the parentcerts- an array with certificates that contains the parent- Returns:
- the partent certificate
-
addVerification
public boolean addVerification(java.lang.String signatureName, java.util.Collection<byte[]> ocsps, java.util.Collection<byte[]> crls, java.util.Collection<byte[]> certs) throws java.io.IOException, java.security.GeneralSecurityExceptionAlternative addVerification. I assume that inputs are deduplicated.- Throws:
java.io.IOExceptionjava.security.GeneralSecurityException
-
buildOCSPResponse
private static byte[] buildOCSPResponse(byte[] BasicOCSPResponse) throws java.io.IOException- Throws:
java.io.IOException
-
getSignatureHashKey
private PdfName getSignatureHashKey(java.lang.String signatureName) throws java.security.NoSuchAlgorithmException, java.io.IOException
- Throws:
java.security.NoSuchAlgorithmExceptionjava.io.IOException
-
hashBytesSha1
private static byte[] hashBytesSha1(byte[] b) throws java.security.NoSuchAlgorithmException- Throws:
java.security.NoSuchAlgorithmException
-
merge
public void merge() throws java.io.IOExceptionMerges the validation with any validation already in the document or creates a new one.- Throws:
java.io.IOException
-
updateDss
private void updateDss() throws java.io.IOException- Throws:
java.io.IOException
-
createDss
private void createDss() throws java.io.IOException- Throws:
java.io.IOException
-
outputDss
private void outputDss(PdfDictionary dss, PdfDictionary vrim, PdfArray ocsps, PdfArray crls, PdfArray certs) throws java.io.IOException
- Throws:
java.io.IOException
-
-