package com.alexhulbert.icewind;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.codec.binary.Base64;
/**
*
* @author Taconut
*/
public class Utils {
private final static char[] hexArray = "0123456789abcdef".toCharArray();
/**
* A really sick name for a really stupid function.
* Yup. This does absolutely nothing at all.
* Call me an idiot if you want.
*/
public static void noop() {
//I use this as a point for breakpoints.
//This is also a good control, since it should never raise an Exception (I hope)
}
public static String bytesToHex(byte[] bytes) {
char[] hexChars = new char[bytes.length * 2];
int v;
for ( int j = 0; j < bytes.length; j++ ) {
v = bytes[j] & 0xFF;
hexChars[j * 2] = hexArray[v >>> 4];
hexChars[j * 2 + 1] = hexArray[v & 0x0F];
}
return new String(hexChars);
}
public static Map<String, String> getIcpHeaders() {
Map<String, String> icph = new HashMap<String, String>();
icph.put("Accept", "*/*");
icph.put("User-Agent", "MobileBackup/5.1.1 (9B206; iPhone4,1)");
icph.put("Accept", "application/vnd.com.apple.mbs+protobuf");
icph.put("Accept-Language", "en-US");
icph.put("X-Apple-Request-UUID", "900DFACE-BABE-C001-A550-B00B1E52C0DE");
icph.put("X-Apple-MBS-Protocol-Version", "1.7"); //Anything higher than 1.7 will not give you the X-MobileMe-AuthToken
icph.put("X-MMe-Client-Info", "<iPhone4,1> <iPhone OS;5.1.1;9B206> <com.apple.AppleAccount/1.0 (com.apple.backupd/(null))>");
return icph;
}
public static Map<String, String> getIcpHeaders(Map<String, String> headers) {
//headers.put("Accept", "*/*");
headers.put("User-Agent", "MobileBackup/5.1.1 (9B206; iPhone4,1)");
headers.put("Accept", "application/vnd.com.apple.mbs+protobuf");
headers.put("Accept-Language", "en-US");
headers.put("X-Apple-Request-UUID", "900DFACE-BABE-C001-A550-B00B1E52C0DE");
headers.put("X-Apple-MBS-Protocol-Version", "1.7"); //Anything higher than 1.7 will not give you the X-MobileMe-AuthToken
headers.put("X-MMe-Client-Info", "<iPhone4,1> <iPhone OS;5.1.1;9B206> <com.apple.AppleAccount/1.0 (com.apple.backupd/(null))>");
return headers;
}
public static String encode(String part1, String part2) {
return Base64.encodeBase64String((part1 + ":" + part2).getBytes());
}
public static String encode(String part) {
return Base64.encodeBase64String(part.getBytes());
}
}