Skip to main content
All docs
V25.1
  • DevExpress v25.1 Update — Your Feedback Matters

    Our What's New in v25.1 webpage includes product-specific surveys. Your response to our survey questions will help us measure product satisfaction for features released in this major update and help us refine our plans for our next major release.

    Take the survey Not interested

    SignatureCheckResult Class

    Contains signature check result details.

    Namespace: DevExpress.Office.DigitalSignatures

    Assembly: DevExpress.Docs.v25.1.dll

    NuGet Package: DevExpress.Document.Processor

    #Declaration

    public class SignatureCheckResult

    #Remarks

    The following properties allow you to retrieve the list of SignatureCheckResult objects:

    Property Description
    SignatureValidationInfo.PassedCheckDetails Gets information about passed verifications.
    SignatureValidationInfo.FailedCheckDetails Obtains information about failed verifications.
    SignatureValidationInfo.CheckDetails Gets information about all verifications.

    The code sample below validates signatures in a DOCX and XLSX document, checks the result, and displays information in the console:

    using DevExpress.Office.DigitalSignatures;
    using System.Diagnostics;
    using System.Net;
    
    static void Main(string[] args)
    {
        ValidateSignature("Template_signed.docx");
        ValidateSignature("Template_signed.xlsx");
    }
    
    private static void ValidateSignature(string path)
    {
        DocumentSigner validator = new DocumentSigner();
    
        //In this example, certificate validation is skipped
        SignatureValidationOptions validationOptions = new SignatureValidationOptions();
        validationOptions.ValidationFlags = ~ValidationFlags.ValidateSignatureCertificate & ~ValidationFlags.ValidateTimestampCertificate;
    
        //Validate the signature:
        PackageSignatureValidation signatureValidation = validator.Validate(path, validationOptions);
        AnalyzeValidationResult(signatureValidation);        
    
    }
    
    private static void AnalyzeValidationResult(PackageSignatureValidation signatureValidation)
    {
        string validationMessage = signatureValidation.ResultMessage;
    
        //Check validation result and show information in the console:
        switch (signatureValidation.Result)
        {
            case PackageSignatureValidationResult.Valid:
                Console.WriteLine(validationMessage); Console.ReadKey();
                Process.Start(output);
                break;
    
            case PackageSignatureValidationResult.SignaturesNotFound:
                Console.WriteLine(validationMessage);
                break;
    
            case PackageSignatureValidationResult.Invalid:
            case PackageSignatureValidationResult.PartiallyValid:
                var failedCheckDetails = signatureValidation.Items[0].FailedCheckDetails;
                Console.WriteLine(validationMessage);
                int i = 1;
                foreach (SignatureCheckResult checkResult in failedCheckDetails)
                {
                    Console.WriteLine(String.Format("Validation details {0}: \r\n" +
                        "{1} failed, Info: {2} \r\n", i, checkResult.CheckType, checkResult.Info));
                    i++;
                }
                Console.ReadKey();
                break;
        }
    }
    

    #Inheritance

    Object
    SignatureCheckResult
    See Also