1 /* 2 * Copyright (C) 2020 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 package com.android.server.wifi; 17 18 import android.annotation.NonNull; 19 import android.hardware.wifi.supplicant.V1_0.ISupplicantStaNetworkCallback; 20 21 import com.android.server.wifi.util.NativeUtil; 22 23 class SupplicantStaNetworkCallbackImpl extends ISupplicantStaNetworkCallback.Stub { 24 private final SupplicantStaNetworkHal mNetworkHal; 25 26 /** 27 * Current configured network's framework network id. 28 */ 29 private final int mFrameworkNetworkId; 30 /** 31 * Current configured network's ssid. 32 */ 33 private final String mSsid; 34 35 private final String mIfaceName; 36 37 private final Object mLock; 38 39 private final WifiMonitor mWifiMonitor; 40 SupplicantStaNetworkCallbackImpl( @onNull SupplicantStaNetworkHal networkHal, int frameworkNetworkId, String ssid, @NonNull String ifaceName, @NonNull Object lock, @NonNull WifiMonitor wifiMonitor)41 SupplicantStaNetworkCallbackImpl( 42 @NonNull SupplicantStaNetworkHal networkHal, 43 int frameworkNetworkId, String ssid, 44 @NonNull String ifaceName, @NonNull Object lock, @NonNull WifiMonitor wifiMonitor) { 45 mNetworkHal = networkHal; 46 47 mFrameworkNetworkId = frameworkNetworkId; 48 mSsid = ssid; 49 50 mIfaceName = ifaceName; 51 mLock = lock; 52 mWifiMonitor = wifiMonitor; 53 } 54 55 @Override onNetworkEapSimGsmAuthRequest( ISupplicantStaNetworkCallback.NetworkRequestEapSimGsmAuthParams params)56 public void onNetworkEapSimGsmAuthRequest( 57 ISupplicantStaNetworkCallback.NetworkRequestEapSimGsmAuthParams params) { 58 synchronized (mLock) { 59 mNetworkHal.logCallback("onNetworkEapSimGsmAuthRequest"); 60 String[] data = new String[params.rands.size()]; 61 int i = 0; 62 for (byte[] rand : params.rands) { 63 data[i++] = NativeUtil.hexStringFromByteArray(rand); 64 } 65 mWifiMonitor.broadcastNetworkGsmAuthRequestEvent( 66 mIfaceName, mFrameworkNetworkId, mSsid, data); 67 } 68 } 69 70 @Override onNetworkEapSimUmtsAuthRequest( ISupplicantStaNetworkCallback.NetworkRequestEapSimUmtsAuthParams params)71 public void onNetworkEapSimUmtsAuthRequest( 72 ISupplicantStaNetworkCallback.NetworkRequestEapSimUmtsAuthParams params) { 73 synchronized (mLock) { 74 mNetworkHal.logCallback("onNetworkEapSimUmtsAuthRequest"); 75 String randHex = NativeUtil.hexStringFromByteArray(params.rand); 76 String autnHex = NativeUtil.hexStringFromByteArray(params.autn); 77 String[] data = {randHex, autnHex}; 78 mWifiMonitor.broadcastNetworkUmtsAuthRequestEvent( 79 mIfaceName, mFrameworkNetworkId, mSsid, data); 80 } 81 } 82 83 @Override onNetworkEapIdentityRequest()84 public void onNetworkEapIdentityRequest() { 85 synchronized (mLock) { 86 mNetworkHal.logCallback("onNetworkEapIdentityRequest"); 87 mWifiMonitor.broadcastNetworkIdentityRequestEvent( 88 mIfaceName, mFrameworkNetworkId, mSsid); 89 } 90 } 91 } 92