I need to use PKCS#11 with Java 7 on 64 bit Windows for reading certificates from smart cards. The oracle docs say there is no Sun PKCS#11 provider for 64 bit Windows. If I understand correctly, this means that even if I have a PKCS#11 native library, I don't have the Java "bridge" classes to interact with the native PKCS#11 implementation. What are my options? I can think of these:
- Use an external program, e.g. a command line utility to interact with the smart card and pipe the output into my Java application
- Somehow implement the missing PKCS#11 provider in Java? (I want to avoid the work)
- Use a third party Java library which implements the missing Sun provider?
After much searching, I have not found a solution. The closest was an OpenJDK implementation, but I can't switch from the Oracle JDK to OpenJDK.
Am I missing something? Why are there no obvious solutions? What are my options?
Many thanks.