UniKey API Reference Java Example

From SecuTech Wiki
Revision as of 11:31, 14 July 2016 by Bao (talk | contribs) (Indexing)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search


An example of utilizing the API in Java.

class sample
{
    public static void UniKeyRTCSample()
    {
        KeyObj  mUniKey = new KeyObj();
        short   func;
        short[] handle  = new short[1];
        int[]   lp1     = new int[1];
        int[]   lp2     = new int[2];
        short[] p1      = new short[1];
        short[] p2      = new short[1];
        short[] p3      = new short[1];
        short[] p4      = new short[1];
        byte[]  buffer  = new byte[1024];
        long    retval;
        short[] rc      = new short[4];

        // find dongle
        retval = mUniKey.UniKey_Find(handle, lp1, lp2);
        if (retval == mUniKey.SUCCESS)
        {
            System.out.println("Find UniKey:" + lp1[0]);
        }
        else
        {
            System.out.println("No UniKey found.");
            return;
        }

        // logon dongle
        p1[0] = 1234;
        p2[0] = 1234;
        p3[0] = 1234;
        p4[0] = 1234;

        retval = mUniKey.UniKey_Vender_Logon(handle, p1, p2, p3, p4);
        if (retval == mUniKey.SUCCESS)
        {
            System.out.println("Logon UniKey:" + lp1[0]);
        }
        else
        {
            System.out.println("Found error:" + retval);
            return;
        }
        
        //UNIKEY_SET_TIME_NOW , time value from pc time
        retval = mUniKey.UniKey_Set_Time_Now(handle);
        if (retval == mUniKey.SUCCESS)
        {
            System.out.println("Set Time okay:" + lp1[0]);
        }
        else
        {
            System.out.println("Set Time error:" + retval);
            return;
        }
        
        //UNIKEY_GET_TIME
        retval = mUniKey.UniKey_Get_Time(handle, lp1, lp2, p1, p2, p3, p4);
        if (retval == mUniKey.SUCCESS)
        {
            System.out.println("Get Time okay:" + lp1[0]);
            System.out.print("date: " + lp1[0] + "-" + lp2[0] + "-" + p1[0]);
            System.out.println(" time:" + p2[0] + ":" + p3[0] + ":" + p4[0]);
        }
        else
        {
            System.out.println("Get Time error:" + retval);
            return;
        }

        System.out.println("Test time module.\n");
        lp1[0] = 0;
        lp2[0] = 0;
        retval = mUniKey.UniKey_Erase_Time_Module(handle, lp1);
        if (retval == mUniKey.SUCCESS)
        {
            System.out.println("Erase Time module okay:" + lp1[0]);
        }
        else
        {
            System.out.println("Erase Time module error:" + retval);
            return;
        }

        lp1[0] = 0;
        lp2[0] = 0;
        retval = mUniKey.UniKey_Set_Time_Module_Start_Time_Now(handle, lp1);
        if (retval == mUniKey.SUCCESS)
        {
            System.out.println("Set Time module start time okay:" + lp1[0]);
        }
        else
        {
            System.out.println("Set Time module start time error:" + retval);
            return;
        }

        lp2[0] = 0; //days
        p1[0] = 1; //hours
        retval = mUniKey.UniKey_Set_Time_Module_Duration(handle, lp1, lp2, p1);
        if (retval == mUniKey.SUCCESS)
        {
            System.out.println("Set Time module end time okay:" + lp1[0]);
        }
        else
        {
            System.out.println("Set Time module end time error:" + retval);
            return;
        }

        retval = mUniKey.UniKey_Check_Time_Module_Now(handle, lp1);
        if (retval == mUniKey.SUCCESS)
        {
            System.out.println("checktime module : okay.\n");
        }
        else if (retval == mUniKey.ERROR_UNIEKY_COMOPARE_TIME_MODULE)
        {
            System.out.println("checktime module : error time later than start time!, code: " + retval + ".\n");
        }
        else if (retval == mUniKey.ERROR_UNIEKY_TIME_MODULE_OVERDUR)
        {
            System.out.println("checktime module : overdue, code: " + retval + ". \n");
        }

        //test if module over duration
        retval = mUniKey.UniKey_Get_Time(handle, lp1, lp2, p1, p2, p3, p4);
        if (retval == mUniKey.SUCCESS)
        {
            ;
        }
        else
        {
            System.out.println("Get Time error:" + retval);
            return;
        }
        
        p3[0]  =  p1[0];
        p4[0]  =  p2[0];
        p1[0]  =  (short)lp1[0];
        p2[0]  =  (short)lp2[0];
        lp1[0] =  0;
        p4[0]  += 2;
        
        retval = mUniKey.UniKey_Check_Time_Module(handle, lp1, p1, p2, p3, p4);
        if(retval == mUniKey.SUCCESS)
        {
            System.out.println("checktime module okay when no need.\n");
        }
        
        retval = mUniKey.UniKey_Logoff(handle);
        if(retval != mUniKey.SUCCESS)
        {
            System.out.println("Logoff failed!");
            return;
        }
        System.out.println("Logoff UniKey"); 
    }
    
