UniKey API Reference Java Example
From SecuTech Wiki
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();
}
}