16a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvistpackage com.android.server.wifi.anqp.eap; 26a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvist 36a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvistimport java.net.ProtocolException; 46a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvistimport java.nio.ByteBuffer; 56a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvistimport java.util.Arrays; 66a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvist 76a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvist/** 86a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvist * An EAP authentication parameter, IEEE802.11-2012, table 8-188 96a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvist */ 106a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvistpublic class VendorSpecificAuth implements AuthParam { 116a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvist 126a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvist private final byte[] mData; 136a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvist 143be1b3fc037bef7fb4448dec89aea3f2e1318853Jan Nordqvist public VendorSpecificAuth(int length, ByteBuffer payload) throws ProtocolException { 156a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvist mData = new byte[length]; 166a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvist payload.get(mData); 176a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvist } 186a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvist 196a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvist @Override 206a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvist public EAP.AuthInfoID getAuthInfoID() { 216a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvist return EAP.AuthInfoID.VendorSpecific; 226a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvist } 236a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvist 246a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvist public int hashCode() { 256a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvist return Arrays.hashCode(mData); 266a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvist } 276a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvist 286a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvist @Override 296a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvist public boolean equals(Object thatObject) { 306a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvist if (thatObject == this) { 316a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvist return true; 326a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvist } else if (thatObject == null || thatObject.getClass() != VendorSpecificAuth.class) { 336a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvist return false; 346a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvist } else { 356a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvist return Arrays.equals(((VendorSpecificAuth) thatObject).getData(), getData()); 366a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvist } 376a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvist } 386a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvist 396a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvist public byte[] getData() { 406a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvist return mData; 416a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvist } 426a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvist 436a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvist @Override 446a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvist public String toString() { 457b2caa25fb57f2d95e0d0421704c49d3af4b8e6fJan Nordqvist return "Auth method VendorSpecificAuth, data = " + Arrays.toString(mData) + '\n'; 466a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvist } 476a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvist} 48