public virtual void TestISAValidPdf() { String filePath = sourceFolder + "isaValidPdf.pdf"; String signatureName = "Signature1"; PdfDocument document = new PdfDocument(new PdfReader(filePath)); SignatureUtil sigUtil = new SignatureUtil(document); PdfPKCS7 pdfPKCS7 = sigUtil.ReadSignatureData(signatureName); NUnit.Framework.Assert.IsTrue(pdfPKCS7.VerifySignatureIntegrityAndAuthenticity()); NUnit.Framework.Assert.IsFalse(sigUtil.SignatureCoversWholeDocument(signatureName)); String textFromPage = PdfTextExtractor.GetTextFromPage(document.GetPage(1)); // We are working with the latest revision of the document, that's why we should get amended page text. // However Signature shall be marked as not covering the complete document, indicating its invalidity // for the current revision. NUnit.Framework.Assert.AreEqual("This is manipulated malicious text, ha-ha!", textFromPage); NUnit.Framework.Assert.AreEqual(2, sigUtil.GetTotalRevisions()); NUnit.Framework.Assert.AreEqual(1, sigUtil.GetRevision(signatureName)); Stream sigInputStream = sigUtil.ExtractRevision(signatureName); PdfDocument sigRevDocument = new PdfDocument(new PdfReader(sigInputStream)); SignatureUtil sigRevUtil = new SignatureUtil(sigRevDocument); PdfPKCS7 sigRevSignatureData = sigRevUtil.ReadSignatureData(signatureName); NUnit.Framework.Assert.IsTrue(sigRevSignatureData.VerifySignatureIntegrityAndAuthenticity()); NUnit.Framework.Assert.IsTrue(sigRevUtil.SignatureCoversWholeDocument(signatureName)); sigRevDocument.Close(); document.Close(); }