在Java中包含PKCS11库
我的令牌有PCKS11 dll和so文件。我想使用在Java中包含PKCS11库,java,dll,java-native-interface,pkcs#11,Java,Dll,Java Native Interface,Pkcs#11,我的令牌有PCKS11 dll和so文件。我想使用[jacknji11][1]库 我的问题是如何将dll或其他文件导入到我的项目中 我使用System.loadLibrary(“parskey11”)导入我的库,但出现以下错误: Exception in thread "main" java.lang.UnsatisfiedLinkError: org.pkcs11.jacknji11.jna.JNANative.C_InitToken(Lcom/sun/jna/NativeLong;[BLco
[jacknji11][1]
库
我的问题是如何将dll或其他文件导入到我的项目中
我使用System.loadLibrary(“parskey11”)
导入我的库,但出现以下错误:
Exception in thread "main" java.lang.UnsatisfiedLinkError: org.pkcs11.jacknji11.jna.JNANative.C_InitToken(Lcom/sun/jna/NativeLong;[BLcom/sun/jna/NativeLong;[B)I
at org.pkcs11.jacknji11.jna.JNANative.C_InitToken(Native Method)
at org.pkcs11.jacknji11.jna.JNA.C_InitToken(JNA.java:119)
at org.pkcs11.jacknji11.C.InitToken(C.java:235)
at org.pkcs11.jacknji11.CE.InitToken(CE.java:272)
at com.mmdt.Main.main(Main.java:13)
我只需将我的libparskey11.so
文件复制到项目中的jni文件夹中,并使用以下代码:
private static final long INITSLOT = 0;
public static void main(String[] args) {
CE.InitToken(INITSLOT, "pincode".getBytes(), "TEST".getBytes());
long session = CE.OpenSession(INITSLOT, CKS.RW_PUBLIC_SESSION, null,
null);
CE.Login(session, CKU.SO, "pincode".getBytes());
CE.InitPIN(session, "pincode2".getBytes());
CE.Logout(session);
CE.Login(session, CKU.USER, "pincode".getBytes());
byte[] somenewpin = "somenewpin".getBytes();
CE.SetPIN(session, "pincode2".getBytes(), somenewpin);
CE.SetPIN(session, somenewpin, "pincode2".getBytes());
}
无论java和dll是32位还是64位,我都有JRE X64和so文件以及64位dll。您好,您是否能够使用此库成功地与硬件令牌集成?