Back to Devexpress

SignatureOptions Class

officefileapi-devexpress-dot-office-dot-digitalsignatures-43d97e2c.md

latest4.3 KB
Original Source

SignatureOptions Class

Contains signature options.

Namespace : DevExpress.Office.DigitalSignatures

Assembly : DevExpress.Docs.v25.2.dll

NuGet Package : DevExpress.Document.Processor

Declaration

csharp
public class SignatureOptions
vb
Public Class SignatureOptions

Remarks

Pass the SignatureOptions object as the DocumentSigner.Sign method parameter to specify the signature parameters. The SignatureOptions.Certificate and SignatureOptions.DigestMethod properties are mandatory.

The code sample below specifies signature options and signs the file:

csharp
using DevExpress.Office.DigitalSignatures;
using DevExpress.Office.Tsp;
using System;
using System.Diagnostics;
using System.Security.Cryptography.X509Certificates;

static void SignDocument(string path, string output)
{
    DocumentSigner documentSigner = new DocumentSigner();
    documentSigner.Sign(path, output, CreateSignatureOptions(),
     new SignatureInfo());
    Process.Start(output);
}

static SignatureOptions CreateSignatureOptions()
{
  X509Certificate2 certificate = new X509Certificate2("Certificate/SignDemo.pfx", "dxdemo");
  Uri tsaServer = new Uri("https://freetsa.org/tsr");
  SignatureOptions options = new SignatureOptions();
  options.Certificate = certificate;
  if (tsaServer != null)
      options.TsaClient =
       new TsaClient(tsaServer, HashAlgorithmType.SHA256);

  options.SignatureFlags &= ~SignatureFlags.ValidateCertificate;
  options.CertificateKeyUsageFlags = X509KeyUsageFlags.None;
  options.DigestMethod = HashAlgorithmType.SHA256;

  X509ChainPolicy policy = new X509ChainPolicy();
  policy.RevocationMode = X509RevocationMode.NoCheck;
  policy.RevocationFlag = X509RevocationFlag.ExcludeRoot;
  policy.VerificationFlags |= X509VerificationFlags.AllowUnknownCertificateAuthority |
      X509VerificationFlags.IgnoreCertificateAuthorityRevocationUnknown;
  options.CertificatePolicy = policy;
  options.TimestampCertificatePolicy = policy;

    return options;
}
vb
Imports DevExpress.Office.DigitalSignatures
Imports DevExpress.Office.Tsp
Imports System
Imports System.Diagnostics
Imports System.Security.Cryptography.X509Certificates

Shared Sub SignDocument(ByVal path As String, ByVal output As String)
  Dim documentSigner As New DocumentSigner()
  documentSigner.Sign(path, output, CreateSignatureOptions(),
   New SignatureInfo())
  Process.Start(output)
End Sub

Shared Function CreateSignatureOptions() As SignatureOptions
  Dim certificate As New X509Certificate2("Certificate/SignDemo.pfx", "dxdemo")
  Dim tsaServer As New Uri("https://freetsa.org/tsr")
  Dim options As New SignatureOptions()
  options.Certificate = certificate
  If tsaServer IsNot Nothing Then
    options.TsaClient = New TsaClient(tsaServer, HashAlgorithmType.SHA256)
  End If

  options.SignatureFlags = options.SignatureFlags And Not SignatureFlags.ValidateCertificate
  options.CertificateKeyUsageFlags = X509KeyUsageFlags.None
  options.DigestMethod = HashAlgorithmType.SHA256

  Dim policy As New X509ChainPolicy()
  policy.RevocationMode = X509RevocationMode.NoCheck
  policy.RevocationFlag = X509RevocationFlag.ExcludeRoot
  policy.VerificationFlags = policy.VerificationFlags Or X509VerificationFlags.AllowUnknownCertificateAuthority Or X509VerificationFlags.IgnoreCertificateAuthorityRevocationUnknown
  options.CertificatePolicy = policy
  options.TimestampCertificatePolicy = policy

  Return options
End Function

Inheritance

Object SignatureOptions

See Also

SignatureOptions Members

DevExpress.Office.DigitalSignatures Namespace