    public static void UniKeySample()
    {
        KeyObj  mUniKey = new KeyObj();
        short   func;
        short[] handle  = new short[1];
        int[]   lp1     = new int[1];
        int[]   lp2     = new int[2];
        short[] p1      = new short[1];
        short[] p2      = new short[1];
        short[] p3      = new short[1];
        short[] p4      = new short[1];
        byte[]  buffer  = new byte[1024];
        long    retval;
        short[] rc      = new short[4];

        // find dongle
        retval = mUniKey.UniKey_Find(handle, lp1, lp2);
        if (retval == mUniKey.SUCCESS)
        {
            System.out.println("Find UniKey:" + lp1[0]);
        }
        else
        {
            System.out.println("No UniKey found:");
            return;
        }

        // logon dongle
        p1[0] = 1234;
        p2[0] = 1234;
        p3[0] = 1234;
        p4[0] = 1234; 
        retval = mUniKey.UniKey_Vender_Logon(handle, p1, p2, p3, p4);
        if (retval == mUniKey.SUCCESS)
        {
            System.out.println("Logon UniKey:" + lp1[0]);
        }
        else
        {
            System.out.println("Found error:" + retval);
            return;
        }

        // write memory
        p1[0]=3;
        p2[0]=5;
        buffer[0] = 'A'; buffer[1] = 'C'; buffer[2] = 'c'; 
        buffer[3] = 'B'; buffer[4] = 'D'; 
        retval = mUniKey.UniKey_Write_Memory(handle, p1, p2, buffer);
        if (retval == mUniKey.SUCCESS)
        {
            System.out.println("Write UniKey Successfully");
        }
        else
        {
            System.out.println("Found error:" + retval);
            return;
        }

        // read memory
        p1[0]=3;
        p2[0]=5;
        for (int m = 0; m < 5; m++)
        {
            buffer[m] = 0; 
        }

        retval = mUniKey.UniKey_Read_Memory(handle, p1, p2, buffer);
        if (retval == mUniKey.SUCCESS)
        {
            System.out.println("Read UniKey Successfully:");
        }
        else
        {
            System.out.println("Found error:" + retval);
            return;
        }
        
        // random
        retval = mUniKey.UniKey_Random(handle, p1, p2, p3, p4);
        if (retval == mUniKey.SUCCESS)
        {
            System.out.println("Random Successfully:" + p1[0]);
        }
        else
        {
            System.out.println("Found error:" + retval);
            return;
        }

        // seed
        lp1[0] = 12345678;
        retval = mUniKey.UniKey_Seed(handle, lp1, p1, p2, p3, p4);
        if (retval == mUniKey.SUCCESS)
        {
            System.out.println("Seed: " + p1[0] + "," + p2[0] + "," + p3[0] + "," + p4[0]);
        }
        else
        {
            System.out.println("Found error:" + retval);
            return;
        }

        // write soft id
        lp1[0] = 8888;
        retval = mUniKey.UniKey_Write_SoftID(handle, lp1);
        if (retval == mUniKey.SUCCESS)
        {
            System.out.println("Write SoftID: " + lp1[0]);
        }
        else
        {
            System.out.println("Found error:" + retval);
            return;
        }
        
        // read soft id
        lp1[0] = 0;
        retval = mUniKey.UniKey_Read_SoftID(handle, lp1);
        if (retval == mUniKey.SUCCESS)
        {
            System.out.println("Read SoftID: " + lp1[0]);
        }
        else
        {
            System.out.println("Found error:" + retval);
            return;
        }
        
        // write updatetag
        lp1[0] = 66666;
        retval = mUniKey.UniKey_Write_UpDataTag(handle, lp1);
        if (retval == mUniKey.SUCCESS)
        {
            System.out.println("Write UpdateTag: " + lp1[0]);
        }
        else
        {
            System.out.println("Found error:" + retval);
            return;
        }

        // read updatetag
        lp1[0] = 0;
        retval = mUniKey.UniKey_Read_UpDataTag(handle, lp1);
        if (retval == mUniKey.SUCCESS)
        {
            System.out.println("Read UpdateTag: " + lp1[0]);
        }
        else
        {
            System.out.println("Found error:" + retval);
            return;
        }

        // set module
        p1[0] = 7;
        p2[0] = 0x2121;
        p3[0] = 0;
        retval = mUniKey.UniKey_Set_Module(handle, p1, p2, p3);
        if (retval != mUniKey.SUCCESS)
        {
            System.out.println("Set module failed!");
            return;
        }
        System.out.println("Set module 7, pass=" + p2[0] + ", Decreasement not allowed!"); 
        
        // check module
        p1[0] = 7; 
        retval = mUniKey.UniKey_Check_Module(handle, p1, p2, p3);
        if(retval != mUniKey.SUCCESS)
        {
            System.out.println("Chech Module Failed!");
            return;
        }
        
        System.out.print("Check module 7:");
        if (p2[0] != 0)
        {
            System.out.println("valid!");
        }
        else
        {
            System.out.println("invalid!");
        }
        if (p3[0] != 0)
        {
            System.out.println("Allow decreasement!");
        }
        else
        {
            System.out.println("Decreasement not allowed!");
        }

        // generate new password
        // if you really want to change password, please de-comment these codes
        //  lp1[0] = 1234;
        //  retval = mUniKey.UniKey_Generate_New_Password(handle,lp1,p1,p2,p3,p4);
        //  if (retval != mUniKey.SUCCESS)
        //  {
        //      System.out.println("generate new password!");
        //      return;
        //  }
        //  System.out.println("new password: p1=" + p1[0] + ",p2=" + p2[0] + ",p3=" + p3[0] + ",p4=" + p4[0]); 
        retval = mUniKey.UniKey_Logoff(handle);
        if (retval != mUniKey.SUCCESS)
        {
            System.out.println("Logoff failed!");
            return;
        }
        System.out.println("Logoff UniKey"); 
    }

    public static void main(String[] args){
        UniKeySample();
        UniKeyRTCSample();
    }
}