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