PdfDocumentSigner.AddToDss(String, IList<Byte[]>, IList<Byte[]>, IList<Byte[]>) Method
Adds information about the specified signature to the Document Security Store (DSS).
Namespace: DevExpress.Pdf
Assembly: DevExpress.Docs.v23.2.dll
NuGet Package: DevExpress.Document.Processor
Declaration
public void AddToDss(
string signatureFieldName,
IList<byte[]> certificates,
IList<byte[]> crls,
IList<byte[]> ocsp
)
Parameters
Name | Type | Description |
---|---|---|
signatureFieldName | String | The name of the form field that contains the target signature. |
certificates | IList<Byte[]> | A list of certificates used to create the certificate chain. |
crls | IList<Byte[]> | A list of DER-encoded CertificateList ASN.1 objects (rfc5280) that contain the Certificate Revocation List (CRL) for every certificate in the chain (except the root certificate). |
ocsp | IList<Byte[]> | A list of DER-encoded OCSPResponse ASN.1 objects (rfc6960) that contain the OCSP server response for every certificate in the chain except root. |
Exceptions
Type | Description |
---|---|
ArgumentException | Occurs if the specified form field is not signed. |
Remarks
The code sample below retrieves the name of the first signature field, adds the related signature’s information to the DSS, and applies a timestamp to the document.
using (var signer = new PdfDocumentSigner(@"signed.pdf"))
{
ITsaClient tsaClient = new TsaClient(new Uri(@"https://freetsa.org/tsr"), HashAlgorithmType.SHA256);
string signatureName = signer.GetSignatureFieldNames(false)[0];
// Create a provider that retrieves certificates from a store:
using (var certificateStoreProvider =
new CertificateStoreProvider(new X509Store(StoreLocation.CurrentUser), true))
{
// Add the signature to the security store
// and specify the CrlClient and OcspClient objects
// used to check the certificates' revocation status:
signer.AddToDss(signatureName, new CrlClient(), new OcspClient(), certificateStoreProvider);
}
signer.SaveDocument(@"signedLTV.pdf", new[] { new PdfSignatureBuilder(new PdfTimeStamp(tsaClient)) });
}