static void Verify() { String digestAlgorithm = ""; String encryptionAlgorithm = ""; DateTime signDate; bool verifyTimeStamp = false; Org.BouncyCastle.X509.X509Certificate signCert; bool revokeStatus = false; bool isTSP = false; PdfDocument pdfDocument = new PdfDocument(new PdfReader("c:\\temp\\valid signed contract.pdf")); // Checks that signature is genuine and the document was not modified. Boolean genuineAndWasNotModified = false; String signatureFieldName = "Signature1"; SignatureUtil signatureUtil = new SignatureUtil(pdfDocument); try { PdfPKCS7 signature1 = signatureUtil.ReadSignatureData(signatureFieldName); if (signature1 != null) { genuineAndWasNotModified = signature1.VerifySignatureIntegrityAndAuthenticity(); digestAlgorithm = signature1.GetDigestAlgorithm(); encryptionAlgorithm = signature1.GetEncryptionAlgorithm(); signDate = signature1.GetTimeStampDate(); verifyTimeStamp = signature1.VerifyTimestampImprint(); signDate = signature1.GetSignDate(); signCert = signature1.GetSigningCertificate(); isTSP = signature1.IsTsp(); revokeStatus = signature1.IsRevocationValid(); } } catch (iText.Signatures.VerificationException issue) { issue. } catch (Exception ignored) { // ignoring exceptions, // we are only interested in signatures that are passing the check successfully } pdfDocument.Close(); }