All right. I have this deja vu feeling about this, because I recall identifying this problem a few years ago, and very little has happened with opensc-signer in all this time.

I'd be willing to work on the signer, so that use of, say, setec setweb will no longer be required for performing digital signatures in the browser.


The anatomy of the problem is this. If you go to https://vrk.fineid.fi/ and log on, the system asks for the pins for both of your keys (what does it ask the pin for the nonrepudiation key for?), and provides my certificate to the remote host, where the server analyses it, etc. Now, if I try to test the signature, the browser freezes.

This freeze occurs in response to signer component's attempt to call the sc_connect_card() function, which apparently means that it attempts reset and reinitialise the smartcard, but the smartcard is already accessed by the pkcs11 module. My guess is, it gets into line and waits for the pkcs11 module to stop using the smartcard, which will never happen. The browser stops until I terminate this function call by pulling the card out.

A good simulation of this appears to be, something like running pkcs11-tool -t in two terminals. The latter process gets into queue and waits until the user has done with the former pkcs11. Now, I'm not arguing that this case should be made to work. But we have these modules in the same process. Is it not possible to make them cooperate? Please outline how I should go about to make them cooperate with each other. Isn't there something like sc_connect_cached_card(), which looks up existing connections and reuses one if such already exists in the context of the process.

--
Antti
_______________________________________________
opensc-devel mailing list
opensc-devel@lists.opensc-project.org
http://www.opensc-project.org/mailman/listinfo/opensc-devel

Reply via email to