Show / Hide Table of Contents

Class XmlSigner

Inheritance
Object
XmlSigner
DetachedResourceXmlSigner
FullXmlSigner
OnlineResourceXmlSigner
XmlElementSigner
Inherited Members
Object.ToString()
Object.Equals(Object)
Object.Equals(Object, Object)
Object.ReferenceEquals(Object, Object)
Object.GetHashCode()
Object.GetType()
Object.MemberwiseClone()
Namespace: Lacuna.Pki.Xml
Assembly: Lacuna.Pki.dll
Syntax
public abstract class XmlSigner

Constructors

XmlSigner()

Declaration
public XmlSigner()

Fields

namespaceMan

Declaration
protected NamespaceManager namespaceMan
Field Value
Type Description
NamespaceManager

xmlDocument

Declaration
protected XmlDocument xmlDocument
Field Value
Type Description
XmlDocument

Properties

ValidationResults

Declaration
public ValidationResults ValidationResults { get; }
Property Value
Type Description
ValidationResults

Warnings

Declaration
public List<string> Warnings { get; }
Property Value
Type Description
List<String>

Methods

AddReferences(SignedXml, DigestAlgorithm, XmlPolicySpec)

Declaration
protected abstract void AddReferences(SignedXml signedXml, DigestAlgorithm digestAlgorithm, XmlPolicySpec policy)
Parameters
Type Name Description
SignedXml signedXml
DigestAlgorithm digestAlgorithm
XmlPolicySpec policy

ComputeSignature()

Computes the XML signature

Declaration
public void ComputeSignature()

FulfillTransformations(Reference)

Declaration
protected void FulfillTransformations(Reference reference)
Parameters
Type Name Description
Reference reference

GenerateToSignHash(out SignatureAlgorithm, out Byte[])

Generates the hash to be signed by the user in an asynchronous signature. In the next step, in possesion of the signed hash and the persisted transferData, you must call the SetPrecomputedSignature method

Declaration
public byte[] GenerateToSignHash(out SignatureAlgorithm signatureAlgorithm, out byte[] transferData)
Parameters
Type Name Description
SignatureAlgorithm signatureAlgorithm

The signature algorithm to be used in the user signature

Byte[] transferData

The data to be persisted until the next step

Returns
Type Description
Byte[]

The hash to be signed by the user

GetSignatureElement()

Returns the computed XML signature element only

Declaration
public XmlElement GetSignatureElement()
Returns
Type Description
XmlElement

GetSignedXml()

Returns the XML document containing the computed signature element

Declaration
public byte[] GetSignedXml()
Returns
Type Description
Byte[]

XML document bytes

GetToSignEntityTransferData()

Declaration
protected abstract byte[] GetToSignEntityTransferData()
Returns
Type Description
Byte[]

InsertSignatureElement()

Inserts the computed signature element in the XML document

Declaration
public virtual void InsertSignatureElement()

InsertSignatureElement(XmlElement, String, XmlInsertionOptions)

Declaration
protected virtual void InsertSignatureElement(XmlElement signatureElement, string xpath, XmlInsertionOptions insertionOption)
Parameters
Type Name Description
XmlElement signatureElement
String xpath
XmlInsertionOptions insertionOption

SetCertificateValidationConfigurator(Action<CertificateValidationOptions>)

Sets an action for configuring the signer certificate validation

Declaration
public void SetCertificateValidationConfigurator(Action<CertificateValidationOptions> configureCertificateValidation)
Parameters
Type Name Description
Action<CertificateValidationOptions> configureCertificateValidation

SetClassicEnvelopedTransformation(Boolean)

Sets whether or not to use classic enveloped transformation on enveloped signatures. By default XML Signers adds an XPath transformation along with enveloped transformation, which allows multiple new signatures to the XML. Case true, the default XPath transformation is not included, therefore, adding new signatures to the XML is not allowed and will break previous signatures validation.

Declaration
public void SetClassicEnvelopedTransformation(bool useClassicEnveloped)
Parameters
Type Name Description
Boolean useClassicEnveloped

