Java Crypto JCA Provider是否真的需要windows dll?

use*_*291 4 java cryptography certificate smartcard

我在这里读到:

"与大多数Java加密体系结构(JCA)提供程序不同,Sun PKCS#11提供程序不直接实现加密功能;它依赖于转发所有操作的本机PKCS#11实现.此实现必须以.dll形式提供Windows中的文件或UNIX和Linux中的.so文件.例如,如果您使用适用于Windows的Utimaco SafeGuard智能卡提供程序,则PKCS#11实现是库pkcs201n.dll."

智能卡提供商是否有义务拥有jca提供商?例如,我在哪里可以找到金雅拓的jca提供商?

emb*_*oss 5

PKCS#11参考指南是一个良好的开端.

金雅拓智能卡总是附带一个PKCS#11 DLL,不幸的是它有不同的名称,具体取决于卡.只需查看安装附带的文件,直到找到包含"p"和"11"的DLL :)

找到它之后,您可以按照参考指南中给出的步骤进行操作,即创建指向PKCS#11库等的配置文件.如果一切顺利,您应该能够像访问智能卡一样简单地访问智能卡

KeyStore ks = KeyStore.getInstance("PKCS11");
ks.load(null, "pin".toCharArray());
Run Code Online (Sandbox Code Playgroud)

请注意,对于生产代码,您应该CallbackHandler按照指南中的说明实现 - 当然 - 以上只是为了快速检查一切是否正常.