/* * Copyright 2019 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.3; import @1.0::ISupplicantStaNetwork; import @1.0::SupplicantStatus; import @1.2::ISupplicantStaNetwork; /** * Interface exposed by the supplicant for each station mode network * configuration it controls. */ interface ISupplicantStaNetwork extends @1.2::ISupplicantStaNetwork { /** * Possible mask of values for Proto param. */ enum ProtoMask : @1.0::ISupplicantStaNetwork.ProtoMask { WAPI = 1 << 2, }; /** * Possible mask of values for KeyMgmt param. */ enum KeyMgmtMask : @1.2::ISupplicantStaNetwork.KeyMgmtMask { /* * WAPI Psk */ WAPI_PSK = 1 << 12, /** * WAPI Cert */ WAPI_CERT = 1 << 13, /** * FILS shared key authentication with sha-256 */ FILS_SHA256 = 1 << 18, /** * FILS shared key authentication with sha-384 */ FILS_SHA384 = 1 << 19, }; /** * Possible mask of values for PairwiseCipher param. */ enum PairwiseCipherMask : @1.2::ISupplicantStaNetwork.PairwiseCipherMask { /** * SMS4 Pairwise Cipher */ SMS4 = 1 << 7, }; /** * Possible mask of values for GroupCipher param. */ enum GroupCipherMask : @1.2::ISupplicantStaNetwork.GroupCipherMask { /** * SMS4 Group Cipher */ SMS4 = 1 << 7, }; /** * Possible mask of values for AuthAlg param. */ enum AuthAlgMask : @1.0::ISupplicantStaNetwork.AuthAlgMask { SAE = 1 << 4, }; /** * Set OCSP (Online Certificate Status Protocol) type for this network. * * @param ocspType value to set. * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_ARGS_INVALID|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| */ setOcsp(OcspType ocspType) generates (SupplicantStatus status); /** * Get OCSP (Online Certificate Status Protocol) type for this network. * * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_ARGS_INVALID|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| * @return ocspType ocsp type. */ getOcsp() generates (SupplicantStatus status, OcspType ocspType); /** * 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_NETWORK_INVALID|, * |SupplicantStatusCode.FAILURE_UNKNOWN| */ setKeyMgmt_1_3(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|, * |SupplicantStatusCode.FAILURE_UNKNOWN| * @return keyMgmtMask Combination of |KeyMgmtMask| values. */ getKeyMgmt_1_3() generates (SupplicantStatus status, bitfield keyMgmtMask); /** * 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_NETWORK_INVALID|, * |SupplicantStatusCode.FAILURE_UNKNOWN| */ setProto_1_3(bitfield protoMask) generates (SupplicantStatus status); /** * Get the proto mask set for the network. * * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|, * |SupplicantStatusCode.FAILURE_UNKNOWN| * @return protoMask Combination of |ProtoMask| values. */ getProto_1_3() generates (SupplicantStatus status, bitfield protoMask); /** * 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_NETWORK_INVALID|, * |SupplicantStatusCode.FAILURE_UNKNOWN| */ setGroupCipher_1_3(bitfield groupCipherMask) 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|, * |SupplicantStatusCode.FAILURE_UNKNOWN| * @return pairwiseCipherMask Combination of |PairwiseCipherMask| values. */ getPairwiseCipher_1_3() generates (SupplicantStatus status, bitfield pairwiseCipherMask); /** * 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_NETWORK_INVALID|, * |SupplicantStatusCode.FAILURE_UNKNOWN| */ setPairwiseCipher_1_3(bitfield pairwiseCipherMask) 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|, * |SupplicantStatusCode.FAILURE_UNKNOWN| * @return groupCipherMask Combination of |GroupCipherMask| values. */ getGroupCipher_1_3() generates (SupplicantStatus status, bitfield groupCipherMask); /** * Set WAPI certificate suite name for this network. * * @param suite value to set. * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_ARGS_INVALID|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|, * |SupplicantStatusCode.FAILURE_UNKNOWN| */ setWapiCertSuite(string suite) generates (SupplicantStatus status); /** * Get WAPI certificate suite name set for this network. * * @return status Status of the operation. * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|, * |SupplicantStatusCode.FAILURE_UNKNOWN| * @return suite The name of a suite. */ getWapiCertSuite() generates (SupplicantStatus status, string suite); /** * Add a pairwise master key (PMK) into supplicant PMK cache. * * @param serializedEntry is serialized PMK cache entry, the content is * opaque for the framework and depends on the native implementation. * @return status Status of the operation * Possible status codes: * |SupplicantStatusCode.SUCCESS|, * |SupplicantStatusCode.FAILURE_ARGS_INVALID|, * |SupplicantStatusCode.FAILURE_UNKNOWN|, * |SupplicantStatusCode.FAILURE_NETWORK_INVALID| */ setPmkCache(vec serializedEntry) 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_1_3(bitfield authAlgMask) generates (SupplicantStatus status); /** * 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_1_3() generates (SupplicantStatus status, bitfield authAlgMask); /** * Enable Extensible Authentication (EAP) - Re-authentication Protocol (ERP) 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| */ setEapErp(bool enable) generates (SupplicantStatus status); };