1
0
mirror of https://github.com/esphome/esphome.git synced 2025-11-20 00:35:44 +00:00

WPA2 Enterprise Attempt 2 (#1158)

This commit is contained in:
Otto Winter
2020-07-24 15:40:05 +02:00
committed by GitHub
parent c030be4d3f
commit f3d5d27c8f
7 changed files with 271 additions and 3 deletions

View File

@@ -57,6 +57,18 @@ struct ManualIP {
IPAddress dns2; ///< The second DNS server. 0.0.0.0 for default.
};
#ifdef ESPHOME_WIFI_WPA2_EAP
struct EAPAuth {
std::string identity; // required for all auth types
std::string username;
std::string password;
const char *ca_cert; // optionally verify authentication server
// used for EAP-TLS
const char *client_cert;
const char *client_key;
};
#endif // ESPHOME_WIFI_WPA2_EAP
using bssid_t = std::array<uint8_t, 6>;
class WiFiAP {
@@ -65,6 +77,9 @@ class WiFiAP {
void set_bssid(bssid_t bssid);
void set_bssid(optional<bssid_t> bssid);
void set_password(const std::string &password);
#ifdef ESPHOME_WIFI_WPA2_EAP
void set_eap(optional<EAPAuth> eap_auth);
#endif // ESPHOME_WIFI_WPA2_EAP
void set_channel(optional<uint8_t> channel);
void set_priority(float priority) { priority_ = priority; }
void set_manual_ip(optional<ManualIP> manual_ip);
@@ -72,6 +87,9 @@ class WiFiAP {
const std::string &get_ssid() const;
const optional<bssid_t> &get_bssid() const;
const std::string &get_password() const;
#ifdef ESPHOME_WIFI_WPA2_EAP
const optional<EAPAuth> &get_eap() const;
#endif // ESPHOME_WIFI_WPA2_EAP
const optional<uint8_t> &get_channel() const;
float get_priority() const { return priority_; }
const optional<ManualIP> &get_manual_ip() const;
@@ -81,6 +99,9 @@ class WiFiAP {
std::string ssid_;
optional<bssid_t> bssid_;
std::string password_;
#ifdef ESPHOME_WIFI_WPA2_EAP
optional<EAPAuth> eap_;
#endif // ESPHOME_WIFI_WPA2_EAP
optional<uint8_t> channel_;
float priority_{0};
optional<ManualIP> manual_ip_;