Can you provide a sample C# to set the byte range of a signature to cover the whole pdf?
Currently the ByteRange property of a signature is readonly for the
PKCS1 signature class
PKCS7 signature class
PKCS7Detached signature class
Hi Roy,
Using the code attached to CryptographicException when trying to sign a PDF document
The signing of the pdf does not cover the whole document.
What parameter do I need to set for the signing to cover the whole document.
ie the return result of Aspose.Pdf.Facades.PdfFileSignature.IsCoversWholeDocument(System.String) is true when checking the signature in the signed pdf.
Hi Roy,
Thanks for sharing additional information. Please check the documentation link for details/code of adding digital signature in Pdf file. All three classes PKCS#1,PKCS#7 and PKCS#7Detachded covers whole document.
Please feel free to contact us for any further assistance.
Best Regards,
The link you provided does not show how to set the signature to cover the whole pdf document.
Hi Roy,
Sorry for the inconvenience. While testing your scenario, I've added signature to a sample pdf document as described in documentation and Aspose.Pdf.Facades.PdfFileSignature.IsCoversWholeDocument(System.String) returns true. Could you please share your sample code and digital signature here? So we will test it at our end and provide you more information. For your document security you can make post private, if required.
Best Regards,
I have updated my test code to include a verify pdf function.
Demo at https://demo.pixelcom.net/Aspose/
Source at https://clients.pixelcom.net/Aspose/Aspose.zip
Hi Roy,
Hi Roy,
Using Aspose.Pdf.dll version 7.6.0.0 under .Net 3.5 & .Net 4.0; I still get false being returned by IsCoversWholeDocument() when using a windows console application. I downloaded the attached pdf & it still gave false from IsCoversWholeDocument().
The console application code is as follows:
static void Main(string[] args)
{
License lic = new License();
lic.Embedded = true;
lic.SetLicense(“Aspose.Total.lic”);
Document pdfDocument = new Document(args[0]);
PdfFileSignature pdfSign = new PdfFileSignature(pdfDocument);
Console.WriteLine(“File name: {0}”, args[0]);
Console.WriteLine(“IsContainSignature: {0}”, pdfSign.IsContainSignature());
Console.WriteLine(“TotalRevision: {0}”, pdfSign.GetTotalRevision());
IList names = pdfSign.GetSignNames();
foreach (object n in names)
{
Console.WriteLine(“Signature Name: {0}”, n.ToString());
Console.WriteLine(“CoversWholeDocument: {0}”, pdfSign.IsCoversWholeDocument(n.ToString()));
Console.WriteLine(“Revision: {0}”, pdfSign.GetRevision(n.ToString()));
Console.WriteLine(“VerifySigned: {0}”, pdfSign.VerifySigned(n.ToString()));
Console.WriteLine(“VerifySignature: {0}”, pdfSign.VerifySignature(n.ToString()));
Console.WriteLine(“Reason: {0}”, pdfSign.GetReason(n.ToString()));
Console.WriteLine(“Location: {0}”, pdfSign.GetLocation(n.ToString()));
Console.WriteLine(“Contact: {0}”, pdfSign.GetContactInfo(n.ToString()));
Console.WriteLine(“SignedAt: {0:d MMM yyyy HH:mm:ss}”, pdfSign.GetDateTime(n.ToString()));
Field f = (Field)(pdfSign.Document.Form[n.ToString()]);
Console.WriteLine(“Page: {0}”, f.PageIndex);
Console.WriteLine(“Rect: llx={0}, lly={1}, cx={2}, cy={3}”, f.Rect.LLX, f.Rect.LLY, f.Rect.Width, f.Rect.Height);
}
}
Hi Roy,
PdfFileSignature pdfSign = new PdfFileSignature(args[0]);
Thanks for the workaround, but the PdfFileSignature constructor does not support a MemoryStream which is used in the primary application.
ie the following:
using (MemoryStream ms = new MemoryStream())
{
// snip load memory stream from stored encrypted data
Aspose.Pdf.Document pdfDocument = new Aspose.Pdf.Document(ms);
PdfFileSignature pdfSign = new PdfFileSignature(pdfDocument);
// snip use of pdfSign
}
I will wait for the fix.
Hi Roy,
The issues you have found earlier (filed as PDFNEWNET-34824) have been fixed in Aspose.Pdf for .NET 9.3.0.
Blog post for this release can be viewed over this link
This message was posted using Notification2Forum from Downloads module by Aspose Notifier.