@@ -27,13 +27,19 @@ This file is part of the iText (R) project.
27
27
import com .itextpdf .kernel .exceptions .PdfException ;
28
28
import com .itextpdf .kernel .pdf .PdfDocument ;
29
29
import com .itextpdf .kernel .pdf .PdfReader ;
30
+ import com .itextpdf .kernel .pdf .StampingProperties ;
30
31
import com .itextpdf .signatures .exceptions .SignExceptionMessageConstant ;
32
+ import com .itextpdf .signatures .sign .PadesSigTest ;
33
+ import com .itextpdf .signatures .testutils .SignaturesCompareTool ;
31
34
import com .itextpdf .signatures .testutils .TimeTestUtil ;
35
+ import com .itextpdf .signatures .testutils .client .TestTsaClient ;
32
36
import com .itextpdf .test .ExtendedITextTest ;
33
37
import com .itextpdf .test .annotations .type .UnitTest ;
34
38
import com .itextpdf .test .signutils .Pkcs12FileHelper ;
35
39
40
+ import java .io .FileOutputStream ;
36
41
import java .io .IOException ;
42
+ import java .security .GeneralSecurityException ;
37
43
import java .security .InvalidKeyException ;
38
44
import java .security .KeyStoreException ;
39
45
import java .security .NoSuchAlgorithmException ;
@@ -43,6 +49,7 @@ This file is part of the iText (R) project.
43
49
import java .security .UnrecoverableKeyException ;
44
50
import java .security .cert .Certificate ;
45
51
import java .security .cert .CertificateException ;
52
+ import java .util .Arrays ;
46
53
import java .util .Calendar ;
47
54
import org .bouncycastle .jce .provider .BouncyCastleProvider ;
48
55
import org .bouncycastle .tsp .TimeStampToken ;
@@ -188,6 +195,38 @@ public void ocspGetTest() throws IOException {
188
195
EPS );
189
196
}
190
197
198
+ @ Test
199
+ public void verifyTimestampImprintSimpleSignatureTest () throws IOException , GeneralSecurityException {
200
+ PdfDocument outDocument = new PdfDocument (
201
+ new PdfReader (SOURCE_FOLDER + "simpleSignature.pdf" ));
202
+ PdfPKCS7 pkcs7 = new SignatureUtil (outDocument ).readSignatureData ("Signature1" );
203
+ Assert .assertFalse (pkcs7 .verifyTimestampImprint ());
204
+ }
205
+
206
+ @ Test
207
+ public void verifyTimestampImprintTimeStampSignatureTest () throws IOException , GeneralSecurityException {
208
+ PdfDocument outDocument = new PdfDocument (
209
+ new PdfReader (SOURCE_FOLDER + "timeStampSignature.pdf" ));
210
+ PdfPKCS7 pkcs7 = new SignatureUtil (outDocument ).readSignatureData ("timestampSig1" );
211
+ Assert .assertFalse (pkcs7 .verifyTimestampImprint ());
212
+ }
213
+
214
+ @ Test
215
+ public void verifyTimestampImprintEmbeddedTimeStampSignatureTest () throws IOException , GeneralSecurityException {
216
+ PdfDocument outDocument = new PdfDocument (
217
+ new PdfReader (SOURCE_FOLDER + "embeddedTimeStampSignature.pdf" ));
218
+ PdfPKCS7 pkcs7 = new SignatureUtil (outDocument ).readSignatureData ("Signature1" );
219
+ Assert .assertTrue (pkcs7 .verifyTimestampImprint ());
220
+ }
221
+
222
+ @ Test
223
+ public void verifyTimestampImprintCorruptedTimeStampSignatureTest () throws IOException , GeneralSecurityException {
224
+ PdfDocument outDocument = new PdfDocument (
225
+ new PdfReader (SOURCE_FOLDER + "embeddedTimeStampCorruptedSignature.pdf" ));
226
+ PdfPKCS7 pkcs7 = new SignatureUtil (outDocument ).readSignatureData ("Signature1" );
227
+ Assert .assertTrue (pkcs7 .verifyTimestampImprint ());
228
+ }
229
+
191
230
// PdfPKCS7 is created here the same way it's done in PdfSigner#signDetached
192
231
private static PdfPKCS7 createSimplePdfPKCS7 ()
193
232
throws NoSuchAlgorithmException , InvalidKeyException , NoSuchProviderException {
0 commit comments