PdfTimeStamp.BuildSignature(Byte[], String) Method
In This Article
Builds the signature and returns its contents.
Namespace: DevExpress.Pdf
Assembly: DevExpress.Pdf.v24.2.Core.dll
NuGet Package: DevExpress.Pdf.Core
#Declaration
#Parameters
Name | Type | Description |
---|---|---|
digest | Byte[] | The document’s hash value. |
digest |
String | The hash algorithm’s object identifier. |
#Returns
Type | Description |
---|---|
Byte[] | The signature contents. |
#Remarks
Utilize this method overload to obtain the signature contents used in the PdfDeferredSigner.Sign method.
The code sample below uses a document hash to apply a signature externally:
using DevExpress.Office.DigitalSignatures;
using DevExpress.Pdf;
using (var signer = new PdfDocumentSigner(File.OpenRead("SignDemo.pdf")))
{
// Specify the information about the signature metadata:
var digestCalculator = new DigestCalculator(HashAlgorithmType.SHA256);
var signerInfo = new ExternalSignerInfo(PdfSignatureType.Pkcs7, 8000, digestCalculator);
// Create a new form field:
var fieldInfo = new PdfSignatureFieldInfo(1) { SignatureBounds = new PdfRectangle(10, 10, 100, 100) };
// Apply the metadata to the form field:
var builder = new PdfDeferredSignatureBuilder(signerInfo, fieldInfo);
// Add the signature to the document:
var deferredSigner = signer.SignDeferred(builder);
// Obtain the document hash and hash algorithm's object identifier:
var digest = deferredSigner.HashValue;
var digestAlgorithmOID = digestCalculator.AlgorithmOid;
// Generate the signature content to insert into the document:
byte[] signature = CreateSignature(digest, digestAlgorithmOID);
// Add the signature contents and save the document to the file:
deferredSigner.Sign("signed.pdf", signature);
}
static byte[] CreateSignature(byte[] digest, string digestAlgorithmOID)
{
var signer = new Pkcs7Signer(@"SignDemo.pfx", "dxdemo");
byte[] signature = signer.BuildSignature(digest, digestAlgorithmOID);
return signature;
}
#Implements
See Also