包括Java中的PKCS11库

时间:2013-04-06 04:41:05

标签: java dll java-native-interface pkcs#11

我有我的令牌PCKS11 dll和文件。我想使用[jacknji11][1]库。

我的问题是如何将dll OR so文件导入我的项目。

我使用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());

}

0 个答案:

没有答案