📄 config_ssid.h
字号:
/* * WPA Supplicant / Network configuration structures * Copyright (c) 2003-2005, Jouni Malinen <jkmaline@cc.hut.fi> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. * * Alternatively, this software may be distributed under the terms of BSD * license. * * See README and COPYING for more details. */#ifndef CONFIG_SSID_H#define CONFIG_SSID_H#define WPA_CIPHER_NONE BIT(0)#define WPA_CIPHER_WEP40 BIT(1)#define WPA_CIPHER_WEP104 BIT(2)#define WPA_CIPHER_TKIP BIT(3)#define WPA_CIPHER_CCMP BIT(4)#define WPA_KEY_MGMT_IEEE8021X BIT(0)#define WPA_KEY_MGMT_PSK BIT(1)#define WPA_KEY_MGMT_NONE BIT(2)#define WPA_KEY_MGMT_IEEE8021X_NO_WPA BIT(3)#define WPA_KEY_MGMT_WPA_NONE BIT(4)#define WPA_PROTO_WPA BIT(0)#define WPA_PROTO_RSN BIT(1)#define WPA_AUTH_ALG_OPEN BIT(0)#define WPA_AUTH_ALG_SHARED BIT(1)#define WPA_AUTH_ALG_LEAP BIT(2)#define MAX_SSID_LEN 32#define PMK_LEN 32#define EAP_PSK_LEN 16#define DEFAULT_EAP_WORKAROUND ((unsigned int) -1)#define DEFAULT_EAPOL_FLAGS (EAPOL_FLAG_REQUIRE_KEY_UNICAST | \ EAPOL_FLAG_REQUIRE_KEY_BROADCAST)#define DEFAULT_PROTO (WPA_PROTO_WPA | WPA_PROTO_RSN)#define DEFAULT_KEY_MGMT (WPA_KEY_MGMT_PSK | WPA_KEY_MGMT_IEEE8021X)#define DEFAULT_PAIRWISE (WPA_CIPHER_CCMP | WPA_CIPHER_TKIP)#define DEFAULT_GROUP (WPA_CIPHER_CCMP | WPA_CIPHER_TKIP | \ WPA_CIPHER_WEP104 | WPA_CIPHER_WEP40)/** * struct wpa_ssid - Network configuration data * * This structure includes all the configuration variables for a network. This * data is included in the per-interface configuration data as an element of * the network list, struct wpa_config::ssid. Each network block in the * configuration is mapped to a struct wpa_ssid instance. */struct wpa_ssid { /** * next - Next network in global list * * This pointer can be used to iterate over all networks. The head of * this list is stored in the ssid field of struct wpa_config. */ struct wpa_ssid *next; /** * pnext - Next network in per-priority list * * This pointer can be used to iterate over all networks in the same * priority class. The heads of these list are stored in the pssid * fields of struct wpa_config. */ struct wpa_ssid *pnext; /** * id - Unique id for the network * * This identifier is used as a unique identifier for each network * block when using the control interface. Each network is allocated an * id when it is being created, either when reading the configuration * file or when a new network is added through the control interface. */ int id; /** * priority - Priority group * * By default, all networks will get same priority group (0). If some * of the networks are more desirable, this field can be used to change * the order in which wpa_supplicant goes through the networks when * selecting a BSS. The priority groups will be iterated in decreasing * priority (i.e., the larger the priority value, the sooner the * network is matched against the scan results). Within each priority * group, networks will be selected based on security policy, signal * strength, etc. * * Please note that AP scanning with scan_ssid=1 and ap_scan=2 mode are * not using this priority to select the order for scanning. Instead, * they try the networks in the order that used in the configuration * file. */ int priority; /** * ssid - Service set identifier (network name) * * This is the SSID for the network. For wireless interfaces, this is * used to select which network will be used. If set to %NULL (or * ssid_len=0), any SSID can be used. For wired interfaces, this must * be set to %NULL. Note: SSID may contain any characters, even nul * (ASCII 0) and as such, this should not be assumed to be a nul * terminated string. ssid_len defines how many characters are valid * and the ssid field is not guaranteed to be nul terminated. */ u8 *ssid; /** * ssid_len - Length of the SSID */ size_t ssid_len; /** * bssid - BSSID * * If set, this network block is used only when associating with the AP * using the configured BSSID */ u8 bssid[ETH_ALEN]; /** * bssid_set - Whether BSSID is configured for this network */ int bssid_set; /** * psk - WPA pre-shared key (256 bits) */ u8 psk[PMK_LEN]; /** * psk_set - Whether PSK field is configured */ int psk_set; /** * passphrase - WPA ASCII passphrase * * If this is set, psk will be generated using the SSID and passphrase * configured for the network. ASCII passphrase must be between 8 and * 63 characters (inclusive). */ char *passphrase; /** * pairwise_cipher - Bitfield of allowed pairwise ciphers, WPA_CIPHER_* */ int pairwise_cipher; /** * group_cipher - Bitfield of allowed group ciphers, WPA_CIPHER_* */ int group_cipher; /** * key_mgmt - Bitfield of allowed key management protocols * * WPA_KEY_MGMT_* */ int key_mgmt; /** * proto - Bitfield of allowed protocols, WPA_PROTO_* */ int proto; /** * auth_alg - Bitfield of allowed authentication algorithms * * WPA_AUTH_ALG_* */ int auth_alg; /** * scan_ssid - Scan this SSID with Probe Requests * * scan_ssid can be used to scan for APs using hidden SSIDs. * Note: Many drivers do not support this. ap_mode=2 can be used with * such drivers to use hidden SSIDs. */ int scan_ssid; /** * identity - EAP Identity */ u8 *identity; /** * identity_len - EAP Identity length */ size_t identity_len; /** * anonymous_identity - Anonymous EAP Identity * * This field is used for unencrypted use with EAP types that support * different tunnelled identity, e.g., EAP-TTLS, in order to reveal the * real identity (identity field) only to the authentication server. */ u8 *anonymous_identity; /** * anonymous_identity_len - Length of anonymous_identity */ size_t anonymous_identity_len; /** * eappsk - EAP-PSK pre-shared key */ u8 *eappsk; /** * eappsk_len - EAP-PSK pre-shared key length * * This field is always 16 for the current version of EAP-PSK. */ size_t eappsk_len; /** * nai - User NAI (for EAP-PSK/PAX) */ u8 *nai; /** * nai_len - Length of nai field */ size_t nai_len; /** * password - Password string for EAP */ u8 *password; /** * password_len - Length of password field */ size_t password_len; /** * ca_cert - File path to CA certificate file (PEM/DER) * * This file can have one or more trusted CA certificates. If ca_cert * and ca_path are not included, server certificate will not be * verified. This is insecure and a trusted CA certificate should * always be configured when using EAP-TLS/TTLS/PEAP. Full path to the * file should be used since working directory may change when * wpa_supplicant is run in the background. * * Alternatively, a named configuration blob can be used by setting * this to blob://<blob name>. * * On Windows, trusted CA certificates can be loaded from the system * certificate store by setting this to cert_store://<name>, e.g., * ca_cert="cert_store://CA" or ca_cert="cert_store://ROOT". */ u8 *ca_cert; /** * ca_path - Directory path for CA certificate files (PEM) * * This path may contain multiple CA certificates in OpenSSL format. * Common use for this is to point to system trusted CA list which is * often installed into directory like /etc/ssl/certs. If configured, * these certificates are added to the list of trusted CAs. ca_cert * may also be included in that case, but it is not required. */ u8 *ca_path; /** * client_cert - File path to client certificate file (PEM/DER) * * This field is used with EAP method that use TLS authentication. * Usually, this is only configured for EAP-TLS, even though this could * in theory be used with EAP-TTLS and EAP-PEAP, too. Full path to the * file should be used since working directory may change when * wpa_supplicant is run in the background. * * Alternatively, a named configuration blob can be used by setting * this to blob://<blob name>. */ u8 *client_cert; /** * private_key - File path to client private key file (PEM/DER/PFX) * * When PKCS#12/PFX file (.p12/.pfx) is used, client_cert should be * commented out. Both the private key and certificate will be read * from the PKCS#12 file in this case. Full path to the file should be * used since working directory may change when wpa_supplicant is run * in the background. * * Windows certificate store can be used by leaving client_cert out and * configuring private_key in one of the following formats: * * cert://substring_to_match * * hash://certificate_thumbprint_in_hex * * For example: private_key="hash://63093aa9c47f56ae88334c7b65a4" * * Alternatively, a named configuration blob can be used by setting * this to blob://<blob name>. */ u8 *private_key; /** * private_key_passwd - Password for private key file * * If left out, this will be asked through control interface. */ u8 *private_key_passwd; /** * dh_file - File path to DH/DSA parameters file (in PEM format) * * This is an optional configuration file for setting parameters for an * ephemeral DH key exchange. In most cases, the default RSA * authentication does not use this configuration. However, it is * possible setup RSA to use ephemeral DH key exchange. In addition, * ciphers with DSA keys always use ephemeral DH keys. This can be used * to achieve forward secrecy. If the file is in DSA parameters format, * it will be automatically converted into DH params. Full path to the * file should be used since working directory may change when * wpa_supplicant is run in the background. * * Alternatively, a named configuration blob can be used by setting * this to blob://<blob name>. */ u8 *dh_file; /** * subject_match - Constraint for server certificate subject * * This substring is matched against the subject of the authentication * server certificate. If this string is set, the server sertificate is * only accepted if it contains this string in the subject. The subject * string is in following format: * * /C=US/ST=CA/L=San Francisco/CN=Test AS/emailAddress=as@n.example.com */ u8 *subject_match; /** * altsubject_match - Constraint for server certificate alt. subject * * This substring is matched against the alternative subject name of * the authentication server certificate. If this string is set, the * server sertificate is only accepted if it contains this string in an * alternative subject name extension. * * altSubjectName string is in following format: TYPE:VALUE * * Example: DNS:server.example.com * * Following types are supported: EMAIL, DNS, URI */ u8 *altsubject_match; /** * ca_cert2 - File path to CA certificate file (PEM/DER) (Phase 2) * * This file can have one or more trusted CA certificates. If ca_cert2 * and ca_path2 are not included, server certificate will not be * verified. This is insecure and a trusted CA certificate should * always be configured. Full path to the file should be used since * working directory may change when wpa_supplicant is run in the * background. * * This field is like ca_cert, but used for phase 2 (inside * EAP-TTLS/PEAP/FAST tunnel) authentication. * * Alternatively, a named configuration blob can be used by setting * this to blob://<blob name>. */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -