OpenEUICC/libs/lpad-sm-dp-plus-connector/src/main/java/com/truphone/util/ToTLV.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();
}
}