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