SetCommitmentType(CommitmentType)

Sets the signer commitment type signed attribute for all signed data. If executing a remote signature, the commitment type must be passed again in the compute signature step

Declaration
public void SetCommitmentType(CommitmentType commitmentType)
Parameters
Type Name Description
CommitmentType commitmentType

SetDataObjectFormat(String)

Sets a custom text describing the signing operation. If set, it will be inlcuded as a DataObjectFormat signed data property

Declaration
public void SetDataObjectFormat(string description)
Parameters
Type Name Description
String description

SetPolicy(IXmlPolicyMapper)

Sets the XML signature policy mapper

Declaration
public void SetPolicy(IXmlPolicyMapper policyMapper)
Parameters
Type Name Description
IXmlPolicyMapper policyMapper

SetPolicy(XmlPolicySpec)

Sets the XML signature policy

Declaration
public void SetPolicy(XmlPolicySpec policy)
Parameters
Type Name Description
XmlPolicySpec policy

SetPrecomputedSignature(Byte[], Byte[])

Sets the precomputed signture and persisted data in an asynchronous signature

Declaration
public void SetPrecomputedSignature(byte[] signature, byte[] transferData)
Parameters
Type Name Description
Byte[] signature

The user signature of the hash given by the method GenerateToSignHash

Byte[] transferData

The data given by the method GenerateToSignHash

SetSignatureElementId(String)

Sets the computed signature element ID

Declaration
public void SetSignatureElementId(string id)
Parameters
Type Name Description
String id

SetSignatureElementLocation(String, NamespaceManager, XmlInsertionOptions)

Sets the location of the computed signature element to be inserted in the XML document

Declaration
public void SetSignatureElementLocation(string xpath, NamespaceManager namespaceMan, XmlInsertionOptions insertionOption)
Parameters
Type Name Description
String xpath

The xpath to select the target element which the insertion will be related to. If null, XML root element will be selected.

NamespaceManager namespaceMan

The namespaces and prefixes of the XML used in the xpath

XmlInsertionOptions insertionOption

The insertion option that will be applied over the target element define by xpath

SetSigningCertificate(PKCertificate)

Sets the signing certificate. Used in an asynchronous signature

Declaration
public void SetSigningCertificate(PKCertificate signingCertificate)
Parameters
Type Name Description
PKCertificate signingCertificate

SetSigningCertificate(PKCertificateWithKey)

Sets the signing certificate with private key. Used in a synchronous signature

Declaration
public void SetSigningCertificate(PKCertificateWithKey signingCertificate)
Parameters
Type Name Description
PKCertificateWithKey signingCertificate

SetTimestampRequester(ITimestampRequester)

Sets a timestamp requester. Must be set if the policy specification requires any type of timestamp

Declaration
public void SetTimestampRequester(ITimestampRequester timestampRequester)
Parameters
Type Name Description
ITimestampRequester timestampRequester

SetToSignEntityTransferData(Byte[])

Declaration
protected abstract void SetToSignEntityTransferData(byte[] transferData)
Parameters
Type Name Description
Byte[] transferData

SetXml(Byte[])

Sets the XML document bytes

Declaration
public void SetXml(byte[] xmlDocumentBytes)
Parameters
Type Name Description
Byte[] xmlDocumentBytes

XML document bytes

SetXml(XmlDocument)

Sets the XML document

Declaration
public void SetXml(XmlDocument xmlDoc)
Parameters
Type Name Description
XmlDocument xmlDoc

XML document

VerifyParameters(Boolean)

Declaration
protected virtual void VerifyParameters(bool computeSignature)
Parameters
Type Name Description
Boolean computeSignature

VerifySignerParameters(Boolean)

Verifies if the Xml signer necessary parameters are set. If not, throws Exception.

Declaration
public void VerifySignerParameters(bool computingSignature = false)
Parameters
Type Name Description
Boolean computingSignature

Whether or not you will call the ComputeSignature() method to complete the siganture process in this step.

Back to top Copyright © 2015-2020 Lacuna Software