UniKey API Reference Java Example

From SecuTech Wiki
Revision as of 18:14, 13 July 2016 by Bao (talk | contribs) (Initial Example submit)
(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;
        }
        SecuTech UniKey API Reference Version 1.7 258 of 263
            //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.println("date: "+lp1[0]+"-"+lp2[0]+"-"+p1[0]+" 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");
        }
        if (retval==mUniKey.ERROR_UNIEKY_COMOPARE_TIME_MODULE){
            SecuTech UniKey API Reference Version 1.7 259 of 263
                System.out.println("checktime module : error time later than start
                        time!, code: "+retval+". \n");
        }
        if (retval==mUniKey.ERROR_UNIEKY_TIME_MODULE_OVERDUR){
            System.out.println("checktime module : overdue, code: "+retval+".
                    \n");
        }
        //test if module over durartion
        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;
            SecuTech UniKey API Reference Version 1.7 260 of 263
        }
        // 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;
        }
        SecuTech UniKey API Reference Version 1.7 261 of 263
            // 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;
        SecuTech UniKey API Reference Version 1.7 262 of 263
            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 decresement!");
        }else{
            System.out.println("Decrsement 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();
    }
}