使用中间件的Java智能卡访问

使用中间件的Java智能卡访问,java,smartcard,jce,pkcs#11,Java,Smartcard,Jce,Pkcs#11,我正在将一个旧项目迁移到Java,我遇到了一些关于智能卡访问的问题。由于缺乏文件,我不得不找到我自己的方式通过这一个,所以我希望你们能帮助我 我有一个智能卡和一个dll库(中间件),用于访问卡的功能。使用dependency walker,我成功地获得了dll库保存的函数列表,该列表汇总为函数。我想知道是否有一些本机包装器使我能够从Java调用这些函数 关于智能卡的性质,它应该包含加密功能(PKCS#11),但由于以下错误,我无法实例化sun.security.pkcs11.SunPKCS11提

我正在将一个旧项目迁移到Java,我遇到了一些关于智能卡访问的问题。由于缺乏文件,我不得不找到我自己的方式通过这一个,所以我希望你们能帮助我

我有一个智能卡和一个dll库(中间件),用于访问卡的功能。使用dependency walker,我成功地获得了dll库保存的函数列表,该列表汇总为函数。我想知道是否有一些本机包装器使我能够从Java调用这些函数

关于智能卡的性质,它应该包含加密功能(PKCS#11),但由于以下错误,我无法实例化sun.security.pkcs11.SunPKCS11提供程序:

Caused by: java.io.IOException: The specified procedure could not be found.
     at sun.security.pkcs11.wrapper.PKCS11.connect(Native Method)
任何指导方针都将不胜感激

提前谢谢

更新


对于同样存在此问题的任何人,我的智能卡不支持PKCS11,并且我没有合适的PKCS11 dll。

最近,我在一个项目中工作,该项目使用智能卡访问PKI证书,我们从以下两个框架获得了帮助:

  • BouncyCastleJavaAPI军团(用于PKI方法抽象)

  • IAIK JCE PKCS11包装器(用于通用.dll智能卡访问)


我认为第二种选择可能也会对您有所帮助。

您现在可能已经发现,Microsoft在加密库中使用的API与PKCS#11不同。是的,这是一个猛然醒悟:)但这个问题仍然没有得到解决。您是否查看了API以确定这是否适用?很抱歉,只是查看积压…是的,当dll库(微型驱动程序)正确编程时,MSCAPI提供程序适用。经过一些努力,我发现Mini Diver没有工作,所以我只能使用直接调用Win CAPI,让我写一些C++代码并把它桥接到java。