/* * Copyright 2016 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.hardware.wifi.supplicant@1.0; import ISupplicantNetwork; import ISupplicantStaNetworkCallback; /** * Interface exposed by the supplicant for each station mode network * configuration it controls. */ interface ISupplicantStaNetwork extends ISupplicantNetwork { /** * Size limits for some of the params used in this interface. */ enum ParamSizeLimits : uint32_t { /** Max length of SSID param. */ SSID_MAX_LEN_IN_BYTES = 32, /** Min length of PSK passphrase param. */ PSK_PASSPHRASE_MIN_LEN_IN_BYTES = 8, /** Max length of PSK passphrase param. */ PSK_PASSPHRASE_MAX_LEN_IN_BYTES = 63, /** Max number of WEP keys param. */ WEP_KEYS_MAX_NUM = 4, /** Length of each WEP40 keys param. */ WEP40_KEY_LEN_IN_BYTES = 5, /** Length of each WEP104 keys param. */ WEP104_KEY_LEN_IN_BYTES = 13, }; /** Possble mask of values for KeyMgmt param. */ enum KeyMgmtMask : uint32_t { WPA_EAP = 1 << 0, WPA_PSK = 1 << 1, NONE = 1 << 2, IEEE8021X = 1 << 3, FT_EAP = 1 << 5, FT_PSK = 1 << 6, OSEN = 1 << 15 }; /** Possble mask of values for Proto param. */ enum ProtoMask : uint32_t { WPA = 1 << 0, RSN = 1 << 1, /** Unused 1 << 2 */ OSEN = 1 << 3 }; /** Possble mask of values for AuthAlg param. */ enum AuthAlgMask : uint32_t { OPEN = 1 << 0, SHARED = 1 << 1, LEAP = 1 << 2 }; /** Possble mask of values for GroupCipher param. */ enum GroupCipherMask : uint32_t { WEP40 = 1 << 1, WEP104 = 1 << 2, TKIP = 1 << 3, CCMP = 1 << 4, GTK_NOT_USED = 1 << 14 }; /** Possble mask of values for PairwiseCipher param. */ enum PairwiseCipherMask : uint32_t { NONE = 1 << 0, TKIP = 1 << 3, CCMP = 1 << 4 }; /** Possble values for EapMethod param. */ enum EapMethod : uint32_t { PEAP = 0, TLS = 1, TTLS = 2, PWD = 3, SIM = 4, AKA = 5, AKA_PRIME = 6, WFA_UNAUTH_TLS = 7 }; /** Possble values for Phase2Method param. */ enum EapPhase2Method : uint32_t { NONE = 0, PAP = 1, MSPAP = 2, MSPAPV2 = 3, GTC = 4, SIM = 5, AKA = 6, AKA_PRIME = 7 }; /** Params of |sendNetworkEapSimGsmAuthResponse| request. (Refer RFC 4186) */ struct NetworkResponseEapSimGsmAuthParams { uint8_t[8] kc; uint8_t[4] sres; }; /** Params of |sendNetworkEapSimUmtsAuthResponse| request. (Refer RFC 4187) */ struct NetworkResponseEapSimUmtsAuthParams { vec res; uint8_t[16] ik; uint8_t[16] ck; }; /** * Register for callbacks from this network. * * These callbacks are invoked for events that are specific to this network. * Registration of multiple callback objects is supported. These objects must * be automatically deleted when the corresponding client process is dead or * if this network is removed. * * @param callback An instance of the |ISupplicantStaNetworkCallback| HIDL * interface object. * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_UNKNOWN|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| */ registerCallback(ISupplicantStaNetworkCallback callback) generates (SupplicantStatus status); /** * Setters for the various network params. * These correspond to elements of |wpa_sssid| struct used internally by * the supplicant to represent each network. */ /** * Set SSID for this network. * * @param ssid value to set. * Max length of |ParamSizeLimits.SSID_MAX_LEN_IN_BYTES|. * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_ARGS_INVALID|, * |SupplicantStatusCode.FAILURE_UNKNOWN|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| */ setSsid(Ssid ssid) generates (SupplicantStatus status); /** * Set the network to only connect to an AP with provided BSSID. * * @param bssid value to set. * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_ARGS_INVALID|, * |SupplicantStatusCode.FAILURE_UNKNOWN|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| */ setBssid(Bssid bssid) generates (SupplicantStatus status); /** * Set whether to send probe requests for this network (hidden). * * @param enable true to set, false otherwise. * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_UNKNOWN|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| */ setScanSsid(bool enable) generates (SupplicantStatus status); /** * Set key management mask for the network. * * @param keyMgmtMask value to set. * Combination of |KeyMgmtMask| values. * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_ARGS_INVALID|, * |SupplicantStatusCode.FAILURE_UNKNOWN|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| */ setKeyMgmt(bitfield keyMgmtMask) generates (SupplicantStatus status); /** * Set proto mask for the network. * * @param protoMask value to set. * Combination of |ProtoMask| values. * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_ARGS_INVALID|, * |SupplicantStatusCode.FAILURE_UNKNOWN|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| */ setProto(bitfield protoMask) generates (SupplicantStatus status); /** * Set auth alg mask for the network. * * @param authAlgMask value to set. * Combination of |ProtoMask| values. * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_ARGS_INVALID|, * |SupplicantStatusCode.FAILURE_UNKNOWN|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| */ setAuthAlg(bitfield authAlgMask) generates (SupplicantStatus status); /** * Set group cipher mask for the network. * * @param groupCipherMask value to set. * Combination of |ProtoMask| values. * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_ARGS_INVALID|, * |SupplicantStatusCode.FAILURE_UNKNOWN|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| */ setGroupCipher(bitfield groupCipherMask) generates (SupplicantStatus status); /** * Set pairwise cipher mask for the network. * * @param pairwiseCipherMask value to set. * Combination of |ProtoMask| values. * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_ARGS_INVALID|, * |SupplicantStatusCode.FAILURE_UNKNOWN|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| */ setPairwiseCipher(bitfield pairwiseCipherMask) generates (SupplicantStatus status); /** * Set passphrase for WPA_PSK network. * * @param psk value to set. * Length of value must be between * |ParamSizeLimits.PSK_PASSPHRASE_MIN_LEN_IN_BYTES| and * |ParamSizeLimits.PSK_PASSPHRASE_MAX_LEN_IN_BYTES|. * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.FAILURE_ARGS_INVALID|, * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_UNKNOWN|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| */ setPskPassphrase(string psk) generates (SupplicantStatus status); /** * Set raw psk for WPA_PSK network. * * @param psk value to set as specified in IEEE 802.11i-2004 standard. * This is the calculated using 'wpa_passphrase [passphrase]' * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.FAILURE_ARGS_INVALID|, * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_UNKNOWN|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| */ setPsk(uint8_t[32] psk) generates (SupplicantStatus status); /** * Set WEP key for WEP network. * * @param keyIdx Index of wep key to set. * Max of |ParamSizeLimits.WEP_KEYS_MAX_NUM|. * @param wepKey value to set. * Length of each key must be either * |ParamSizeLimits.WEP40_KEY_LEN_IN_BYTES| or * |ParamSizeLimits.WEP104_KEY_LEN_IN_BYTES|. * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_ARGS_INVALID|, * |SupplicantStatusCode.FAILURE_UNKNOWN|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| */ setWepKey(uint32_t keyIdx, vec wepKey) generates (SupplicantStatus status); /** * Set default Tx key index for WEP network. * * @param KeyIdx value to set. * Max of |ParamSizeLimits.WEP_KEYS_MAX_NUM|. * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_ARGS_INVALID|, * |SupplicantStatusCode.FAILURE_UNKNOWN|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| */ setWepTxKeyIdx(uint32_t keyIdx) generates (SupplicantStatus status); /** * Set whether RequirePmf is enabled for this network. * * @param enable true to set, false otherwise. * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_UNKNOWN|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| */ setRequirePmf(bool enable) generates (SupplicantStatus status); /** * Set EAP Method for this network. * * @param method value to be set. * Must be one of |EapMethod| values. * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_ARGS_INVALID|, * |SupplicantStatusCode.FAILURE_UNKNOWN|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| */ setEapMethod(EapMethod method) generates (SupplicantStatus status); /** * Set EAP Phase2 Method for this network. * * EAP method needs to be set for this to work. * * @param method value to set. * Must be one of |EapPhase2Method| values. * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_ARGS_INVALID|, * |SupplicantStatusCode.FAILURE_UNKNOWN|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| */ setEapPhase2Method(EapPhase2Method method) generates (SupplicantStatus status); /** * Set EAP Identity for this network. * * @param identity value to set. * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_ARGS_INVALID|, * |SupplicantStatusCode.FAILURE_UNKNOWN|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| */ setEapIdentity(vec identity) generates (SupplicantStatus status); /** * Set EAP Anonymous Identity for this network. * * @param identity value to set. * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_ARGS_INVALID|, * |SupplicantStatusCode.FAILURE_UNKNOWN|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| */ setEapAnonymousIdentity(vec identity) generates (SupplicantStatus status); /** * Set EAP Password for this network. * * @param password value to set. * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_ARGS_INVALID|, * |SupplicantStatusCode.FAILURE_UNKNOWN|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| */ setEapPassword(vec password) generates (SupplicantStatus status); /** * Set EAP CA certificate file path for this network. * * @param path value to set. * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_ARGS_INVALID|, * |SupplicantStatusCode.FAILURE_UNKNOWN|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| */ setEapCACert(string path) generates (SupplicantStatus status); /** * Set EAP CA certificate directory path for this network. * * @param path value to set. * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_ARGS_INVALID|, * |SupplicantStatusCode.FAILURE_UNKNOWN|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| */ setEapCAPath(string path) generates (SupplicantStatus status); /** * Set EAP Client certificate file path for this network. * * @param path value to set. * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_ARGS_INVALID|, * |SupplicantStatusCode.FAILURE_UNKNOWN|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| */ setEapClientCert(string path) generates (SupplicantStatus status); /** * Set EAP private key Id for this network. * This is used if private key operations for EAP-TLS are performed * using a smartcard. * * @param id value to set. * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_ARGS_INVALID|, * |SupplicantStatusCode.FAILURE_UNKNOWN|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| */ setEapPrivateKeyId(string id) generates (SupplicantStatus status); /** * Set EAP subject match for this network. * * @param match value to set. * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_ARGS_INVALID|, * |SupplicantStatusCode.FAILURE_UNKNOWN|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| */ setEapSubjectMatch(string match) generates (SupplicantStatus status); /** * Set EAP Alt subject match for this network. * * @param match value to set. * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_ARGS_INVALID|, * |SupplicantStatusCode.FAILURE_UNKNOWN|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| */ setEapAltSubjectMatch(string match) generates (SupplicantStatus status); /** * Enable EAP Open SSL Engine for this network. * * @param enable true to set, false otherwise. * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_UNKNOWN|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| */ setEapEngine(bool enable) generates (SupplicantStatus status); /** * Set EAP Open SSL Engine ID for this network. * * @param id value to set. * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_ARGS_INVALID|, * |SupplicantStatusCode.FAILURE_UNKNOWN|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| */ setEapEngineID(string id) generates (SupplicantStatus status); /** * Set EAP Domain suffix match for this network. * * @param match value to set. * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_ARGS_INVALID|, * |SupplicantStatusCode.FAILURE_UNKNOWN|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| */ setEapDomainSuffixMatch(string match) generates (SupplicantStatus status); /** * This field can be used to enable proactive key caching which is also * known as opportunistic PMKSA caching for WPA2. This is disabled (0) * by default unless default value is changed with the global okc=1 * parameter. * * Proactive key caching is used to make supplicant assume that the APs * are using the same PMK and generate PMKSA cache entries without * doing RSN pre-authentication. This requires support from the AP side * and is normally used with wireless switches that co-locate the * authenticator. * * @param enable true to set, false otherwise. * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_UNKNOWN|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| */ setProactiveKeyCaching(bool enable) generates (SupplicantStatus status); /** * Set ID string for this network. * Network identifier string for external scripts. * * @return idStr ID string value to set. * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_ARGS_INVALID|, * |SupplicantStatusCode.FAILURE_UNKNOWN|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| */ setIdStr(string idStr) generates (SupplicantStatus status); /** * Set PPS MO ID for this network. * (Hotspot 2.0 PerProviderSubscription/UpdateIdentifier) * * @return id ID value to set. * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_ARGS_INVALID|, * |SupplicantStatusCode.FAILURE_UNKNOWN|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| */ setUpdateIdentifier(uint32_t id) generates (SupplicantStatus status); /** * Getters for the various network params. */ /** * Get SSID for this network. * * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| * @return ssid value set. */ getSsid() generates (SupplicantStatus status, Ssid ssid); /** * Get the BSSID set for this network. * * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| * @return bssid value set. */ getBssid() generates (SupplicantStatus status, Bssid bssid); /** * Get whether Probe Requests are being sent for this network (hidden). * * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| * @return enabled true if set, false otherwise. */ getScanSsid() generates (SupplicantStatus status, bool enabled); /** * Get the key mgmt mask set for the network. * * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| * @return keyMgmtMask Combination of |KeyMgmtMask| values. */ getKeyMgmt() generates (SupplicantStatus status, bitfield keyMgmtMask); /** * Get the proto mask set for the network. * * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| * @return protoMask Combination of |ProtoMask| values. */ getProto() generates (SupplicantStatus status, bitfield protoMask); /** * Get the auth alg mask set for the network. * * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| * @return authAlgMask Combination of |AuthAlgMask| values. */ getAuthAlg() generates (SupplicantStatus status, bitfield authAlgMask); /** * Get the group cipher mask set for the network. * * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| * @return groupCipherMask Combination of |GroupCipherMask| values. */ getGroupCipher() generates (SupplicantStatus status, bitfield groupCipherMask); /** * Get the pairwise cipher mask set for the network. * * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| * @return pairwiseCipherMask Combination of |PairwiseCipherMask| values. */ getPairwiseCipher() generates (SupplicantStatus status, bitfield pairwiseCipherMask); /** * Get passphrase for WPA_PSK network. * Must return a failure if network has no passphrase set (use |getPsk| if * network was configured with raw psk instead). * * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| * @return psk value set. */ getPskPassphrase() generates (SupplicantStatus status, string psk); /** * Get raw psk for WPA_PSK network. * * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.FAILURE_ARGS_INVALID|, * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_UNKNOWN|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| * @param psk value set. */ getPsk() generates (SupplicantStatus status, uint8_t[32] psk); /** * Get WEP key for WEP network. * * @param keyIdx Index of wep key to be fetched. * Max of |WEP_KEYS_MAX_NUM|. * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| * @return wepKey value set. */ getWepKey(uint32_t keyIdx) generates (SupplicantStatus status, vec wepKey); /** * Get default Tx key index for WEP network. * * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| * @return keyIdx value set. */ getWepTxKeyIdx() generates (SupplicantStatus status, uint32_t keyIdx); /** * Get whether RequirePmf is enabled for this network. * * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| * @return enabled true if set, false otherwise. */ getRequirePmf() generates (SupplicantStatus status, bool enabled); /** * Get EAP Method set for this network. * * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_UNKNOWN|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| * @return method value set. * Must be one of |EapMethod| values. */ getEapMethod() generates (SupplicantStatus status, EapMethod method); /** * Get EAP Phase2 Method set for this network. * * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_UNKNOWN|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| * @return method value set. * Must be one of |EapPhase2Method| values. */ getEapPhase2Method() generates (SupplicantStatus status, EapPhase2Method method); /** * Get EAP Identity set for this network. * * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_UNKNOWN|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| * @return identity value set. */ getEapIdentity() generates (SupplicantStatus status, vec identity); /** * Get EAP Anonymous Identity set for this network. * * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_UNKNOWN|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| * @return identity value set. */ getEapAnonymousIdentity() generates (SupplicantStatus status, vec identity); /** * Get EAP Password set for this network. * * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_UNKNOWN|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| * @return password value set. */ getEapPassword() generates (SupplicantStatus status, vec password); /** * Get EAP CA certificate file path set for this network. * * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_UNKNOWN|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| * @return path value set. */ getEapCACert() generates (SupplicantStatus status, string path); /** * Get EAP CA certificate directory path set for this network. * * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_UNKNOWN|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| * @return path value set. */ getEapCAPath() generates (SupplicantStatus status, string path); /** * Get EAP Client certificate file path set for this network. * * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_UNKNOWN|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| * @return path value set. */ getEapClientCert() generates (SupplicantStatus status, string path); /** * Get EAP private key Id set for this network. * * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_UNKNOWN|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| * @return id value set. */ getEapPrivateKeyId() generates (SupplicantStatus status, string id); /** * Get EAP subject match set for this network. * * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_UNKNOWN|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| * @return match value set. */ getEapSubjectMatch() generates (SupplicantStatus status, string match); /** * Get EAP Alt subject match set for this network. * * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_UNKNOWN|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| * @return match value set. */ getEapAltSubjectMatch() generates (SupplicantStatus status, string match); /** * Get if EAP Open SSL Engine is enabled for this network. * * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_UNKNOWN|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| * @return enabled true if set, false otherwise. */ getEapEngine() generates (SupplicantStatus status, bool enabled); /** * Get EAP Open SSL Engine ID set for this network. * * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_UNKNOWN|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| * @return id value set. */ getEapEngineID() generates (SupplicantStatus status, string id); /** * Get EAP Domain suffix match set for this network. * * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_ARGS_INVALID|, * |SupplicantStatusCode.FAILURE_UNKNOWN|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| * @return match value set. */ getEapDomainSuffixMatch() generates (SupplicantStatus status, string match); /** * Get ID string set for this network. * Network identifier string for external scripts. * * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_ARGS_INVALID|, * |SupplicantStatusCode.FAILURE_UNKNOWN|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| * @return idStr ID string set. */ getIdStr() generates (SupplicantStatus status, string idStr); /** * Retrieves a WPS-NFC configuration token for this network. * * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_ARGS_INVALID|, * |SupplicantStatusCode.FAILURE_UNKNOWN|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| * @return token Bytes representing WPS-NFC configuration token. * This is a dump of all the WPS atrributes of the AP configuration * as specified in the Wi-Fi Protected Setup Specification. */ getWpsNfcConfigurationToken() generates (SupplicantStatus status, vec token); /** * Enable the network for connection purposes. * * This must trigger a connection to the network if: * a) |noConnect| is false, and * b) This is the only network configured, and * c) Is visible in the current scan results. * * @param noConnect Only enable the network, dont trigger a connect. * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_UNKNOWN|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| */ enable(bool noConnect) generates (SupplicantStatus status); /** * Disable the network for connection purposes. * * This must trigger a disconnection from the network, if currently * connected to this one. * * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_UNKNOWN|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| */ disable() generates (SupplicantStatus status); /** * Initiate connection to this network. * * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_UNKNOWN|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| */ select() generates (SupplicantStatus status); /** * Used to send a response to the * |ISupplicantNetworkCallback.onNetworkEapSimGsmAuthRequest| request. * * @param params Params to be used for EAP GSM authentication. * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_UNKNOWN|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| */ sendNetworkEapSimGsmAuthResponse(vec params) generates (SupplicantStatus status); /** * Used to send a response to the * |ISupplicantNetworkCallback.onNetworkEapSimGsmAuthRequest| request. * * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_UNKNOWN|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| */ sendNetworkEapSimGsmAuthFailure() generates (SupplicantStatus status); /** * Used to send a response to the * |ISupplicantNetworkCallback.onNetworkEapSimUmtsAuthRequest| request. * * @param params Params to be used for EAP UMTS authentication. * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_UNKNOWN|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| */ sendNetworkEapSimUmtsAuthResponse(NetworkResponseEapSimUmtsAuthParams params) generates (SupplicantStatus status); /** * Used to send a response to the * |ISupplicantNetworkCallback.onNetworkEapSimUmtsAuthRequest| request. * * @param auts Params to be used for EAP UMTS authentication. * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_UNKNOWN|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| */ sendNetworkEapSimUmtsAutsResponse(uint8_t[14] auts) generates (SupplicantStatus status); /** * Used to send a response to the * |ISupplicantNetworkCallback.onNetworkEapSimUmtsAuthRequest| request. * * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_UNKNOWN|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| */ sendNetworkEapSimUmtsAuthFailure() generates (SupplicantStatus status); /** * Used to send a response to the * |ISupplicantNetworkCallback.onNetworkEapIdentityRequest| request. * * @param identity Identity to be used for the network. * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_UNKNOWN|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| */ sendNetworkEapIdentityResponse(vec identity) generates (SupplicantStatus status); };