171a988c8e9859244b83cd55bb6b6ee913fcaf95cJan Nordqvistpackage com.android.server.wifi.hotspot2;
271a988c8e9859244b83cd55bb6b6ee913fcaf95cJan Nordqvist
371a988c8e9859244b83cd55bb6b6ee913fcaf95cJan Nordqvist/**
471a988c8e9859244b83cd55bb6b6ee913fcaf95cJan Nordqvist * Match score for EAP credentials:
5866c5b061e6e762f2627e3467afc0fe6f29c2668Jan Nordqvist * None means that there is a distinct mismatch, i.e. realm, method or parameter is defined
6866c5b061e6e762f2627e3467afc0fe6f29c2668Jan Nordqvist * and mismatches that of the credential.
7866c5b061e6e762f2627e3467afc0fe6f29c2668Jan Nordqvist * Indeterminate means that there is no ANQP information to match against.
8c2db1a4ff61fdf72be070e0c1cb739e755760bf3Jan Nordqvist * Note: The numeric values given to the constants are used for preference comparison and
9c2db1a4ff61fdf72be070e0c1cb739e755760bf3Jan Nordqvist * must be maintained accordingly.
1071a988c8e9859244b83cd55bb6b6ee913fcaf95cJan Nordqvist */
11c2db1a4ff61fdf72be070e0c1cb739e755760bf3Jan Nordqvistpublic abstract class AuthMatch {
12c2db1a4ff61fdf72be070e0c1cb739e755760bf3Jan Nordqvist    public static final int None = -1;
13c2db1a4ff61fdf72be070e0c1cb739e755760bf3Jan Nordqvist    public static final int Indeterminate = 0;
14c2db1a4ff61fdf72be070e0c1cb739e755760bf3Jan Nordqvist    public static final int Realm = 0x04;
15c2db1a4ff61fdf72be070e0c1cb739e755760bf3Jan Nordqvist    public static final int Method = 0x02;
16c2db1a4ff61fdf72be070e0c1cb739e755760bf3Jan Nordqvist    public static final int Param = 0x01;
17c2db1a4ff61fdf72be070e0c1cb739e755760bf3Jan Nordqvist    public static final int MethodParam = Method | Param;
18c2db1a4ff61fdf72be070e0c1cb739e755760bf3Jan Nordqvist    public static final int Exact = Realm | Method | Param;
19c2db1a4ff61fdf72be070e0c1cb739e755760bf3Jan Nordqvist
20c2db1a4ff61fdf72be070e0c1cb739e755760bf3Jan Nordqvist    public static String toString(int match) {
21c2db1a4ff61fdf72be070e0c1cb739e755760bf3Jan Nordqvist        if (match < 0) {
22c2db1a4ff61fdf72be070e0c1cb739e755760bf3Jan Nordqvist            return "None";
23c2db1a4ff61fdf72be070e0c1cb739e755760bf3Jan Nordqvist        }
24c2db1a4ff61fdf72be070e0c1cb739e755760bf3Jan Nordqvist        else if (match == 0) {
25c2db1a4ff61fdf72be070e0c1cb739e755760bf3Jan Nordqvist            return "Indeterminate";
26c2db1a4ff61fdf72be070e0c1cb739e755760bf3Jan Nordqvist        }
27c2db1a4ff61fdf72be070e0c1cb739e755760bf3Jan Nordqvist
28c2db1a4ff61fdf72be070e0c1cb739e755760bf3Jan Nordqvist        StringBuilder sb = new StringBuilder();
29c2db1a4ff61fdf72be070e0c1cb739e755760bf3Jan Nordqvist        if ((match & Realm) != 0) {
30c2db1a4ff61fdf72be070e0c1cb739e755760bf3Jan Nordqvist            sb.append("Realm");
31c2db1a4ff61fdf72be070e0c1cb739e755760bf3Jan Nordqvist        }
32c2db1a4ff61fdf72be070e0c1cb739e755760bf3Jan Nordqvist        if ((match & Method) != 0) {
33c2db1a4ff61fdf72be070e0c1cb739e755760bf3Jan Nordqvist            sb.append("Method");
34c2db1a4ff61fdf72be070e0c1cb739e755760bf3Jan Nordqvist        }
35c2db1a4ff61fdf72be070e0c1cb739e755760bf3Jan Nordqvist        if ((match & Param) != 0) {
36c2db1a4ff61fdf72be070e0c1cb739e755760bf3Jan Nordqvist            sb.append("Param");
37c2db1a4ff61fdf72be070e0c1cb739e755760bf3Jan Nordqvist        }
38c2db1a4ff61fdf72be070e0c1cb739e755760bf3Jan Nordqvist        return sb.toString();
39c2db1a4ff61fdf72be070e0c1cb739e755760bf3Jan Nordqvist    }
4071a988c8e9859244b83cd55bb6b6ee913fcaf95cJan Nordqvist}
41