package org.exobel.routerkeygen.algorithms; import android.os.Parcel; import android.os.Parcelable; import org.exobel.routerkeygen.R; import java.util.List; public class OteHuaweiKeygen extends Keygen { public final static int MAGIC_NUMBER = 65535; public static final Parcelable.Creator<OteHuaweiKeygen> CREATOR = new Parcelable.Creator<OteHuaweiKeygen>() { public OteHuaweiKeygen createFromParcel(Parcel in) { return new OteHuaweiKeygen(in); } public OteHuaweiKeygen[] newArray(int size) { return new OteHuaweiKeygen[size]; } }; private final String magicValues; public OteHuaweiKeygen(String ssid, String mac, String magicValues) { super(ssid, mac); this.magicValues = magicValues; } private OteHuaweiKeygen(Parcel in) { super(in); magicValues = in.readString(); } @Override public List<String> getKeys() { final String mac = getMacAddress(); if (mac.length() != 12) { setErrorCode(R.string.msg_errpirelli); return null; } final String[] magic = magicValues.split(" "); final String series = mac.substring(0, 2) + mac.substring(6, 8); final int point; switch (series) { case "E8FD": point = 0; break; case "E8F5": point = 1; break; case "E8F6": point = 2; break; default: return getResults(); } if (point >= magic.length) return getResults(); final String pass = "000000" + magic[point]; addPassword(pass.substring(pass.length() - 8)); return getResults(); } @Override public void writeToParcel(Parcel dest, int flags) { super.writeToParcel(dest, flags); dest.writeString(magicValues); } }