Hi @sergei.terentev,
Thank you for this. I’ve just tested it and it works great, even while leaving the the digital signature visible.
Do you plan to add the incremental feature with additional options like text or is not happening at all? In our use case text signature would be awesome.
Hi @biglesias
Thank you for your interest and ideas!
Based on your request we were inspired to compose a new topic
there is an important point near the example
The Main Concepts
- Use exclusively only one or many
DigitalSignOptions
: Ensure that if there is at least one non-digital option, the document will be changed.
- Avoid setting
ImagePath
or ImageStream
properties: Each DigitalSignOptions
should not have these properties set. So, don’t pass the image for this signature.
- Avoid setting
Background
or Border
properties: Setting up these properties will lead the library to generate the PDF background image appearance that will change the document content and break the sequential digital signature process.
The sequential iterative digital signing is based exceptionally on the lack of changes between the digitally signed document and the next digital signing.
So imagine you have a document, that was signed with A1 certificate. Now, the document is secure from the changes. It means any changes (including metadata changes, resave without changes, adding some native elements - text, image, etc) will discard the previous digital signature (document content Hash will be changed). That’s why iterative digital signing is possible only with Digital Signatures.
Potentially if your application will erase previous digital certificates (remove them), and on each iteration apply a set of the same previous digital signatures (original PFX not public certificates only) then you can change the document in any case.
Hope that helps.
Please share your thoughts on this - may be we will find an alternative solution to add on iterative signing and other signature types.
Thank you!
1 Like
Hi @yuriy.mazurchuk
That’s a great read, very insightful.
I’ve been testing the iterative feature and it works great. I only got an issue with the ‘Contact’ option for the certificate details. So far only ‘Reason’ and ‘Location’ works. In our case we will need some sort of identification of who the signer is because we will use a corporate certificate.
The workaround I’ve tried experimenting with is to simply place the name of the signer into the ‘Reason’ label like this:
image_2024-06-25_204538506.png (2.7 KB)
That’s why it would be great to have some sort of identification on the document itself like TextOptions but I understand the complexity of the process.
Anyhow, thank you all a lot!
Hello people,
Just passing through wondering if there is any progress into having other signature types for the iterative signing, like Text or Image. Can we expect to have one of them available some time in the near future?
Thanks!
Hi @biglesias !
The Iterative Digital Signing process supports only digital certificate changes. This is a native PDF specification and we can not change these rules.
Any other changes except the digital certificate to the document will discard the previous digital certificate.
There are many alternative ways for iterative document signing with various signatures, but each time the document is changed the the previous certificate will be discarded (not valid)
Let me refer again to the article mentioned above.
Solution 1. Ignore non-valid digital certificates.
Each time the user needs to sign the document, the document is signed with many signatures (including digital, image, and text signatures). In this case, each document saved will discard the existing document’s digital signatures and make them non-valid.
Solution 2. Specify all digital certificates on each iteration.
If this applies to your process - on each document signing do the following actions
- remove all existing document digital signatures
- apply all required changes (like adding text, image, and barcode signatures)
- apply all digital certificates (could be done in the previous step)
Solution 3. Keep and apply certificates with 3rd party storage.
If this applies to your process - on each document signing do the following actions:
- search for existing digital certificates and store their IDS (or SerialNumber or Thumbprint etc)
- keep found certificates IDS (SN, TP see above) to find corresponding full PFX files at your storage
- apply all required changes (like adding text, image, and barcode signatures)
- apply all existing and new digital certificates (could be done in the previous step)
Summary
Each document-saving process with any changes means a new document content hash and discards existing certificate signing because the signing was on the previous document content version (hash). This is PDF policy and format implementation for most readers.
If you need to change the document but keep the existing certificates in the document valid - there’s only one way - to clear all digital certificates, apply changes and sign document again with the same certificates.
Hope that helps
Share please if there some other way we can find proper solution for you ?
1 Like
Hello @yuriy.mazurchuk!
Today we’ve found out something that might help us resolve this problem.
We’ve wanting to add text and image to have some sort of visual representation of the signature right? And I understand that adding another signature will discard the existing digital signatures and make them non-valid.
Thing is, we’ve looking to do the impossible all the while the answer was right under our noses. We found out that one of the current API we are using does include text and image, but over a signature field! Through our server we send a post to this API with the signer’s info and the location where we want to place the new signature field, all being dynamic depending on the users. It probably doesn’t add a new text or image object without placing a signature field first.
When the signature field is clicked, it even reacts differently in adobe reader, showing the signature status.
I’ll send you the example doc privately along with some of the code for you to look into it, hopefully it helps.
Thanks
Hello!
I’m wondering, is it possible to change the visible part of the digital signature?
image_2024-09-26_120700242.png (4.7 KB)
I tried using PdfDigitalSignatureAppearance but it’s not working. What am I doing wrong?
DigitalOpts = new signature_cloud.SignDigitalOptions()
DigitalOpts.signatureType = signature_cloud.OptionsBase.SignatureTypeEnum.Digital
DigitalOpts.certificateFilePath = "sample_certificado.pfx"
DigitalOpts.password = ""
DigitalOpts.visible = true
DigitalOpts.left = 80
DigitalOpts.top = 600
DigitalOpts.width = 180
DigitalOpts.height = 60
DigitalOpts.SignTime = moment(new Date()).format('HH:mm:ss')
DigitalOpts.isValid = true
DigitalOpts.IsSignature = true
DigitalOpts.PdfDigitalSignatureAppearance = new signature_cloud.PdfDigitalSignatureAppearance()
DigitalOpts.PdfDigitalSignatureAppearance.DigitalSignedLabel = "FIRMADO POR " + "#{nombre}"
DigitalOpts.PdfDigitalSignatureAppearance.ReasonLabel = "FIRMA INTERLEX"
DigitalOpts.PdfDigitalSignatureAppearance.Background = {Color: "#000000"}
settings = new signature_cloud.SignSettings()
settings.fileInfo = fileInfo
settings.options = [DigitalOpts]
settings.saveOptions = new signature_cloud.SaveOptions()
settings.saveOptions.outputFilePath = "signed " + doc.nombre + ".pdf"
request = new signature_cloud.CreateSignaturesRequest(settings)
response = await signApi.createSignatures(request)
request_download = new signature_cloud.DownloadFileRequest("signed " + doc.nombre + ".pdf", myStorage)
response_download = await fileApi.downloadFile(request_download)
Thanks
@biglesias
We have opened the following new ticket(s) in our internal issue tracking system and will deliver their fixes according to the terms mentioned in Free Support Policies.
Issue ID(s): SIGNATURECLOUD-614
1 Like
@sergei.terentev
Thank you!
Now I’m trying to add an image into the Digital Signature following the SDK example found on here:
And it’s not working as expected.
fileInfo = new signature_cloud.FileInfo()
fileInfo.filePath = doc.nombre + ".pdf"
DigitalOpts = new signature_cloud.SignDigitalOptions()
DigitalOpts.signatureType = signature_cloud.OptionsBase.SignatureTypeEnum.Digital
DigitalOpts.certificateFilePath = "certificado_interlex.pfx"
DigitalOpts.imageFilePath = "sample_imagen.jpg"
DigitalOpts.password = "123456"
DigitalOpts.visible = true
DigitalOpts.left = 80
DigitalOpts.top = 600
DigitalOpts.height = 50
DigitalOpts.width = 200
DigitalOpts.SignTime = moment(new Date()).format('HH:mm:ss')
DigitalOpts.Reason = "FIRMA INTERLEX - #{nombre}"
settings = new signature_cloud.SignSettings()
settings.fileInfo = fileInfo
settings.options = [DigitalOpts]
settings.saveOptions = new signature_cloud.SaveOptions()
settings.saveOptions.outputFilePath = "signed " + doc.nombre + ".pdf"
request = new signature_cloud.CreateSignaturesRequest(settings)
response = await signApi.createSignatures(request)
request_download = new signature_cloud.DownloadFileRequest("signed " + doc.nombre + ".pdf", myStorage)
response_download = await fileApi.downloadFile(request_download)
As I’ve come to understand and see, these Digital Signatures that you let us create with your Cloud API, when they are visible, they generate a Signature Field. Signature Fields do not invalidate previous signatures and they can include images, as seeing here: https://helpx.adobe.com/acrobat/using/certificate-based-signatures.html
An example document where both digital signatures are valid and visible using your Cloud API, one being done after the other:
Sign Test.pdf (385.1 KB)
An example of the same document as before, only that now using the appearance creator of Adobe Reader to add a third signature with the company logo. All three signatures remained valid:
Sign Test #2.pdf (485.1 KB)
So if we are able to edit the contents and appearance inside the Signature Field, we will be able to create them with any image or text that we want without discarding any previous certificate.
What do you think?
Hi @biglesias !
Thank you for your great insights on the product!
You are right, PDF supports native Digital Certificate appearance with the Image or customer labels. We checked the latest Signature Library 24.9 and it seems this feature works as expected. We will try to fix possible issues in the proxy cloud implementation. Some properties were not properly set from cloud options to the backend library.
Thank you!
1 Like
Great news @yuriy.mazurchuk, thank you.
We’ll be waiting for the fix!
Hi, @biglesias !
We figured out one implementation issue when passing the image for the digital signature and appearance settings for the iterative signing in the main GroupDocs.Signature library (.Net and Java). The current implementation prevents respecting secure iterative saving. The fix will be ready this month for the .NET 24.10 release and after that cloud version.
Once done - we will inform you!
Thank you!
1 Like
Hi @yuriy.mazurchuk
Awesome, good luck with everything. I believe that’s exactly what we need.
Thanks!
Hello people,
Aside from asking how everything is going with the update, do you know and recommend any certificate provider to use alongside your Signature Cloud API?
So far I’ve only tested with self-signed certificates and would be good to check alternatives that you know about.
Thanks
Hi @biglesias !
Thank you for your request!
We fixed all known issues with iterative signing on GroupDocs.Signature for .Net
We plan to update the Java version as well
Please remind me if you need the Cloud version - it will be released very soon with the latest updates.
About certificates …
The certified digital certificate could be taken from the trusted Certificate Authorities (CAs).
It depends on your goal and how you use it to sign documents and verify them.
If you are going to verify documents only “in-house” process - that probably will not require any trusted sources.
But if you need to certificate documents for public verification and authorization then - yes, the certificates should be generated by a trusted source.
The information below was taken from the OpenAI on the prompt asking for trusted digital certificates for the documents
1. Choose a Trusted Certificate Authority (CA)
Many reputable CAs offer digital certificates in PFX format suitable for document signing. Some popular ones include:
- DigiCert: Offers document signing certificates that meet industry standards.
- GlobalSign: Known for compatibility and compliance across platforms.
- Entrust: Provides strong security with digital signing certificates.
- Sectigo (formerly Comodo CA): Often chosen for cost-effective digital certificates.
2. Request a Document Signing Certificate
- Go to the chosen CA’s website and navigate to their document signing certificates section.
- Start the purchase process, where you will likely be asked for identification and possibly additional documentation, as document signing certificates often require a higher level of verification to ensure compliance with legal standards.
3. Generate or Download the PFX File
- Once approved, the CA will guide you through downloading the certificate, often available in PFX format (which includes the private and public keys required for secure signing).
- In some cases, you may need to generate the certificate locally and then provide a certificate signing request (CSR) to the CA. The CA will then issue the final certificate based on the CSR.
– end of response
Hi @yuriy.mazurchuk ,
Great, that’s right we need the Cloud version to allow edit the Digital Certificate appearance.
We’ll stay put waiting for the latest update, thanks.
The issues you have found earlier (filed as SIGNATURECLOUD-614) have been fixed in this update. This message was posted using Bugs notification tool by sergei.terentev
Hello everyone,
It now works by placing an image into the signature field. An example I did:
image_2024-12-03_125841595.png (9.0 KB)
However I was thinking, if it’s possible to add an image, could it be possible to add text? And by doing so, trying to replace the default blue text that comes with the digital signature?
If it’s possible, how can I do it?
Thanks!
Hi @biglesias !
Thank you for your request!
The backend library supports these features
Please see documentation
and GitHub example
The cloud SDK should support this - let me double-check and get back!
Thanks!
1 Like
Hi @biglesias , There is a PdfDigitalSignatureAppearance.Foreground option, but it is missing in current version of Signature.Cloud (althought Background is available), so I will create a ticket and add it in the next version.
1 Like