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 2020/10/21 18:00:50 UTC
svn commit: r1882740 -
/pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/signature/ShowSignature.java
Author: tilman
Date: Wed Oct 21 18:00:49 2020
New Revision: 1882740
URL: http://svn.apache.org/viewvc?rev=1882740&view=rev
Log:
PDFBOX-3017: avoid NPE; refactor
Modified:
pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/signature/ShowSignature.java
Modified: pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/signature/ShowSignature.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/signature/ShowSignature.java?rev=1882740&r1=1882739&r2=1882740&view=diff
==============================================================================
--- pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/signature/ShowSignature.java (original)
+++ pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/signature/ShowSignature.java Wed Oct 21 18:00:49 2020
@@ -77,6 +77,7 @@ import org.bouncycastle.cms.jcajce.JcaSi
import org.bouncycastle.operator.OperatorCreationException;
import org.bouncycastle.tsp.TSPException;
import org.bouncycastle.tsp.TimeStampToken;
+import org.bouncycastle.tsp.TimeStampTokenInfo;
import org.bouncycastle.util.CollectionStore;
import org.bouncycastle.util.Selector;
import org.bouncycastle.util.Store;
@@ -373,18 +374,22 @@ public final class ShowSignature
OperatorCreationException, CertificateVerificationException, CertificateException
{
TimeStampToken timeStampToken = new TimeStampToken(new CMSSignedData(contents));
- System.out.println("Time stamp gen time: " + timeStampToken.getTimeStampInfo().getGenTime());
- System.out.println("Time stamp tsa name: " + timeStampToken.getTimeStampInfo().getTsa().getName());
+ TimeStampTokenInfo timeStampInfo = timeStampToken.getTimeStampInfo();
+ System.out.println("Time stamp gen time: " + timeStampInfo.getGenTime());
+ if (timeStampInfo.getTsa() != null)
+ {
+ System.out.println("Time stamp tsa name: " + timeStampInfo.getTsa().getName());
+ }
CertificateFactory factory = CertificateFactory.getInstance("X.509");
ByteArrayInputStream certStream = new ByteArrayInputStream(contents);
Collection<? extends Certificate> certs = factory.generateCertificates(certStream);
System.out.println("certs=" + certs);
- String hashAlgorithm = timeStampToken.getTimeStampInfo().getMessageImprintAlgOID().getId();
+ String hashAlgorithm = timeStampInfo.getMessageImprintAlgOID().getId();
// compare the hash of the signed content with the hash in the timestamp
if (Arrays.equals(MessageDigest.getInstance(hashAlgorithm).digest(buf),
- timeStampToken.getTimeStampInfo().getMessageImprintDigest()))
+ timeStampInfo.getMessageImprintDigest()))
{
System.out.println("ETSI.RFC3161 timestamp signature verified");
}
@@ -398,7 +403,7 @@ public final class ShowSignature
SigUtils.validateTimestampToken(timeStampToken);
SigUtils.verifyCertificateChain(timeStampToken.getCertificates(),
certFromTimeStamp,
- timeStampToken.getTimeStampInfo().getGenTime());
+ timeStampInfo.getGenTime());
}
/**