16ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius/* 26ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius * hidl interface for wpa_supplicant daemon 36ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius * Copyright (c) 2004-2016, Jouni Malinen <j@w1.fi> 46ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius * Copyright (c) 2004-2016, Roshan Pius <rpius@google.com> 56ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius * 66ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius * This software may be distributed under the terms of the BSD license. 76ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius * See README for more details. 86ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius */ 96ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius 106ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius#ifndef WPA_SUPPLICANT_HIDL_STA_NETWORK_H 116ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius#define WPA_SUPPLICANT_HIDL_STA_NETWORK_H 126ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius 136ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius#include <array> 146ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius#include <vector> 156ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius 166ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius#include <android-base/macros.h> 176ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius 1889da2fbba2216ed312512c8a2ea5e675d5157077pkanwar#include <android/hardware/wifi/supplicant/1.1/ISupplicantStaNetwork.h> 196ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius#include <android/hardware/wifi/supplicant/1.0/ISupplicantStaNetworkCallback.h> 206ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius 216ca7b54de22e93958b79bae0a4428107e08cb778Roshan Piusextern "C" { 226ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius#include "utils/common.h" 236ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius#include "utils/includes.h" 246ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius#include "config.h" 256ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius#include "wpa_supplicant_i.h" 266ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius#include "notify.h" 276ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius#include "eapol_supp/eapol_supp_sm.h" 286ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius#include "eap_peer/eap.h" 296ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius#include "rsn_supp/wpa.h" 306ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius} 316ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius 326ca7b54de22e93958b79bae0a4428107e08cb778Roshan Piusnamespace android { 336ca7b54de22e93958b79bae0a4428107e08cb778Roshan Piusnamespace hardware { 346ca7b54de22e93958b79bae0a4428107e08cb778Roshan Piusnamespace wifi { 356ca7b54de22e93958b79bae0a4428107e08cb778Roshan Piusnamespace supplicant { 366ca7b54de22e93958b79bae0a4428107e08cb778Roshan Piusnamespace V1_1 { 376ca7b54de22e93958b79bae0a4428107e08cb778Roshan Piusnamespace implementation { 386ca7b54de22e93958b79bae0a4428107e08cb778Roshan Piususing namespace android::hardware::wifi::supplicant::V1_0; 396ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius 406ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius/** 416ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius * Implementation of StaNetwork hidl object. Each unique hidl 426ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius * object is used for control operations on a specific network 436ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius * controlled by wpa_supplicant. 446ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius */ 4589da2fbba2216ed312512c8a2ea5e675d5157077pkanwarclass StaNetwork : public V1_1::ISupplicantStaNetwork 466ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius{ 476ca7b54de22e93958b79bae0a4428107e08cb778Roshan Piuspublic: 486ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius StaNetwork( 496ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius struct wpa_global* wpa_global, const char ifname[], int network_id); 506ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius ~StaNetwork() override = default; 516ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius // Refer to |StaIface::invalidate()|. 526ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius void invalidate(); 536ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius bool isValid(); 546ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius 556ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius // Hidl methods exposed. 566ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> getId(getId_cb _hidl_cb) override; 576ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> getInterfaceName(getInterfaceName_cb _hidl_cb) override; 586ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> getType(getType_cb _hidl_cb) override; 596ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> registerCallback( 606ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const sp<ISupplicantStaNetworkCallback>& callback, 616ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius registerCallback_cb _hidl_cb) override; 626ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> setSsid( 636ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const hidl_vec<uint8_t>& ssid, setSsid_cb _hidl_cb) override; 646ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> setBssid( 656ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const hidl_array<uint8_t, 6>& bssid, setBssid_cb _hidl_cb) override; 666ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> setScanSsid(bool enable, setScanSsid_cb _hidl_cb) override; 676ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> setKeyMgmt( 686ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius uint32_t key_mgmt_mask, setKeyMgmt_cb _hidl_cb) override; 696ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> setProto( 706ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius uint32_t proto_mask, setProto_cb _hidl_cb) override; 716ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> setAuthAlg( 726ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius uint32_t auth_alg_mask, setAuthAlg_cb _hidl_cb) override; 736ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> setGroupCipher( 746ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius uint32_t group_cipher_mask, setGroupCipher_cb _hidl_cb) override; 756ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> setPairwiseCipher( 766ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius uint32_t pairwise_cipher_mask, 776ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius setPairwiseCipher_cb _hidl_cb) override; 786ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> setPskPassphrase( 796ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const hidl_string& psk, setPskPassphrase_cb _hidl_cb) override; 806ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> setPsk( 816ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const hidl_array<uint8_t, 32>& psk, setPsk_cb _hidl_cb) override; 826ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> setWepKey( 836ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius uint32_t key_idx, const hidl_vec<uint8_t>& wep_key, 846ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius setWepKey_cb _hidl_cb) override; 856ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> setWepTxKeyIdx( 866ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius uint32_t key_idx, setWepTxKeyIdx_cb _hidl_cb) override; 876ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> setRequirePmf( 886ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius bool enable, setRequirePmf_cb _hidl_cb) override; 896ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> setEapMethod( 906ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius ISupplicantStaNetwork::EapMethod method, 916ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius setEapMethod_cb _hidl_cb) override; 926ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> setEapPhase2Method( 936ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius ISupplicantStaNetwork::EapPhase2Method method, 946ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius setEapPhase2Method_cb _hidl_cb) override; 956ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> setEapIdentity( 966ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const hidl_vec<uint8_t>& identity, 976ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius setEapIdentity_cb _hidl_cb) override; 986ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> setEapAnonymousIdentity( 996ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const hidl_vec<uint8_t>& identity, 1006ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius setEapAnonymousIdentity_cb _hidl_cb) override; 1016ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> setEapPassword( 1026ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const hidl_vec<uint8_t>& password, 1036ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius setEapPassword_cb _hidl_cb) override; 1046ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> setEapCACert( 1056ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const hidl_string& path, setEapCACert_cb _hidl_cb) override; 1066ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> setEapCAPath( 1076ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const hidl_string& path, setEapCAPath_cb _hidl_cb) override; 1086ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> setEapClientCert( 1096ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const hidl_string& path, setEapClientCert_cb _hidl_cb) override; 1106ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> setEapPrivateKeyId( 1116ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const hidl_string& id, setEapPrivateKeyId_cb _hidl_cb) override; 11289da2fbba2216ed312512c8a2ea5e675d5157077pkanwar Return<void> setEapEncryptedImsiIdentity( 11389da2fbba2216ed312512c8a2ea5e675d5157077pkanwar const EapSimEncryptedIdentity& identity, 11489da2fbba2216ed312512c8a2ea5e675d5157077pkanwar setEapEncryptedImsiIdentity_cb _hidl_cb) override; 1156ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> setEapSubjectMatch( 1166ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const hidl_string& match, setEapSubjectMatch_cb _hidl_cb) override; 1176ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> setEapAltSubjectMatch( 1186ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const hidl_string& match, 1196ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius setEapAltSubjectMatch_cb _hidl_cb) override; 1206ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> setEapEngine( 1216ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius bool enable, setEapEngine_cb _hidl_cb) override; 1226ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> setEapEngineID( 1236ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const hidl_string& id, setEapEngineID_cb _hidl_cb) override; 1246ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> setEapDomainSuffixMatch( 1256ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const hidl_string& match, 1266ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius setEapDomainSuffixMatch_cb _hidl_cb) override; 1276ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> setProactiveKeyCaching( 1286ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius bool enable, setProactiveKeyCaching_cb _hidl_cb) override; 1296ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> setIdStr( 1306ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const hidl_string& id_str, setIdStr_cb _hidl_cb) override; 1316ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> setUpdateIdentifier( 1326ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius uint32_t id, setUpdateIdentifier_cb _hidl_cb) override; 1336ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> getSsid(getSsid_cb _hidl_cb) override; 1346ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> getBssid(getBssid_cb _hidl_cb) override; 1356ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> getScanSsid(getScanSsid_cb _hidl_cb) override; 1366ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> getKeyMgmt(getKeyMgmt_cb _hidl_cb) override; 1376ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> getProto(getProto_cb _hidl_cb) override; 1386ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> getAuthAlg(getAuthAlg_cb _hidl_cb) override; 1396ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> getGroupCipher(getGroupCipher_cb _hidl_cb) override; 1406ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> getPairwiseCipher(getPairwiseCipher_cb _hidl_cb) override; 1416ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> getPskPassphrase(getPskPassphrase_cb _hidl_cb) override; 1426ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> getPsk(getPsk_cb _hidl_cb) override; 1436ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> getWepKey( 1446ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius uint32_t key_idx, getWepKey_cb _hidl_cb) override; 1456ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> getWepTxKeyIdx(getWepTxKeyIdx_cb _hidl_cb) override; 1466ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> getRequirePmf(getRequirePmf_cb _hidl_cb) override; 1476ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> getEapMethod(getEapMethod_cb _hidl_cb) override; 1486ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> getEapPhase2Method( 1496ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius getEapPhase2Method_cb _hidl_cb) override; 1506ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> getEapIdentity(getEapIdentity_cb _hidl_cb) override; 1516ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> getEapAnonymousIdentity( 1526ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius getEapAnonymousIdentity_cb _hidl_cb) override; 1536ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> getEapPassword(getEapPassword_cb _hidl_cb) override; 1546ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> getEapCACert(getEapCACert_cb _hidl_cb) override; 1556ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> getEapCAPath(getEapCAPath_cb _hidl_cb) override; 1566ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> getEapClientCert(getEapClientCert_cb _hidl_cb) override; 1576ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> getEapPrivateKeyId( 1586ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius getEapPrivateKeyId_cb _hidl_cb) override; 1596ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> getEapSubjectMatch( 1606ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius getEapSubjectMatch_cb _hidl_cb) override; 1616ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> getEapAltSubjectMatch( 1626ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius getEapAltSubjectMatch_cb _hidl_cb) override; 1636ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> getEapEngine(getEapEngine_cb _hidl_cb) override; 1646ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> getEapEngineID(getEapEngineID_cb _hidl_cb) override; 1656ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> getEapDomainSuffixMatch( 1666ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius getEapDomainSuffixMatch_cb _hidl_cb) override; 1676ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> getIdStr(getIdStr_cb _hidl_cb) override; 1686ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> getWpsNfcConfigurationToken( 1696ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius getWpsNfcConfigurationToken_cb _hidl_cb) override; 1706ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> enable(bool no_connect, enable_cb _hidl_cb) override; 1716ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> disable(disable_cb _hidl_cb) override; 1726ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> select(select_cb _hidl_cb) override; 1736ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> sendNetworkEapSimGsmAuthResponse( 1746ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const hidl_vec< 1756ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius ISupplicantStaNetwork::NetworkResponseEapSimGsmAuthParams>& 1766ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius vec_params, 1776ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius sendNetworkEapSimGsmAuthResponse_cb _hidl_cb) override; 1786ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> sendNetworkEapSimGsmAuthFailure( 1796ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius sendNetworkEapSimGsmAuthFailure_cb _hidl_cb) override; 1806ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> sendNetworkEapSimUmtsAuthResponse( 1816ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const ISupplicantStaNetwork::NetworkResponseEapSimUmtsAuthParams& 1826ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius params, 1836ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius sendNetworkEapSimUmtsAuthResponse_cb _hidl_cb) override; 1846ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> sendNetworkEapSimUmtsAutsResponse( 1856ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const hidl_array<uint8_t, 14>& auts, 1866ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius sendNetworkEapSimUmtsAutsResponse_cb _hidl_cb) override; 1876ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> sendNetworkEapSimUmtsAuthFailure( 1886ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius sendNetworkEapSimUmtsAuthFailure_cb _hidl_cb) override; 1896ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius Return<void> sendNetworkEapIdentityResponse( 1906ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const hidl_vec<uint8_t>& identity, 1916ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius sendNetworkEapIdentityResponse_cb _hidl_cb) override; 19289da2fbba2216ed312512c8a2ea5e675d5157077pkanwar Return<void> sendNetworkEapIdentityResponse_1_1( 19389da2fbba2216ed312512c8a2ea5e675d5157077pkanwar const EapSimIdentity& identity, 19489da2fbba2216ed312512c8a2ea5e675d5157077pkanwar const EapSimEncryptedIdentity& imsiIdentity, 19589da2fbba2216ed312512c8a2ea5e675d5157077pkanwar sendNetworkEapIdentityResponse_1_1_cb _hidl_cb) override; 1966ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius 1976ca7b54de22e93958b79bae0a4428107e08cb778Roshan Piusprivate: 1986ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius // Corresponding worker functions for the HIDL methods. 1996ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius std::pair<SupplicantStatus, uint32_t> getIdInternal(); 2006ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius std::pair<SupplicantStatus, std::string> getInterfaceNameInternal(); 2016ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius std::pair<SupplicantStatus, IfaceType> getTypeInternal(); 2026ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantStatus registerCallbackInternal( 2036ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const sp<ISupplicantStaNetworkCallback>& callback); 2046ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantStatus setSsidInternal(const std::vector<uint8_t>& ssid); 2056ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantStatus setBssidInternal(const std::array<uint8_t, 6>& bssid); 2066ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantStatus setScanSsidInternal(bool enable); 2076ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantStatus setKeyMgmtInternal(uint32_t key_mgmt_mask); 2086ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantStatus setProtoInternal(uint32_t proto_mask); 2096ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantStatus setAuthAlgInternal(uint32_t auth_alg_mask); 2106ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantStatus setGroupCipherInternal(uint32_t group_cipher_mask); 2116ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantStatus setPairwiseCipherInternal( 2126ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius uint32_t pairwise_cipher_mask); 2136ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantStatus setPskPassphraseInternal(const std::string& psk); 2146ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantStatus setPskInternal(const std::array<uint8_t, 32>& psk); 2156ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantStatus setWepKeyInternal( 2166ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius uint32_t key_idx, const std::vector<uint8_t>& wep_key); 2176ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantStatus setWepTxKeyIdxInternal(uint32_t key_idx); 2186ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantStatus setRequirePmfInternal(bool enable); 2196ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantStatus setEapMethodInternal( 2206ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius ISupplicantStaNetwork::EapMethod method); 2216ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantStatus setEapPhase2MethodInternal( 2226ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius ISupplicantStaNetwork::EapPhase2Method method); 2236ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantStatus setEapIdentityInternal( 2246ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const std::vector<uint8_t>& identity); 22589da2fbba2216ed312512c8a2ea5e675d5157077pkanwar SupplicantStatus setEapEncryptedImsiIdentityInternal( 22689da2fbba2216ed312512c8a2ea5e675d5157077pkanwar const std::vector<uint8_t>& identity); 2276ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantStatus setEapAnonymousIdentityInternal( 2286ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const std::vector<uint8_t>& identity); 2296ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantStatus setEapPasswordInternal( 2306ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const std::vector<uint8_t>& password); 2316ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantStatus setEapCACertInternal(const std::string& path); 2326ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantStatus setEapCAPathInternal(const std::string& path); 2336ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantStatus setEapClientCertInternal(const std::string& path); 2346ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantStatus setEapPrivateKeyIdInternal(const std::string& id); 2356ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantStatus setEapSubjectMatchInternal(const std::string& match); 2366ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantStatus setEapAltSubjectMatchInternal( 2376ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const std::string& match); 2386ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantStatus setEapEngineInternal(bool enable); 2396ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantStatus setEapEngineIDInternal(const std::string& id); 2406ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantStatus setEapDomainSuffixMatchInternal( 2416ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const std::string& match); 2426ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantStatus setProactiveKeyCachingInternal(bool enable); 2436ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantStatus setIdStrInternal(const std::string& id_str); 2446ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantStatus setUpdateIdentifierInternal(uint32_t id); 2456ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius std::pair<SupplicantStatus, std::vector<uint8_t>> getSsidInternal(); 2466ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius std::pair<SupplicantStatus, std::array<uint8_t, 6>> getBssidInternal(); 2476ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius std::pair<SupplicantStatus, bool> getScanSsidInternal(); 2486ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius std::pair<SupplicantStatus, uint32_t> getKeyMgmtInternal(); 2496ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius std::pair<SupplicantStatus, uint32_t> getProtoInternal(); 2506ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius std::pair<SupplicantStatus, uint32_t> getAuthAlgInternal(); 2516ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius std::pair<SupplicantStatus, uint32_t> getGroupCipherInternal(); 2526ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius std::pair<SupplicantStatus, uint32_t> getPairwiseCipherInternal(); 2536ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius std::pair<SupplicantStatus, std::string> getPskPassphraseInternal(); 2546ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius std::pair<SupplicantStatus, std::array<uint8_t, 32>> getPskInternal(); 2556ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius std::pair<SupplicantStatus, std::vector<uint8_t>> getWepKeyInternal( 2566ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius uint32_t key_idx); 2576ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius std::pair<SupplicantStatus, uint32_t> getWepTxKeyIdxInternal(); 2586ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius std::pair<SupplicantStatus, bool> getRequirePmfInternal(); 2596ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius std::pair<SupplicantStatus, ISupplicantStaNetwork::EapMethod> 2606ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius getEapMethodInternal(); 2616ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius std::pair<SupplicantStatus, ISupplicantStaNetwork::EapPhase2Method> 2626ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius getEapPhase2MethodInternal(); 2636ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius std::pair<SupplicantStatus, std::vector<uint8_t>> 2646ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius getEapIdentityInternal(); 2656ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius std::pair<SupplicantStatus, std::vector<uint8_t>> 2666ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius getEapAnonymousIdentityInternal(); 2676ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius std::pair<SupplicantStatus, std::vector<uint8_t>> 2686ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius getEapPasswordInternal(); 2696ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius std::pair<SupplicantStatus, std::string> getEapCACertInternal(); 2706ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius std::pair<SupplicantStatus, std::string> getEapCAPathInternal(); 2716ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius std::pair<SupplicantStatus, std::string> getEapClientCertInternal(); 2726ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius std::pair<SupplicantStatus, std::string> getEapPrivateKeyIdInternal(); 2736ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius std::pair<SupplicantStatus, std::string> getEapSubjectMatchInternal(); 2746ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius std::pair<SupplicantStatus, std::string> 2756ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius getEapAltSubjectMatchInternal(); 2766ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius std::pair<SupplicantStatus, bool> getEapEngineInternal(); 2776ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius std::pair<SupplicantStatus, std::string> getEapEngineIDInternal(); 2786ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius std::pair<SupplicantStatus, std::string> 2796ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius getEapDomainSuffixMatchInternal(); 2806ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius std::pair<SupplicantStatus, std::string> getIdStrInternal(); 2816ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius std::pair<SupplicantStatus, std::vector<uint8_t>> 2826ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius getWpsNfcConfigurationTokenInternal(); 2836ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantStatus enableInternal(bool no_connect); 2846ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantStatus disableInternal(); 2856ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantStatus selectInternal(); 2866ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantStatus sendNetworkEapSimGsmAuthResponseInternal( 2876ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const std::vector< 2886ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius ISupplicantStaNetwork::NetworkResponseEapSimGsmAuthParams>& 2896ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius vec_params); 2906ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantStatus sendNetworkEapSimGsmAuthFailureInternal(); 2916ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantStatus sendNetworkEapSimUmtsAuthResponseInternal( 2926ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const ISupplicantStaNetwork::NetworkResponseEapSimUmtsAuthParams& 2936ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius params); 2946ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantStatus sendNetworkEapSimUmtsAutsResponseInternal( 2956ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const std::array<uint8_t, 14>& auts); 2966ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantStatus sendNetworkEapSimUmtsAuthFailureInternal(); 2976ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius SupplicantStatus sendNetworkEapIdentityResponseInternal( 2986ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const std::vector<uint8_t>& identity); 29989da2fbba2216ed312512c8a2ea5e675d5157077pkanwar SupplicantStatus sendNetworkEapIdentityResponseInternal_1_1( 30089da2fbba2216ed312512c8a2ea5e675d5157077pkanwar const std::vector<uint8_t>& identity, 30189da2fbba2216ed312512c8a2ea5e675d5157077pkanwar const std::vector<uint8_t>& imsi_identity); 3026ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius 3036ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius struct wpa_ssid* retrieveNetworkPtr(); 3046ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius struct wpa_supplicant* retrieveIfacePtr(); 3056ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius int isPskPassphraseValid(const std::string& psk); 3066ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius void resetInternalStateAfterParamsUpdate(); 3076ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius int setStringFieldAndResetState( 3086ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const char* value, uint8_t** to_update_field, 3096ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const char* hexdump_prefix); 3106ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius int setStringFieldAndResetState( 3116ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const char* value, char** to_update_field, 3126ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const char* hexdump_prefix); 3136ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius int setStringKeyFieldAndResetState( 3146ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const char* value, char** to_update_field, 3156ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const char* hexdump_prefix); 3166ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius int setByteArrayFieldAndResetState( 3176ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const uint8_t* value, const size_t value_len, 3186ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius uint8_t** to_update_field, size_t* to_update_field_len, 3196ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const char* hexdump_prefix); 3206ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius int setByteArrayKeyFieldAndResetState( 3216ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const uint8_t* value, const size_t value_len, 3226ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius uint8_t** to_update_field, size_t* to_update_field_len, 3236ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const char* hexdump_prefix); 3246ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius 3256ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius // Reference to the global wpa_struct. This is assumed to be valid 3266ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius // for the lifetime of the process. 3276ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius struct wpa_global* wpa_global_; 3286ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius // Name of the iface this network belongs to. 3296ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const std::string ifname_; 3306ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius // Id of the network this hidl object controls. 3316ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius const int network_id_; 3326ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius bool is_valid_; 3336ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius 3346ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius DISALLOW_COPY_AND_ASSIGN(StaNetwork); 3356ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius}; 3366ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius 3376ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius} // namespace implementation 3386ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius} // namespace V1_1 3396ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius} // namespace wifi 3406ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius} // namespace supplicant 3416ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius} // namespace hardware 3426ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius} // namespace android 3436ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius 3446ca7b54de22e93958b79bae0a4428107e08cb778Roshan Pius#endif // WPA_SUPPLICANT_HIDL_STA_NETWORK_H 345