We did what you are trying to do now (distributed signing with client modules) in addition to distributed cryptography for our SecureBlackox product, and we offer an ActiveX control for IE and Java applets for other browsers.
Unfortunately, PKCS # 11 DLLs are not registered anywhere, so you cannot help asking the user about the location of this DLL.
Most hardware devices support PKCS # 11 and CryptoAPI. In the CryptoAPI interface, the CSP DLL provides hardware certificates for the CryptoAPI engine and, therefore, for applications. In this case, you can use Java classes that work with Windows CryptoAPI.
PKCS # 11 is an interface implemented by hardware vendors, so Java cannot implement it on its own. The JVM is not hardware and does not contain certificates (even if that were the case, it would not solve your problem). I need to note that Firefox has a built-in PKCS # 11 driver through which Firefox accesses its own certificates. This was done to consistently support software and hardware certificates.
source share