Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fcc8fa0d authored by Hai Shalom's avatar Hai Shalom
Browse files

wifi/supplicant: Create version 1.2 and add support for SAE and OWE

Create version 1.2. and add new interfaces for SAE and OWE, including
new key management types and API.

Bug: 112195778
Test: Unit tested
Change-Id: I9895d3a12c5b8953a04c6f1ebb24e06503e0ff9b
parent 6a7e67cc
Loading
Loading
Loading
Loading
+19 −0
Original line number Diff line number Diff line
// This file is autogenerated by hidl-gen -Landroidbp.

hidl_interface {
    name: "android.hardware.wifi.supplicant@1.2",
    root: "android.hardware",
    vndk: {
        enabled: true,
    },
    srcs: [
        "ISupplicantStaNetwork.hal",
    ],
    interfaces: [
        "android.hardware.wifi.supplicant@1.0",
        "android.hardware.wifi.supplicant@1.1",
        "android.hidl.base@1.0",
    ],
    gen_java: true,
}
+232 −0
Original line number Diff line number Diff line
/*
 * 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 {
        /** 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,
    };

    /** 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,
    };

    /**
     * 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> 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> 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> 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> 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> 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> groupCipherMask);

    /**
     * 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);

    /**
     * Get Key management capabilities of the device
     *
     * @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|
     */
    getKeyMgmtCapabilities()
        generates (SupplicantStatus status, bitfield<KeyMgmtMask> keyMgmtMask);
};