2. If I use the option of CreatePAdES as in the example in C#
Is there anything wrong here?

The PAdES async signing supports two async sign modes: PKCS#1 (default) and PKCS#7.
If PKCS#1 async mode is used for PAdES signing then it is required to pass the public signing certificate to the component. The public certificate could be passed by user on some initial step or it may be known by a service (e.g. user id, that was used to login to some service, is associated with the public certificate).
As for PKCS#7 async mode there is no need to pass public certificate to the component, as it will be embedded into the signature on the client part. But, in this case, there is more data transferred.
To perform async signing in PKCS#7 mode use a following code:

One more thing I want to ask is the way to change the visible signature in DC signing. Can you guide on:

---- (1) how to read signature information (such as signer DN, email, CA, etc.) from TElDCAsyncState after submit the applet. I can see the applet shows signature information such as issuers, CN, etc. but not sure how to get this outside the applet.

---- and (2) then apply changes (such as: signing reason, who is signing, name of signer, etc.) to the PDF visible signature (by WidgetProps)? I tried to get signature after completeAsyncOperation by re-opening the PDF file and get last signature >> get_WidgetProps >> change widget information but it seems it does not affect. In addition, I am not sure if the document is considered as changed if I re-open file and change the wdigetProps.

---- (1) how to read signature information (such as signer DN, email, CA, etc.) from TElDCAsyncState after submit the applet. I can see the applet shows signature information such as issuers, CN, etc. but not sure how to get this outside the applet.

The applet extracts this information from the signer certificate (selected certificate).
The state (TElDCAsyncState) contains a signature produced by this certificate. For PKCS#7 async sign mode the state contains PKCS#7 signature that may include signer certificate (by default). So, to extract the above information you would need to parse the signature from the state object using TElMessageVerifier class. Another solution is to reload the pdf document after CompleteAsyncOperation() and then extract signer certificate from the last signature (using handler.GetSignerCertificate() method).

Quote

---- and (2) then apply changes (such as: signing reason, who is signing, name of signer, etc.) to the PDF visible signature (by WidgetProps)? I tried to get signature after completeAsyncOperation by re-opening the PDF file and get last signature >> get_WidgetProps >> change widget information but it seems it does not affect. In addition, I am not sure if the document is considered as changed if I re-open file and change the wdigetProps.

You can't modify signature information or widget properties after initiating async operation, as this information is signed along with pdf document.

So, to extract the above information you would need to parse the signature from the state object using TElMessageVerifier class. Another solution is to reload the pdf document after CompleteAsyncOperation() and then extract signer certificate from the last signature (using handler.GetSignerCertificate() method).

Quote

You can't modify signature information or widget properties after initiating async operation, as this information is signed along with pdf document.

So what do I need to do if I want to add signer information (extracted from TElDCAsyncState) to the visible signature (widgetProps)? Since the process is:
1. init async operation
2. then load applet to get signature information from usb token / windows certificate store
3. finally complete async process

--> Can only have the signer information in the step 2, so it cannot be inserted to the visible signature?

Can only have the signer information in the step 2, so it cannot be inserted to the visible signature?

No, it's not possible to insert the signer information on this step. The only possibility to do this is to ask a user to select certificate prior starting signing:
1. Ask the user to select certificate.
2. Fill signature widget properties and initiate async operation.
3. Ask the user to confirm the signing operation.
4. Complete async operation.

Thanks for the reply. So we might need to load the applet twice (for step 1 and 3). Since currently I cannot access the applet code, so cannot do as your suggestion. However I will confirm with the client that it can be done when the license is purchased and then we will modify the applet code to meet the displaying requirement.

For us to better understand the problem with IE, I'd like to ask you to answer all of the questions below:

1)Do you use Java both in Firefox and in IE?
2) Is the problem with IE reproducible all the time for you or it happened just once?
3) Is there some simple test case which exposes the issue, which you could give us for testing? It's possible that the issue is specific to certain sequence of calls in your code or some other factor local to you, and so a test case which exposes the issue would be great.

2) Is the problem with IE reproducible all the time for you or it happened just once?

--> In current testing environment, I use Windows 7 virtual machine with IE 11 and Firefox. Errors in IE always happen, while Firefox is always fine.

Quote

3) Is there some simple test case which exposes the issue, which you could give us for testing? It's possible that the issue is specific to certain sequence of calls in your code or some other factor local to you, and so a test case which exposes the issue would be great.

I've moved the question to the helpdesk for investigation ( https://www.eldos.com/helpdesk/ ). You will see your (and only your) support tickets by following this URL. You will also get e-mail notifications about updates related to your support ticket.

We use cookies to help provide you with the best possible online experience. By using this site, you agree that we may store and access cookies on your device. You can find out more about and set your own preferences here.