/* * Copyright 2018 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.2; import @1.0::ISupplicantStaNetworkCallback; import @1.0::ISupplicantStaNetwork; import @1.0::SupplicantStatus; import @1.1::ISupplicantStaNetwork; /** * Interface exposed by the supplicant for each station mode network * configuration it controls. */ interface ISupplicantStaNetwork extends @1.1::ISupplicantStaNetwork { /** Possble mask of values for KeyMgmt param. */ enum KeyMgmtMask : @1.0::ISupplicantStaNetwork.KeyMgmtMask { /** WPA using EAP authentication with stronger SHA256-based algorithms */ WPA_EAP_SHA256 = 1 << 7, /** WPA pre-shared key with stronger SHA256-based algorithms */ WPA_PSK_SHA256 = 1 << 8, /** WPA3-Personal SAE Key management */ SAE = 1 << 10, /** WPA3-Enterprise Suite-B Key management */ SUITE_B_192 = 1 << 17, /** Enhacned Open (OWE) Key management */ OWE = 1 << 22, /** Easy Connect (DPP) Key management */ DPP = 1 << 23, }; /** Possble mask of values for PairwiseCipher param. */ enum PairwiseCipherMask : @1.0::ISupplicantStaNetwork.PairwiseCipherMask { /** GCMP-256 Pairwise Cipher */ GCMP_256 = 1 << 8, }; /** Possble mask of values for GroupCipher param. */ enum GroupCipherMask : @1.0::ISupplicantStaNetwork.GroupCipherMask { /** GCMP-256 Group Cipher */ GCMP_256 = 1 << 8, }; /** Possble mask of values for GroupMgmtCipher param. */ enum GroupMgmtCipherMask : uint32_t { /** BIP_GMAC-128 Group Management Cipher */ BIP_GMAC_128 = 1 << 11, /** BIP_GMAC-256 Group Management Cipher */ BIP_GMAC_256 = 1 << 12, /** BIP_CMAC-256 Group Management Cipher */ BIP_CMAC_256 = 1 << 13, }; /** * 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_1_2(bitfield keyMgmtMask) generates (SupplicantStatus status); /** * 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_1_2() generates (SupplicantStatus status, bitfield keyMgmtMask); /** * Set pairwise cipher mask for the network. * * @param pairwiseCipherMask value to set. * Combination of |PairwiseCipherMask| values. * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_ARGS_INVALID|, * |SupplicantStatusCode.FAILURE_UNKNOWN|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| */ setPairwiseCipher_1_2(bitfield pairwiseCipherMask) generates (SupplicantStatus status); /** * 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_1_2() generates (SupplicantStatus status, bitfield pairwiseCipherMask); /** * Set group cipher mask for the network. * * @param groupCipherMask value to set. * Combination of |GroupCipherMask| values. * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_ARGS_INVALID|, * |SupplicantStatusCode.FAILURE_UNKNOWN|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| */ setGroupCipher_1_2(bitfield groupCipherMask) generates (SupplicantStatus status); /** * 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_1_2() generates (SupplicantStatus status, bitfield groupCipherMask); /** * Set group management cipher mask for the network. * * @param groupMgmtCipherMask value to set. * Combination of |GroupMgmtCipherMask| values. * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_ARGS_INVALID|, * |SupplicantStatusCode.FAILURE_UNKNOWN|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| */ setGroupMgmtCipher(bitfield groupMgmtCipherMask) generates (SupplicantStatus status); /** * Get the group management cipher mask set for the network. * * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| * @return groupMgmtCipherMask Combination of |GroupMgmtCipherMask| values. */ getGroupMgmtCipher() generates (SupplicantStatus status, bitfield groupMgmtCipherMask); /** * Enable TLS Suite-B in EAP Phase1 * * @param enable Set to true to enable TLS Suite-B in EAP phase1 * * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_ARGS_INVALID|, * |SupplicantStatusCode.FAILURE_UNKNOWN|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| */ enableTlsSuiteBEapPhase1Param(bool enable) generates (SupplicantStatus status); /** * Set EAP OpenSSL Suite-B-192 ciphers for WPA3-Enterprise * Supported option: * * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_ARGS_INVALID|, * |SupplicantStatusCode.FAILURE_UNKNOWN|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| */ enableSuiteBEapOpenSslCiphers() generates (SupplicantStatus status); /** * Get SAE password for WPA3-Personal * * @return status Status of the operation, and a string. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_ARGS_INVALID|, * |SupplicantStatusCode.FAILURE_UNKNOWN|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| */ getSaePassword() generates (SupplicantStatus status, string saePassword); /** * Get SAE password ID for WPA3-Personal * * @return status Status of the operation, and a string. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_ARGS_INVALID|, * |SupplicantStatusCode.FAILURE_UNKNOWN|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| */ getSaePasswordId() generates (SupplicantStatus status, string saePasswordId); /** * Set SAE password for WPA3-Personal * * @param saePassword string with the above option * * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_ARGS_INVALID|, * |SupplicantStatusCode.FAILURE_UNKNOWN|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| */ setSaePassword(string saePassword) generates (SupplicantStatus status); /** * Set SAE password ID for WPA3-Personal * * @param sae_password_id string with the above option * * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_ARGS_INVALID|, * |SupplicantStatusCode.FAILURE_UNKNOWN|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| */ setSaePasswordId(string saePasswordId) generates (SupplicantStatus status); };