defs.h revision 1f69aa52ea2e0a73ac502565df8c666ee49cab6a
1551ccae044b0ff658fe629dd67edd5ffe75d10e8Reid Spencer/* 27a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell * WPA Supplicant - Common definitions 3582a23c686aa544c8a44d07601d4520d4ea18980Reid Spencer * Copyright (c) 2004-2008, Jouni Malinen <j@w1.fi> 4582a23c686aa544c8a44d07601d4520d4ea18980Reid Spencer * 5582a23c686aa544c8a44d07601d4520d4ea18980Reid Spencer * This program is free software; you can redistribute it and/or modify 64c75054b0149750219fe6edb8e25ddd8f7af6920Gabor Greif * it under the terms of the GNU General Public License version 2 as 74c75054b0149750219fe6edb8e25ddd8f7af6920Gabor Greif * published by the Free Software Foundation. 84c75054b0149750219fe6edb8e25ddd8f7af6920Gabor Greif * 94c75054b0149750219fe6edb8e25ddd8f7af6920Gabor Greif * Alternatively, this software may be distributed under the terms of BSD 104c75054b0149750219fe6edb8e25ddd8f7af6920Gabor Greif * license. 114c75054b0149750219fe6edb8e25ddd8f7af6920Gabor Greif * 124c75054b0149750219fe6edb8e25ddd8f7af6920Gabor Greif * See README and COPYING for more details. 134c75054b0149750219fe6edb8e25ddd8f7af6920Gabor Greif */ 1465c5d75bc8900c61707f54f4057040fac4a8d58aReid Spencer 1565c5d75bc8900c61707f54f4057040fac4a8d58aReid Spencer#ifndef DEFS_H 1665c5d75bc8900c61707f54f4057040fac4a8d58aReid Spencer#define DEFS_H 17af58cae8cb9c0ce64ae6a40990a4ad097c71e0e4Reid Spencer 18af58cae8cb9c0ce64ae6a40990a4ad097c71e0e4Reid Spencer#ifdef FALSE 19af58cae8cb9c0ce64ae6a40990a4ad097c71e0e4Reid Spencer#undef FALSE 200a262ba7c3250ef02833fae864459ccc905a2e9bReid Spencer#endif 210a262ba7c3250ef02833fae864459ccc905a2e9bReid Spencer#ifdef TRUE 220a262ba7c3250ef02833fae864459ccc905a2e9bReid Spencer#undef TRUE 234c75054b0149750219fe6edb8e25ddd8f7af6920Gabor Greif#endif 244c75054b0149750219fe6edb8e25ddd8f7af6920Gabor Greiftypedef enum { FALSE = 0, TRUE = 1 } Boolean; 254c75054b0149750219fe6edb8e25ddd8f7af6920Gabor Greif 264c75054b0149750219fe6edb8e25ddd8f7af6920Gabor Greif 274c75054b0149750219fe6edb8e25ddd8f7af6920Gabor Greif#define WPA_CIPHER_NONE BIT(0) 284c75054b0149750219fe6edb8e25ddd8f7af6920Gabor Greif#define WPA_CIPHER_WEP40 BIT(1) 294c75054b0149750219fe6edb8e25ddd8f7af6920Gabor Greif#define WPA_CIPHER_WEP104 BIT(2) 308c8af327b83a210aed30634c908bb4b39f41eedbReid Spencer#define WPA_CIPHER_TKIP BIT(3) 318c8af327b83a210aed30634c908bb4b39f41eedbReid Spencer#define WPA_CIPHER_CCMP BIT(4) 328c8af327b83a210aed30634c908bb4b39f41eedbReid Spencer#ifdef CONFIG_IEEE80211W 338c8af327b83a210aed30634c908bb4b39f41eedbReid Spencer#define WPA_CIPHER_AES_128_CMAC BIT(5) 348c8af327b83a210aed30634c908bb4b39f41eedbReid Spencer#endif /* CONFIG_IEEE80211W */ 358c8af327b83a210aed30634c908bb4b39f41eedbReid Spencer 368c8af327b83a210aed30634c908bb4b39f41eedbReid Spencer#define WPA_KEY_MGMT_IEEE8021X BIT(0) 378c8af327b83a210aed30634c908bb4b39f41eedbReid Spencer#define WPA_KEY_MGMT_PSK BIT(1) 388c8af327b83a210aed30634c908bb4b39f41eedbReid Spencer#define WPA_KEY_MGMT_NONE BIT(2) 398c8af327b83a210aed30634c908bb4b39f41eedbReid Spencer#define WPA_KEY_MGMT_IEEE8021X_NO_WPA BIT(3) 408c8af327b83a210aed30634c908bb4b39f41eedbReid Spencer#define WPA_KEY_MGMT_WPA_NONE BIT(4) 418c8af327b83a210aed30634c908bb4b39f41eedbReid Spencer#define WPA_KEY_MGMT_FT_IEEE8021X BIT(5) 428c8af327b83a210aed30634c908bb4b39f41eedbReid Spencer#define WPA_KEY_MGMT_FT_PSK BIT(6) 438c8af327b83a210aed30634c908bb4b39f41eedbReid Spencer#define WPA_KEY_MGMT_IEEE8021X_SHA256 BIT(7) 448c8af327b83a210aed30634c908bb4b39f41eedbReid Spencer#define WPA_KEY_MGMT_PSK_SHA256 BIT(8) 458c8af327b83a210aed30634c908bb4b39f41eedbReid Spencer#define WPA_KEY_MGMT_WPS BIT(9) 468c8af327b83a210aed30634c908bb4b39f41eedbReid Spencer 478c8af327b83a210aed30634c908bb4b39f41eedbReid Spencerstatic inline int wpa_key_mgmt_wpa_ieee8021x(int akm) 488c8af327b83a210aed30634c908bb4b39f41eedbReid Spencer{ 498c8af327b83a210aed30634c908bb4b39f41eedbReid Spencer return !!(akm & (WPA_KEY_MGMT_IEEE8021X | 508c8af327b83a210aed30634c908bb4b39f41eedbReid Spencer WPA_KEY_MGMT_FT_IEEE8021X | 510c803894985f80e894b36ad4de58ea4c2e906b07Brian Gaeke WPA_KEY_MGMT_IEEE8021X_SHA256)); 520c803894985f80e894b36ad4de58ea4c2e906b07Brian Gaeke} 530c803894985f80e894b36ad4de58ea4c2e906b07Brian Gaeke 548c8af327b83a210aed30634c908bb4b39f41eedbReid Spencerstatic inline int wpa_key_mgmt_wpa_psk(int akm) 558c8af327b83a210aed30634c908bb4b39f41eedbReid Spencer{ 568c8af327b83a210aed30634c908bb4b39f41eedbReid Spencer return !!(akm & (WPA_KEY_MGMT_PSK | 574046846d2cb36a6281b853c73776584063cca19dJohn Criswell WPA_KEY_MGMT_FT_PSK | 584046846d2cb36a6281b853c73776584063cca19dJohn Criswell WPA_KEY_MGMT_PSK_SHA256)); 594046846d2cb36a6281b853c73776584063cca19dJohn Criswell} 60f4bb9b1fa76564704a4ab6c27d5d72180b493e9aReid Spencer 61f4bb9b1fa76564704a4ab6c27d5d72180b493e9aReid Spencerstatic inline int wpa_key_mgmt_ft(int akm) 62f4bb9b1fa76564704a4ab6c27d5d72180b493e9aReid Spencer{ 6300ad26ff5760ff2d1b24acb18718e63541088923David Greene return !!(akm & (WPA_KEY_MGMT_FT_PSK | 6400ad26ff5760ff2d1b24acb18718e63541088923David Greene WPA_KEY_MGMT_FT_IEEE8021X)); 6500ad26ff5760ff2d1b24acb18718e63541088923David Greene} 668c8af327b83a210aed30634c908bb4b39f41eedbReid Spencer 678c8af327b83a210aed30634c908bb4b39f41eedbReid Spencerstatic inline int wpa_key_mgmt_sha256(int akm) 688c8af327b83a210aed30634c908bb4b39f41eedbReid Spencer{ 698c8af327b83a210aed30634c908bb4b39f41eedbReid Spencer return !!(akm & (WPA_KEY_MGMT_PSK_SHA256 | 708c8af327b83a210aed30634c908bb4b39f41eedbReid Spencer WPA_KEY_MGMT_IEEE8021X_SHA256)); 718c8af327b83a210aed30634c908bb4b39f41eedbReid Spencer} 728c8af327b83a210aed30634c908bb4b39f41eedbReid Spencer 738c8af327b83a210aed30634c908bb4b39f41eedbReid Spencerstatic inline int wpa_key_mgmt_wpa(int akm) 748c8af327b83a210aed30634c908bb4b39f41eedbReid Spencer{ 758c8af327b83a210aed30634c908bb4b39f41eedbReid Spencer return wpa_key_mgmt_wpa_ieee8021x(akm) || 768c8af327b83a210aed30634c908bb4b39f41eedbReid Spencer wpa_key_mgmt_wpa_psk(akm); 778c8af327b83a210aed30634c908bb4b39f41eedbReid Spencer} 788c8af327b83a210aed30634c908bb4b39f41eedbReid Spencer 798c8af327b83a210aed30634c908bb4b39f41eedbReid Spencerstatic inline int wpa_key_mgmt_wpa_any(int akm) 808c8af327b83a210aed30634c908bb4b39f41eedbReid Spencer{ 818c8af327b83a210aed30634c908bb4b39f41eedbReid Spencer return wpa_key_mgmt_wpa(akm) || (akm & WPA_KEY_MGMT_WPA_NONE); 828c8af327b83a210aed30634c908bb4b39f41eedbReid Spencer} 838c8af327b83a210aed30634c908bb4b39f41eedbReid Spencer 84394855a87d52d71b702cfbf0ec1a223bda9163d4Reid Spencer 85cbeedf73d403ca0b65b3d4151b5630c5e335055bBrian Gaeke#define WPA_PROTO_WPA BIT(0) 86cbeedf73d403ca0b65b3d4151b5630c5e335055bBrian Gaeke#define WPA_PROTO_RSN BIT(1) 87cbeedf73d403ca0b65b3d4151b5630c5e335055bBrian Gaeke 88cbeedf73d403ca0b65b3d4151b5630c5e335055bBrian Gaeke#define WPA_AUTH_ALG_OPEN BIT(0) 89cbeedf73d403ca0b65b3d4151b5630c5e335055bBrian Gaeke#define WPA_AUTH_ALG_SHARED BIT(1) 90cbeedf73d403ca0b65b3d4151b5630c5e335055bBrian Gaeke#define WPA_AUTH_ALG_LEAP BIT(2) 918c8af327b83a210aed30634c908bb4b39f41eedbReid Spencer#define WPA_AUTH_ALG_FT BIT(3) 928c8af327b83a210aed30634c908bb4b39f41eedbReid Spencer 938c8af327b83a210aed30634c908bb4b39f41eedbReid Spencer 94caf0ecec9ed4411280f16b81f43bcca1940a32deReid Spencerenum wpa_alg { 95caf0ecec9ed4411280f16b81f43bcca1940a32deReid Spencer WPA_ALG_NONE, 96caf0ecec9ed4411280f16b81f43bcca1940a32deReid Spencer WPA_ALG_WEP, 97ecbd242833cadb8b22006143d5ee4c1152bc81e3Reid Spencer WPA_ALG_TKIP, 98ecbd242833cadb8b22006143d5ee4c1152bc81e3Reid Spencer WPA_ALG_CCMP, 99ecbd242833cadb8b22006143d5ee4c1152bc81e3Reid Spencer WPA_ALG_IGTK, 1008c8af327b83a210aed30634c908bb4b39f41eedbReid Spencer WPA_ALG_PMK 1018c8af327b83a210aed30634c908bb4b39f41eedbReid Spencer}; 1028c8af327b83a210aed30634c908bb4b39f41eedbReid Spencer 1038c8af327b83a210aed30634c908bb4b39f41eedbReid Spencer/** 1048c8af327b83a210aed30634c908bb4b39f41eedbReid Spencer * enum wpa_cipher - Cipher suites 1058c8af327b83a210aed30634c908bb4b39f41eedbReid Spencer */ 1068c8af327b83a210aed30634c908bb4b39f41eedbReid Spencerenum wpa_cipher { 1078c8af327b83a210aed30634c908bb4b39f41eedbReid Spencer CIPHER_NONE, 1088c8af327b83a210aed30634c908bb4b39f41eedbReid Spencer CIPHER_WEP40, 1090c803894985f80e894b36ad4de58ea4c2e906b07Brian Gaeke CIPHER_TKIP, 1100c803894985f80e894b36ad4de58ea4c2e906b07Brian Gaeke CIPHER_CCMP, 1110c803894985f80e894b36ad4de58ea4c2e906b07Brian Gaeke CIPHER_WEP104 1127a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell}; 1137a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell 114d59a64797b12dab9dae1842171b4ca9fba302765Brian Gaeke/** 11500ad26ff5760ff2d1b24acb18718e63541088923David Greene * enum wpa_key_mgmt - Key management suites 11600ad26ff5760ff2d1b24acb18718e63541088923David Greene */ 11700ad26ff5760ff2d1b24acb18718e63541088923David Greeneenum wpa_key_mgmt { 118267fddbedd3fe05808a198c147948ffb62ebc866Nick Lewycky KEY_MGMT_802_1X, 119267fddbedd3fe05808a198c147948ffb62ebc866Nick Lewycky KEY_MGMT_PSK, 120267fddbedd3fe05808a198c147948ffb62ebc866Nick Lewycky KEY_MGMT_NONE, 121fb3dcf875bc4262572fee58ac560379879ab8ee2Nick Lewycky KEY_MGMT_802_1X_NO_WPA, 122fb3dcf875bc4262572fee58ac560379879ab8ee2Nick Lewycky KEY_MGMT_WPA_NONE, 123fb3dcf875bc4262572fee58ac560379879ab8ee2Nick Lewycky KEY_MGMT_FT_802_1X, 124fb3dcf875bc4262572fee58ac560379879ab8ee2Nick Lewycky KEY_MGMT_FT_PSK, 125fb3dcf875bc4262572fee58ac560379879ab8ee2Nick Lewycky KEY_MGMT_802_1X_SHA256, 126fb3dcf875bc4262572fee58ac560379879ab8ee2Nick Lewycky KEY_MGMT_PSK_SHA256, 127af362fc492bf0bfc6e43e3025621834ea031a29eReid Spencer KEY_MGMT_WPS 1286802b55b6b4b46a2dc965eeeb1f75f1fdc33ba35Brian Gaeke}; 1297a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell 130f4bb9b1fa76564704a4ab6c27d5d72180b493e9aReid Spencer/** 131f4bb9b1fa76564704a4ab6c27d5d72180b493e9aReid Spencer * enum wpa_states - wpa_supplicant state 132f4bb9b1fa76564704a4ab6c27d5d72180b493e9aReid Spencer * 13396cf58777bf7d28968054b0dd8cb0624a7433e89Reid Spencer * These enumeration values are used to indicate the current wpa_supplicant 13496cf58777bf7d28968054b0dd8cb0624a7433e89Reid Spencer * state (wpa_s->wpa_state). The current state can be retrieved with 13596cf58777bf7d28968054b0dd8cb0624a7433e89Reid Spencer * wpa_supplicant_get_state() function and the state can be changed by calling 1364046846d2cb36a6281b853c73776584063cca19dJohn Criswell * wpa_supplicant_set_state(). In WPA state machine (wpa.c and preauth.c), the 1374046846d2cb36a6281b853c73776584063cca19dJohn Criswell * wrapper functions wpa_sm_get_state() and wpa_sm_set_state() should be used 1384046846d2cb36a6281b853c73776584063cca19dJohn Criswell * to access the state variable. 1397a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell */ 1407a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswellenum wpa_states { 1417a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell /** 1427a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell * WPA_DISCONNECTED - Disconnected state 1437a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell * 1447a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell * This state indicates that client is not associated, but is likely to 1459ba8a76f8baaa1092d60ccfbc04e7efdc207c98fAnton Korobeynikov * start looking for an access point. This state is entered when a 1469ba8a76f8baaa1092d60ccfbc04e7efdc207c98fAnton Korobeynikov * connection is lost. 1479ba8a76f8baaa1092d60ccfbc04e7efdc207c98fAnton Korobeynikov */ 1485c039879649f12c17f6c52c08be9a82d838525f9Brian Gaeke WPA_DISCONNECTED, 1495c039879649f12c17f6c52c08be9a82d838525f9Brian Gaeke 1505c039879649f12c17f6c52c08be9a82d838525f9Brian Gaeke /** 1517a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell * WPA_INTERFACE_DISABLED - Interface disabled 1527a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell * 1537a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell * This stat eis entered if the network interface is disabled, e.g., 1548a2246f32ec6480b6430078ff2c5740a0a11a3fbReid Spencer * due to rfkill. wpa_supplicant refuses any new operations that would 1558a2246f32ec6480b6430078ff2c5740a0a11a3fbReid Spencer * use the radio until the interface has been enabled. 1568a2246f32ec6480b6430078ff2c5740a0a11a3fbReid Spencer */ 157be13028264888b01ac6fcd46667cf31a7e84e9cfReid Spencer WPA_INTERFACE_DISABLED, 158be13028264888b01ac6fcd46667cf31a7e84e9cfReid Spencer 159be13028264888b01ac6fcd46667cf31a7e84e9cfReid Spencer /** 1608c8af327b83a210aed30634c908bb4b39f41eedbReid Spencer * WPA_INACTIVE - Inactive state (wpa_supplicant disabled) 1618c8af327b83a210aed30634c908bb4b39f41eedbReid Spencer * 1628c8af327b83a210aed30634c908bb4b39f41eedbReid Spencer * This state is entered if there are no enabled networks in the 163cbeedf73d403ca0b65b3d4151b5630c5e335055bBrian Gaeke * configuration. wpa_supplicant is not trying to associate with a new 164cbeedf73d403ca0b65b3d4151b5630c5e335055bBrian Gaeke * network and external interaction (e.g., ctrl_iface call to add or 165cbeedf73d403ca0b65b3d4151b5630c5e335055bBrian Gaeke * enable a network) is needed to start association. 1667a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell */ 1677a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell WPA_INACTIVE, 1687a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell 16902cef96a2855b1b01b81d4b3429ed5cd707dd899Brian Gaeke /** 17002cef96a2855b1b01b81d4b3429ed5cd707dd899Brian Gaeke * WPA_SCANNING - Scanning for a network 17102cef96a2855b1b01b81d4b3429ed5cd707dd899Brian Gaeke * 172af362fc492bf0bfc6e43e3025621834ea031a29eReid Spencer * This state is entered when wpa_supplicant starts scanning for a 173c64d41e7063df8598e2eb6d741994292e3baa7cbBrian Gaeke * network. 174c64d41e7063df8598e2eb6d741994292e3baa7cbBrian Gaeke */ 175af362fc492bf0bfc6e43e3025621834ea031a29eReid Spencer WPA_SCANNING, 176c64d41e7063df8598e2eb6d741994292e3baa7cbBrian Gaeke 177c64d41e7063df8598e2eb6d741994292e3baa7cbBrian Gaeke /** 178af362fc492bf0bfc6e43e3025621834ea031a29eReid Spencer * WPA_AUTHENTICATING - Trying to authenticate with a BSS/SSID 1795c039879649f12c17f6c52c08be9a82d838525f9Brian Gaeke * 1805c039879649f12c17f6c52c08be9a82d838525f9Brian Gaeke * This state is entered when wpa_supplicant has found a suitable BSS 181af362fc492bf0bfc6e43e3025621834ea031a29eReid Spencer * to authenticate with and the driver is configured to try to 1825c039879649f12c17f6c52c08be9a82d838525f9Brian Gaeke * authenticate with this BSS. This state is used only with drivers 1835c039879649f12c17f6c52c08be9a82d838525f9Brian Gaeke * that use wpa_supplicant as the SME. 1848c8af327b83a210aed30634c908bb4b39f41eedbReid Spencer */ 1858c8af327b83a210aed30634c908bb4b39f41eedbReid Spencer WPA_AUTHENTICATING, 1868c8af327b83a210aed30634c908bb4b39f41eedbReid Spencer 187484fc8e38421f5b26593a9edacd734baf844c9e9Reid Spencer /** 188484fc8e38421f5b26593a9edacd734baf844c9e9Reid Spencer * WPA_ASSOCIATING - Trying to associate with a BSS/SSID 189484fc8e38421f5b26593a9edacd734baf844c9e9Reid Spencer * 1903484a99ba1ecddd221c9c77b321d66edb456a7fcReid Spencer * This state is entered when wpa_supplicant has found a suitable BSS 1913484a99ba1ecddd221c9c77b321d66edb456a7fcReid Spencer * to associate with and the driver is configured to try to associate 1923484a99ba1ecddd221c9c77b321d66edb456a7fcReid Spencer * with this BSS in ap_scan=1 mode. When using ap_scan=2 mode, this 193484fc8e38421f5b26593a9edacd734baf844c9e9Reid Spencer * state is entered when the driver is configured to try to associate 194484fc8e38421f5b26593a9edacd734baf844c9e9Reid Spencer * with a network using the configured SSID and security policy. 195484fc8e38421f5b26593a9edacd734baf844c9e9Reid Spencer */ 1965da60469f9a9513c28c9d715d818f7d789972e90Edward O'Callaghan WPA_ASSOCIATING, 1975da60469f9a9513c28c9d715d818f7d789972e90Edward O'Callaghan 1985da60469f9a9513c28c9d715d818f7d789972e90Edward O'Callaghan /** 1998cd4c3e6534a14566bf163301fd45bca34e655c1Anton Korobeynikov * WPA_ASSOCIATED - Association completed 2008cd4c3e6534a14566bf163301fd45bca34e655c1Anton Korobeynikov * 2018cd4c3e6534a14566bf163301fd45bca34e655c1Anton Korobeynikov * This state is entered when the driver reports that association has 2027a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell * been successfully completed with an AP. If IEEE 802.1X is used 2037a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell * (with or without WPA/WPA2), wpa_supplicant remains in this state 2047a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell * until the IEEE 802.1X/EAPOL authentication has been completed. 205731c6abc469863ca6b8259319991bdc0455fc8b0Nick Lewycky */ 206731c6abc469863ca6b8259319991bdc0455fc8b0Nick Lewycky WPA_ASSOCIATED, 207731c6abc469863ca6b8259319991bdc0455fc8b0Nick Lewycky 208cbeedf73d403ca0b65b3d4151b5630c5e335055bBrian Gaeke /** 209cbeedf73d403ca0b65b3d4151b5630c5e335055bBrian Gaeke * WPA_4WAY_HANDSHAKE - WPA 4-Way Key Handshake in progress 210cbeedf73d403ca0b65b3d4151b5630c5e335055bBrian Gaeke * 211ff336a4e7f9a71834bb60a540a14dd023e7cbcfdBrian Gaeke * This state is entered when WPA/WPA2 4-Way Handshake is started. In 212ff336a4e7f9a71834bb60a540a14dd023e7cbcfdBrian Gaeke * case of WPA-PSK, this happens when receiving the first EAPOL-Key 213ff336a4e7f9a71834bb60a540a14dd023e7cbcfdBrian Gaeke * frame after association. In case of WPA-EAP, this state is entered 214ff336a4e7f9a71834bb60a540a14dd023e7cbcfdBrian Gaeke * when the IEEE 802.1X/EAPOL authentication has been completed. 215cdb08a3691b0949ea9fea690571631e1a842bf3aReid Spencer */ 216cdb08a3691b0949ea9fea690571631e1a842bf3aReid Spencer WPA_4WAY_HANDSHAKE, 217cdb08a3691b0949ea9fea690571631e1a842bf3aReid Spencer 218a6d990a73f5ce41c6ce53d940f807621ecb4d260Reid Spencer /** 219a6d990a73f5ce41c6ce53d940f807621ecb4d260Reid Spencer * WPA_GROUP_HANDSHAKE - WPA Group Key Handshake in progress 220a6d990a73f5ce41c6ce53d940f807621ecb4d260Reid Spencer * 2218c8af327b83a210aed30634c908bb4b39f41eedbReid Spencer * This state is entered when 4-Way Key Handshake has been completed 2228c8af327b83a210aed30634c908bb4b39f41eedbReid Spencer * (i.e., when the supplicant sends out message 4/4) and when Group 2238c8af327b83a210aed30634c908bb4b39f41eedbReid Spencer * Key rekeying is started by the AP (i.e., when supplicant receives 224cbeedf73d403ca0b65b3d4151b5630c5e335055bBrian Gaeke * message 1/2). 225cbeedf73d403ca0b65b3d4151b5630c5e335055bBrian Gaeke */ 226cbeedf73d403ca0b65b3d4151b5630c5e335055bBrian Gaeke WPA_GROUP_HANDSHAKE, 2277a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell 2287a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell /** 2297a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell * WPA_COMPLETED - All authentication completed 2300b14259eb2b2663ca9ee02ad8919b27e2723d330Chris Lattner * 2310b14259eb2b2663ca9ee02ad8919b27e2723d330Chris Lattner * This state is entered when the full authentication process is 2320b14259eb2b2663ca9ee02ad8919b27e2723d330Chris Lattner * completed. In case of WPA2, this happens when the 4-Way Handshake is 233368c36ff32b93bf8e29fb7a4ff2c3a10f3aec164Chris Lattner * successfully completed. With WPA, this state is entered after the 234368c36ff32b93bf8e29fb7a4ff2c3a10f3aec164Chris Lattner * Group Key Handshake; with IEEE 802.1X (non-WPA) connection is 235368c36ff32b93bf8e29fb7a4ff2c3a10f3aec164Chris Lattner * completed after dynamic keys are received (or if not used, after 2368c8af327b83a210aed30634c908bb4b39f41eedbReid Spencer * the EAP authentication has been completed). With static WEP keys and 2378c8af327b83a210aed30634c908bb4b39f41eedbReid Spencer * plaintext connections, this state is entered when an association 2388c8af327b83a210aed30634c908bb4b39f41eedbReid Spencer * has been completed. 2398c8af327b83a210aed30634c908bb4b39f41eedbReid Spencer * 2408c8af327b83a210aed30634c908bb4b39f41eedbReid Spencer * This state indicates that the supplicant has completed its 2418c8af327b83a210aed30634c908bb4b39f41eedbReid Spencer * processing for the association phase and that data connection is 2427a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell * fully configured. 2437a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell */ 2447a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell WPA_COMPLETED 245f9960f769ae574705b4dff4d6253285705a7012aReid Spencer}; 246f9960f769ae574705b4dff4d6253285705a7012aReid Spencer 247f9960f769ae574705b4dff4d6253285705a7012aReid Spencer#define MLME_SETPROTECTION_PROTECT_TYPE_NONE 0 2485c039879649f12c17f6c52c08be9a82d838525f9Brian Gaeke#define MLME_SETPROTECTION_PROTECT_TYPE_RX 1 2495c039879649f12c17f6c52c08be9a82d838525f9Brian Gaeke#define MLME_SETPROTECTION_PROTECT_TYPE_TX 2 2505c039879649f12c17f6c52c08be9a82d838525f9Brian Gaeke#define MLME_SETPROTECTION_PROTECT_TYPE_RX_TX 3 251f9960f769ae574705b4dff4d6253285705a7012aReid Spencer 252f9960f769ae574705b4dff4d6253285705a7012aReid Spencer#define MLME_SETPROTECTION_KEY_TYPE_GROUP 0 253f9960f769ae574705b4dff4d6253285705a7012aReid Spencer#define MLME_SETPROTECTION_KEY_TYPE_PAIRWISE 1 2547a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell 2557a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell 2567a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell/** 257cbeedf73d403ca0b65b3d4151b5630c5e335055bBrian Gaeke * enum mfp_options - Management frame protection (IEEE 802.11w) options 258cbeedf73d403ca0b65b3d4151b5630c5e335055bBrian Gaeke */ 259cbeedf73d403ca0b65b3d4151b5630c5e335055bBrian Gaekeenum mfp_options { 260cbeedf73d403ca0b65b3d4151b5630c5e335055bBrian Gaeke NO_MGMT_FRAME_PROTECTION = 0, 261cbeedf73d403ca0b65b3d4151b5630c5e335055bBrian Gaeke MGMT_FRAME_PROTECTION_OPTIONAL = 1, 262cbeedf73d403ca0b65b3d4151b5630c5e335055bBrian Gaeke MGMT_FRAME_PROTECTION_REQUIRED = 2 263cbeedf73d403ca0b65b3d4151b5630c5e335055bBrian Gaeke}; 264cbeedf73d403ca0b65b3d4151b5630c5e335055bBrian Gaeke 265cbeedf73d403ca0b65b3d4151b5630c5e335055bBrian Gaeke/** 266cbeedf73d403ca0b65b3d4151b5630c5e335055bBrian Gaeke * enum hostapd_hw_mode - Hardware mode 2678c8af327b83a210aed30634c908bb4b39f41eedbReid Spencer */ 2688c8af327b83a210aed30634c908bb4b39f41eedbReid Spencerenum hostapd_hw_mode { 2698c8af327b83a210aed30634c908bb4b39f41eedbReid Spencer HOSTAPD_MODE_IEEE80211B, 270df3be82dcbf61bd4ad9e13e93dfbf37a7a46ee51Reid Spencer HOSTAPD_MODE_IEEE80211G, 271df3be82dcbf61bd4ad9e13e93dfbf37a7a46ee51Reid Spencer HOSTAPD_MODE_IEEE80211A, 272df3be82dcbf61bd4ad9e13e93dfbf37a7a46ee51Reid Spencer NUM_HOSTAPD_MODES 27300ad26ff5760ff2d1b24acb18718e63541088923David Greene}; 27400ad26ff5760ff2d1b24acb18718e63541088923David Greene 27500ad26ff5760ff2d1b24acb18718e63541088923David Greene/** 2768c8af327b83a210aed30634c908bb4b39f41eedbReid Spencer * enum wpa_ctrl_req_type - Control interface request types 2778c8af327b83a210aed30634c908bb4b39f41eedbReid Spencer */ 2788c8af327b83a210aed30634c908bb4b39f41eedbReid Spencerenum wpa_ctrl_req_type { 27996cf58777bf7d28968054b0dd8cb0624a7433e89Reid Spencer WPA_CTRL_REQ_UNKNOWN, 28096cf58777bf7d28968054b0dd8cb0624a7433e89Reid Spencer WPA_CTRL_REQ_EAP_IDENTITY, 28196cf58777bf7d28968054b0dd8cb0624a7433e89Reid Spencer WPA_CTRL_REQ_EAP_PASSWORD, 2828c8af327b83a210aed30634c908bb4b39f41eedbReid Spencer WPA_CTRL_REQ_EAP_NEW_PASSWORD, 2838c8af327b83a210aed30634c908bb4b39f41eedbReid Spencer WPA_CTRL_REQ_EAP_PIN, 2848c8af327b83a210aed30634c908bb4b39f41eedbReid Spencer WPA_CTRL_REQ_EAP_OTP, 2859058349aa431ef4cbdea51d30302f88105f61b76Brian Gaeke WPA_CTRL_REQ_EAP_PASSPHRASE, 2869058349aa431ef4cbdea51d30302f88105f61b76Brian Gaeke NUM_WPA_CTRL_REQS 2879058349aa431ef4cbdea51d30302f88105f61b76Brian Gaeke}; 28827fcfe1364943dadd99fd0ef5af6793f58acc446Owen Anderson 28927fcfe1364943dadd99fd0ef5af6793f58acc446Owen Anderson/* Maximum number of EAP methods to store for EAP server user information */ 29027fcfe1364943dadd99fd0ef5af6793f58acc446Owen Anderson#define EAP_MAX_METHODS 8 291f8e9f7c70af05e40a65f75b49073b48941257839Reid Spencer 292f8e9f7c70af05e40a65f75b49073b48941257839Reid Spencer#endif /* DEFS_H */ 293f8e9f7c70af05e40a65f75b49073b48941257839Reid Spencer