51 lines
1.2 KiB
Java
51 lines
1.2 KiB
Java
package com.truphone.util;
|
|
|
|
|
|
public class ToTLV {
|
|
public static String toTLV(String tag,String input){
|
|
if("".equals(tag))return toTLV(input);
|
|
return tag+toTLV(input);
|
|
}
|
|
|
|
public static String integerToTLV(String tag,int input){
|
|
if("".equals(tag))return integerToTLV(input);
|
|
return tag+integerToTLV(input);
|
|
}
|
|
|
|
public static String integerToTLV(int input) {
|
|
String tlv;
|
|
if(input<=127){
|
|
tlv=String.format("01%02X", input);
|
|
}else{
|
|
tlv=String.format("02%04X", input);
|
|
}
|
|
|
|
return tlv;
|
|
}
|
|
|
|
|
|
public static String toTLV(String input) {
|
|
int inputLen = input.length()/2;
|
|
String strInputLenString = toHex(String.valueOf(inputLen));
|
|
if (inputLen > 65535) {
|
|
input = "83" + strInputLenString + input;
|
|
} else if (inputLen > 255) {
|
|
input = "82" + strInputLenString + input;
|
|
} else if(inputLen > 127) {
|
|
input = "81" + strInputLenString + input;
|
|
} else {
|
|
input = strInputLenString + input;
|
|
}
|
|
|
|
return input;
|
|
}
|
|
|
|
private static String toHex(String num) {
|
|
String hex = Integer.toHexString(Integer.valueOf(num));
|
|
if (hex.length() % 2 != 0) {
|
|
hex = "0" + hex;
|
|
}
|
|
return hex.toUpperCase();
|
|
}
|
|
}
|