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