Class CadesSigner
Class for creating CAdES signatures
Inherited Members
Namespace: Lacuna.Pki.Cades
Assembly: Lacuna.Pki.dll
Syntax
public class CadesSigner : IDisposable
Constructors
CadesSigner()
Declaration
public CadesSigner()
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
AddAttributeCertificate(AttributeCertificate)
Adds attribute certificates in the signed attributes
Declaration
public void AddAttributeCertificate(AttributeCertificate attributeCertificate)
Parameters
| Type | Name | Description |
|---|---|---|
| AttributeCertificate | attributeCertificate | Certificate attribute |
AddAttributeCertificate(IEnumerable<AttributeCertificate>)
Adds attribute certificates in the signed attributes
Declaration
public void AddAttributeCertificate(IEnumerable<AttributeCertificate> attributeCertificate)
Parameters
| Type | Name | Description |
|---|---|---|
| IEnumerable<AttributeCertificate> | attributeCertificate | Certificate attribute |
ComputeSignature()
Computes the CAdES signature elements. Call after all parameters set
Declaration
public void ComputeSignature()
Dispose()
Disposes streams used
Declaration
public void Dispose()
Implements
GenerateToSignBytes(out SignatureAlgorithm)
Generates the bytes to be signed
Declaration
public byte[] GenerateToSignBytes(out SignatureAlgorithm signatureAlg)
Parameters
| Type | Name | Description |
|---|---|---|
| SignatureAlgorithm | signatureAlg | Signature algorithm to be used |
Returns
| Type | Description |
|---|---|
| Byte[] | To sign bytes |
GetSignature()
Gets the completed signature content
Declaration
public byte[] GetSignature()
Returns
| Type | Description |
|---|---|
| Byte[] |
GetSignatureFinisher()
Gets the signature finisher. Used in a three-step signature
Declaration
public CadesSignatureFinisher GetSignatureFinisher()
Returns
| Type | Description |
|---|---|
| CadesSignatureFinisher | Signature finisher. An element that will handle the timestamps and revocation elements of the signature |
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 |
SetCommitmentType(CommitmentType)
Sets the signer commitment type signed attribute
Declaration
public void SetCommitmentType(CommitmentType commitmentType)
Parameters
| Type | Name | Description |
|---|---|---|
| CommitmentType | commitmentType |
SetContentType(CmsContentType)
Sets the encapsulated content type of the SignedData. Note: only use this if you are not signing a Data type
Declaration
public void SetContentType(CmsContentType contentType)
Parameters
| Type | Name | Description |
|---|---|---|
| CmsContentType | contentType |
SetCrlStore(IReferencedCrlStore)
Sets a trusted CRL store indexed by CRL digest values.
Declaration
public void SetCrlStore(IReferencedCrlStore crlStore)
Parameters
| Type | Name | Description |
|---|---|---|
| IReferencedCrlStore | crlStore | CRL store |
SetDataDigestToSign(DigestAlgorithm, Byte[])
Sets the message digest that is going to be signed. Using this method instead of SetDataToSign will mandatorily result in a detached signature, without encapsulated content.
Declaration
public void SetDataDigestToSign(DigestAlgorithm digestAlgorithm, byte[] digestValue)
Parameters
| Type | Name | Description |
|---|---|---|
| DigestAlgorithm | digestAlgorithm | |
| Byte[] | digestValue |
SetDataToSign(Byte[])
Sets the data content that is going to be signed
Declaration
public void SetDataToSign(byte[] data)
Parameters
| Type | Name | Description |
|---|---|---|
| Byte[] | data | The data content bytes to be signed |
SetDataToSign(Stream)
Sets the data that is going to be signed
Declaration
public void SetDataToSign(Stream stream)
Parameters
| Type | Name | Description |
|---|---|---|
| Stream | stream |
SetEncapsulatedContent(Boolean)
Wheter or not to include the encapsulated content in the signature. If not set, default value is true
Declaration
public void SetEncapsulatedContent(bool includeEncapsulatedContent)
Parameters
| Type | Name | Description |
|---|---|---|
| Boolean | includeEncapsulatedContent |
SetFinishSignature(Boolean)
Sets if the signature will be closed after the signing process ends. Default is true. Set false if it is a three-step signature
Declaration
public void SetFinishSignature(bool finishSignature)
Parameters
| Type | Name | Description |
|---|---|---|
| Boolean | finishSignature |
SetPolicy(CadesPolicySpec)
Sets the signature policy specification
Declaration
public void SetPolicy(CadesPolicySpec policy)
Parameters
| Type | Name | Description |
|---|---|---|
| CadesPolicySpec | policy | Policy specification |
SetPolicy(ICadesPolicyMapper)
Sets a policy specification mapper
Declaration
public void SetPolicy(ICadesPolicyMapper policyMapper)
Parameters
| Type | Name | Description |
|---|---|---|
| ICadesPolicyMapper | policyMapper | Policy mapper |
SetPrecomputedSignature(Byte[])
Sets the signed bytes from the client. Used in a two-step signature
Declaration
public void SetPrecomputedSignature(byte[] signature)
Parameters
| Type | Name | Description |
|---|---|---|
| Byte[] | signature | Signed bytes |
SetPrecomputedSignature(Byte[], Byte[])
Sets the signed bytes from the client. Used in a two-step signature
Declaration
public void SetPrecomputedSignature(byte[] signature, byte[] toSignBytes)
Parameters
| Type | Name | Description |
|---|---|---|
| Byte[] | signature | Signed bytes |
| Byte[] | toSignBytes | To sign bytes used in the signing process |
SetSignatureToCoSign(Byte[])
Sets the signature to create a co-signature
Declaration
public bool SetSignatureToCoSign(byte[] signature)
Parameters
| Type | Name | Description |
|---|---|---|
| Byte[] | signature | Signature content bytes |
Returns
| Type | Description |
|---|---|
| Boolean |
SetSignatureToCoSign(Stream)
Sets the signature to create a co-signature
Declaration
public bool SetSignatureToCoSign(Stream stream)
Parameters
| Type | Name | Description |
|---|---|---|
| Stream | stream | Signature stream |
Returns
| Type | Description |
|---|---|
| Boolean |
SetSigningCertificate(PKCertificate)
Sets the signing certificate. Used in a two-step signature
Declaration
public void SetSigningCertificate(PKCertificate certificate)
Parameters
| Type | Name | Description |
|---|---|---|
| PKCertificate | certificate | Certificate |
SetSigningCertificate(PKCertificateWithKey)
Sets the signing certificate with private key. Used in a one-step signature
Declaration
public void SetSigningCertificate(PKCertificateWithKey certWithKey)
Parameters
| Type | Name | Description |
|---|---|---|
| PKCertificateWithKey | certWithKey | Certificate with private key |
SetSigningDescription(String)
Sets a custom text describing the signing operation. If set, it will be inlcuded as a signingDescription signed attribute
Declaration
public void SetSigningDescription(string description)
Parameters
| Type | Name | Description |
|---|---|---|
| String | description |
SetTimestampRequester(ITimestampRequester)
Sets a timestamp requester. Must be set if the policy specification requires any type of timestamp attribute
Declaration
public void SetTimestampRequester(ITimestampRequester tsRequester)
Parameters
| Type | Name | Description |
|---|---|---|
| ITimestampRequester | tsRequester | Timestamp requester |
VerifyParameters(Boolean)
Verifies if CadesSigner necessary parameters are set. If not, throws Exception.
Declaration
public void VerifyParameters(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. |
WriteSignature(Stream)
Writes the completed signature content to a stream
Declaration
public void WriteSignature(Stream stream)
Parameters
| Type | Name | Description |
|---|---|---|
| Stream | stream | Stream |