officefileapi-devexpress-dot-office-dot-digitalsignatures-43d97e2c.md
Contains signature options.
Namespace : DevExpress.Office.DigitalSignatures
Assembly : DevExpress.Docs.v25.2.dll
NuGet Package : DevExpress.Document.Processor
public class SignatureOptions
Public Class SignatureOptions
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:
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;
}
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
Object SignatureOptions
See Also