You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ti...@apache.org on 2021/04/12 16:09:56 UTC
svn commit: r1888679 -
/pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/signature/validation/AddValidationInformation.java
Author: tilman
Date: Mon Apr 12 16:09:56 2021
New Revision: 1888679
URL: http://svn.apache.org/viewvc?rev=1888679&view=rev
Log:
PDFBOX-5157: use signing date from timestamp
Modified:
pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/signature/validation/AddValidationInformation.java
Modified: pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/signature/validation/AddValidationInformation.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/signature/validation/AddValidationInformation.java?rev=1888679&r1=1888678&r2=1888679&view=diff
==============================================================================
--- pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/signature/validation/AddValidationInformation.java (original)
+++ pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/signature/validation/AddValidationInformation.java Mon Apr 12 16:09:56 2021
@@ -57,6 +57,11 @@ import org.bouncycastle.asn1.ocsp.OCSPOb
import org.bouncycastle.cert.ocsp.BasicOCSPResp;
import org.bouncycastle.cert.ocsp.OCSPException;
import org.bouncycastle.cert.ocsp.OCSPResp;
+import org.bouncycastle.cms.CMSException;
+import org.bouncycastle.cms.CMSSignedData;
+import org.bouncycastle.tsp.TSPException;
+import org.bouncycastle.tsp.TimeStampToken;
+import org.bouncycastle.tsp.TimeStampTokenInfo;
/**
* An example for adding Validation Information to a signed PDF, inspired by ETSI TS 102 778-4
@@ -144,9 +149,17 @@ public class AddValidationInformation
{
certInfo = certInformationHelper.getLastCertInfo(signature, filename);
signDate = signature.getSignDate();
+ if ("ETSI.RFC3161".equals(signature.getSubFilter()))
+ {
+ byte[] contents = signature.getContents();
+ TimeStampToken timeStampToken = new TimeStampToken(new CMSSignedData(contents));
+ TimeStampTokenInfo timeStampInfo = timeStampToken.getTimeStampInfo();
+ signDate = Calendar.getInstance();
+ signDate.setTime(timeStampInfo.getGenTime());
+ }
}
}
- catch (CertificateProccessingException e)
+ catch (TSPException | CMSException | CertificateProccessingException e)
{
throw new IOException("An Error occurred processing the Signature", e);
}