Skip to main content
All docs
V24.2

PdfPkcs7Signature.CheckCertificateRevocation(DateTime, PdfRevocationVerificationOptions) Method

Returns information about signature certificate revocation.

Namespace: DevExpress.Pdf

Assembly: DevExpress.Pdf.v24.2.Core.dll

NuGet Package: DevExpress.Pdf.Core

Declaration

public PdfCertificateRevocationResult CheckCertificateRevocation(
    DateTime dateTime,
    PdfRevocationVerificationOptions options
)

Parameters

Name Type Description
dateTime DateTime

Time in UTC associated with the signature certificate.

options PdfRevocationVerificationOptions

A PdfRevocationVerificationOptions object that contains settings used to verify signature revocation status online.

Returns

Type Description
PdfCertificateRevocationResult

A PdfCertificateRevocationResult object that contains information about signature certificate revocation.

Remarks

The following code snippet checks the status of signature certificates in the “Signed_file.pdf” file:

using DevExpress.Pdf;

namespace ConsoleApp {
    internal class Program {
        static void Main(string[] args) {
            CheckCertificateRevocationInfo();
        }
        public static void CheckCertificateRevocationInfo() {
            using (PdfDocumentSigner documentSigner = new PdfDocumentSigner("Signed_file.pdf"))
                // Retrieve the list of `PdfSignatureInfo` objects in the document.
                foreach (var signature in documentSigner.GetSignatureInfo()){
                    Console.WriteLine("Signature field name : {0}", signature.FieldName);
                    Console.WriteLine("Signer name : {0}", signature.SignerName);
                    var pkcs7 = documentSigner.GetPdfPkcs7Signature(signature.FieldName);
                    Console.WriteLine("Is signature valid? : {0}", pkcs7.VerifySignature());
                    // Check wheter CRL/OCSP responses are embedded in the signature. If not, request them online.
                    Console.WriteLine("Is CRL embedded?: {0}", pkcs7.CrlList != null);
                    Console.WriteLine("Is OCSP embedded?: {0}", pkcs7.OcspList != null);
                    PdfRevocationVerificationOptions options = new PdfRevocationVerificationOptions(){
                        TryFetchCrlOnline = pkcs7.CrlList == null,
                        TryFetchOcspOnline = pkcs7.OcspList == null,
                    };
                    // Obtain information about signature certificate revocation.
                    var result = pkcs7.CheckCertificateRevocation(DateTime.UtcNow, options);
                    Console.WriteLine("Is certificate revoked?: {0}", result.IsCrlRevoked);
                    if (result.IsCrlRevoked)
                        Console.WriteLine("Is CRL found online?: {0}", result.IsCrlFoundOnline);
                    Console.WriteLine("OCSP Response Status: {0}", result.OcspRevocationStatus);
                    if (result.OcspRevocationStatus != PdfOcspRevocationStatus.None)
                        Console.WriteLine("Is OCSP found online?: {0}", result.IsOcspFoundOnline);
                    // Check whether the signature is a TimeStamp.
                    Console.WriteLine("Is Document Timestamp?: {0}", pkcs7.IsDocumentTimeStamp);
                    Console.WriteLine();
                }
        }

    }
}       

The result is shown below:

Signature field name : Signature1
Signer name : DevExpress Demo
Is signature valid? : True
Is CRL embedded?: False
Is OCSP embedded?: False
Is certificate revoked?: False
OCSP Response Status: Good
Is OCSP found online: True
Is Document Timestamp: False

Signature field name : Signature1
Signer name : DevExpress Demo
Is signature valid? : True
Is CRL embedded?: False
Is OCSP embedded?: False
Is certificate revoked?: False
OCSP Response Status: Unknown
Is OCSP found online: True
Is Document Timestamp: True
See Also