1ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvistpackage com.android.anqp.eap; 2ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvist 3ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvistimport java.net.ProtocolException; 4ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvistimport java.nio.ByteBuffer; 5ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvistimport java.util.Arrays; 6ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvist 7ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvist/** 8ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvist * An EAP authentication parameter, IEEE802.11-2012, table 8-188 9ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvist */ 10ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvistpublic class VendorSpecificAuth implements AuthParam { 11ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvist 12ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvist private final byte[] mData; 13ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvist 14ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvist public VendorSpecificAuth(int length, ByteBuffer payload) throws ProtocolException { 15ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvist mData = new byte[length]; 16ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvist payload.get(mData); 17ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvist } 18ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvist 19ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvist @Override 20ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvist public EAP.AuthInfoID getAuthInfoID() { 21ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvist return EAP.AuthInfoID.VendorSpecific; 22ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvist } 23ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvist 24ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvist public int hashCode() { 25ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvist return Arrays.hashCode(mData); 26ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvist } 27ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvist 28ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvist @Override 29ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvist public boolean equals(Object thatObject) { 30ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvist if (thatObject == this) { 31ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvist return true; 32ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvist } else if (thatObject == null || thatObject.getClass() != VendorSpecificAuth.class) { 33ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvist return false; 34ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvist } else { 35ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvist return Arrays.equals(((VendorSpecificAuth) thatObject).getData(), getData()); 36ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvist } 37ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvist } 38ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvist 39ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvist public byte[] getData() { 40ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvist return mData; 41ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvist } 42ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvist 43ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvist @Override 44ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvist public String toString() { 45ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvist return "Auth method VendorSpecificAuth, data = " + Arrays.toString(mData) + '\n'; 46ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvist } 47ee699a61a5687d7c8518b639a940c8e9d1b384ddJan Nordqvist} 48