NMSettingWirelessSecurity: libnm Reference Manual

## NMSettingWirelessSecurity NMSettingWirelessSecurity — Describes connection properties for Wi-Fi networks that use WEP, LEAP, WPA or WPA2/RSN security |

## Functions

NMSetting * | nm_setting_wireless_security_new ()
const char * | nm_setting_wireless_security_get_key_mgmt ()
guint32 | nm_setting_wireless_security_get_num_protos ()
const char * | nm_setting_wireless_security_get_proto ()
gboolean | nm_setting_wireless_security_add_proto ()
void | nm_setting_wireless_security_remove_proto ()
gboolean | nm_setting_wireless_security_remove_proto_by_value ()
void | nm_setting_wireless_security_clear_protos ()
guint32 | nm_setting_wireless_security_get_num_pairwise ()
const char * | nm_setting_wireless_security_get_pairwise ()
gboolean | nm_setting_wireless_security_add_pairwise ()
void | nm_setting_wireless_security_remove_pairwise ()
gboolean | nm_setting_wireless_security_remove_pairwise_by_value ()
void | nm_setting_wireless_security_clear_pairwise ()
guint32 | nm_setting_wireless_security_get_num_groups ()
const char * | nm_setting_wireless_security_get_group ()
gboolean | nm_setting_wireless_security_add_group ()
void | nm_setting_wireless_security_remove_group ()
gboolean | nm_setting_wireless_security_remove_group_by_value ()
void | nm_setting_wireless_security_clear_groups ()
NMSettingWirelessSecurityPmf | nm_setting_wireless_security_get_pmf ()
const char * | nm_setting_wireless_security_get_psk ()
NMSettingSecretFlags | nm_setting_wireless_security_get_psk_flags ()
const char * | nm_setting_wireless_security_get_leap_username ()
const char * | nm_setting_wireless_security_get_leap_password ()
NMSettingSecretFlags | nm_setting_wireless_security_get_leap_password_flags ()
const char * | nm_setting_wireless_security_get_wep_key ()
void | nm_setting_wireless_security_set_wep_key ()
guint32 | nm_setting_wireless_security_get_wep_tx_keyidx ()
const char * | nm_setting_wireless_security_get_auth_alg ()
NMSettingSecretFlags | nm_setting_wireless_security_get_wep_key_flags ()
NMWepKeyType | nm_setting_wireless_security_get_wep_key_type ()
NMSettingWirelessSecurityWpsMethod | nm_setting_wireless_security_get_wps_method ()
NMSettingWirelessSecurityFils | nm_setting_wireless_security_get_fils ()

## Properties

char * | auth-alg | Read / Write
int | fils | Read / Write
GStrv | group | Read / Write
char * | key-mgmt | Read / Write
char * | leap-password | Read / Write
NMSettingSecretFlags | leap-password-flags | Read / Write
char * | leap-username | Read / Write
GStrv | pairwise | Read / Write
int | pmf | Read / Write
GStrv | proto | Read / Write
char * | psk | Read / Write
NMSettingSecretFlags | psk-flags | Read / Write
NMSettingSecretFlags | wep-key-flags | Read / Write
NMWepKeyType | wep-key-type | Read / Write
char * | wep-key0 | Read / Write
char * | wep-key1 | Read / Write
char * | wep-key2 | Read / Write
char * | wep-key3 | Read / Write
guint | wep-tx-keyidx | Read / Write
guint | wps-method | Read / Write

## Types and Values

#define | NM_SETTING_WIRELESS_SECURITY_SETTING_NAME
enum | NMWepKeyType
enum | NMSettingWirelessSecurityPmf
enum | NMSettingWirelessSecurityWpsMethod
enum | NMSettingWirelessSecurityFils
#define | NM_SETTING_WIRELESS_SECURITY_KEY_MGMT
#define | NM_SETTING_WIRELESS_SECURITY_WEP_TX_KEYIDX
#define | NM_SETTING_WIRELESS_SECURITY_AUTH_ALG
#define | NM_SETTING_WIRELESS_SECURITY_PROTO
#define | NM_SETTING_WIRELESS_SECURITY_PAIRWISE
#define | NM_SETTING_WIRELESS_SECURITY_GROUP
#define | NM_SETTING_WIRELESS_SECURITY_PMF
#define | NM_SETTING_WIRELESS_SECURITY_LEAP_USERNAME
#define | NM_SETTING_WIRELESS_SECURITY_WEP_KEY0
#define | NM_SETTING_WIRELESS_SECURITY_WEP_KEY1
#define | NM_SETTING_WIRELESS_SECURITY_WEP_KEY2
#define | NM_SETTING_WIRELESS_SECURITY_WEP_KEY3
#define | NM_SETTING_WIRELESS_SECURITY_WEP_KEY_FLAGS
#define | NM_SETTING_WIRELESS_SECURITY_WEP_KEY_TYPE
#define | NM_SETTING_WIRELESS_SECURITY_PSK
#define | NM_SETTING_WIRELESS_SECURITY_PSK_FLAGS
#define | NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD
#define | NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD_FLAGS
#define | NM_SETTING_WIRELESS_SECURITY_WPS_METHOD
#define | NM_SETTING_WIRELESS_SECURITY_FILS
| NMSettingWirelessSecurity

## Object Hierarchy

        GEnum
        ├── NMSettingWirelessSecurityFils
        ├── NMSettingWirelessSecurityPmf
        ╰── NMWepKeyType
        GFlags
        ╰── NMSettingWirelessSecurityWpsMethod
        GObject
        ╰── NMSetting
            ╰── NMSettingWirelessSecurity

## Description

The NMSettingWirelessSecurity object is a NMSetting subclass that describes properties necessary for connection to encrypted Wi-Fi networks.

It's a good idea to read up on wpa_supplicant configuration before using this setting extensively, since most of the options here correspond closely with the relevant wpa_supplicant configuration options. To get a better overview of how Wi-Fi security works, you may want to get copies of the following books.

802.11 Wireless Networks: The Definitive Guide, Second Edition Author: Matthew Gast ISBN: 978-0596100520

Cisco Wireless LAN Security Authors: Krishna Sankar, Sri Sundaralingam, Darrin Miller, and Andrew Balinsky ISBN: 978-1587051548

## Functions

### nm_setting_wireless_security_new ()

    NMSetting *
    nm_setting_wireless_security_new (void);

Creates a new NMSettingWirelessSecurity object with default values.

#### Returns

the new empty NMSettingWirelessSecurity object.

[transfer full]

### nm_setting_wireless_security_get_key_mgmt ()

    const char *
    nm_setting_wireless_security_get_key_mgmt
                                   (NMSettingWirelessSecurity *setting);

#### Parameters

setting | the NMSettingWirelessSecurity |

#### Returns

the “key-mgmt” property of the setting

### nm_setting_wireless_security_get_num_protos ()

    guint32
    nm_setting_wireless_security_get_num_protos
                                   (NMSettingWirelessSecurity *setting);

#### Parameters

setting | the NMSettingWirelessSecurity |

#### Returns

the number of security protocols this connection allows when connecting to secure Wi-Fi networks

### nm_setting_wireless_security_get_proto ()

    const char *
    nm_setting_wireless_security_get_proto
                                   (NMSettingWirelessSecurity *setting,
                                    guint32 i);

#### Parameters

setting | the NMSettingWirelessSecurity |
i | an index into the protocol list |

#### Returns

the protocol at index `i`

### nm_setting_wireless_security_add_proto ()

    gboolean
    nm_setting_wireless_security_add_proto
                                   (NMSettingWirelessSecurity *setting,
                                    const char *proto);

Adds a Wi-Fi security protocol (one of "wpa" or "rsn") to the allowed list; only protocols in this list will be used when finding and connecting to the Wi-Fi network specified by this connection. For example, if the protocol list contains only "wpa" but the access point for the SSID specified by this connection only supports WPA2/RSN, the connection cannot be used with the access point.

#### Parameters

setting | the NMSettingWirelessSecurity |
proto | the protocol to add, one of "wpa" or "rsn" |

#### Returns

`TRUE` if the protocol was new and was added to the allowed protocol list, or `FALSE` if it was already in the list

### nm_setting_wireless_security_remove_proto ()

    void
    nm_setting_wireless_security_remove_proto
                                   (NMSettingWirelessSecurity *setting,
                                    guint32 i);

Removes a protocol from the allowed protocol list.

#### Parameters

setting | the NMSettingWirelessSecurity |
i | index of the protocol to remove |

### nm_setting_wireless_security_remove_proto_by_value ()

    gboolean
    nm_setting_wireless_security_remove_proto_by_value
                                   (NMSettingWirelessSecurity *setting,
                                    const char *proto);

Removes a protocol from the allowed protocol list.

#### Parameters

setting | the NMSettingWirelessSecurity |
proto | the protocol to remove, one of "wpa" or "rsn" |

#### Returns

`TRUE` if the protocol was found and removed; `FALSE` if it was not.

### nm_setting_wireless_security_clear_protos ()

    void
    nm_setting_wireless_security_clear_protos
                                   (NMSettingWirelessSecurity *setting);

Removes all protocols from the allowed list. If there are no protocols specified then all protocols are allowed.

#### Parameters

setting | the NMSettingWirelessSecurity |

### nm_setting_wireless_security_get_num_pairwise ()

    guint32
    nm_setting_wireless_security_get_num_pairwise
                                   (NMSettingWirelessSecurity *setting);

#### Parameters

setting | the NMSettingWirelessSecurity |

#### Returns

the number of pairwise encryption algorithms in the allowed list

### nm_setting_wireless_security_get_pairwise ()

    const char *
    nm_setting_wireless_security_get_pairwise
                                   (NMSettingWirelessSecurity *setting,
                                    guint32 i);

Returns the allowed pairwise encryption algorithm from allowed algorithm list.

#### Parameters

setting | the NMSettingWirelessSecurity |
i | index of an item in the allowed pairwise encryption algorithm list |

#### Returns

the pairwise encryption algorithm at index `i`

### nm_setting_wireless_security_add_pairwise ()

    gboolean
    nm_setting_wireless_security_add_pairwise
                                   (NMSettingWirelessSecurity *setting,
                                    const char *pairwise);

Adds an encryption algorithm to the list of allowed pairwise encryption algorithms. If the list is not empty, then only access points that support one or more of the encryption algorithms in the list will be considered compatible with this connection.

#### Parameters

setting | the NMSettingWirelessSecurity |
pairwise | the encryption algorithm to add, one of "tkip" or "ccmp" |

#### Returns

`TRUE` if the algorithm was added to the list, `FALSE` if it was already in the list

### nm_setting_wireless_security_remove_pairwise ()

    void
    nm_setting_wireless_security_remove_pairwise
                                   (NMSettingWirelessSecurity *setting,
                                    guint32 i);

Removes an encryption algorithm from the allowed pairwise encryption algorithm list.

#### Parameters

setting | the NMSettingWirelessSecurity |
i | the index of an item in the allowed pairwise encryption algorithm list |

### nm_setting_wireless_security_remove_pairwise_by_value ()

    gboolean
    nm_setting_wireless_security_remove_pairwise_by_value
                                   (NMSettingWirelessSecurity *setting,
                                    const char *pairwise);

Removes an encryption algorithm from the allowed pairwise encryption algorithm list.

#### Parameters

setting | the NMSettingWirelessSecurity |
pairwise | the encryption algorithm to remove, one of "tkip" or "ccmp" |

#### Returns

`TRUE` if the encryption algorithm was found and removed; `FALSE` if it was not.

### nm_setting_wireless_security_clear_pairwise ()

    void
    nm_setting_wireless_security_clear_pairwise
                                   (NMSettingWirelessSecurity *setting);

Removes all algorithms from the allowed list. If there are no algorithms specified then all pairwise encryption algorithms are allowed.

#### Parameters

setting | the NMSettingWirelessSecurity |

### nm_setting_wireless_security_get_num_groups ()

    guint32
    nm_setting_wireless_security_get_num_groups
                                   (NMSettingWirelessSecurity *setting);

#### Parameters

setting | the NMSettingWirelessSecurity |

#### Returns

the number of groupwise encryption algorithms in the allowed list

### nm_setting_wireless_security_get_group ()

    const char *
    nm_setting_wireless_security_get_group
                                   (NMSettingWirelessSecurity *setting,
                                    guint32 i);

Returns the allowed groupwise encryption algorithm from allowed algorithm list.

#### Parameters

setting | the NMSettingWirelessSecurity |
i | index of an item in the allowed groupwise encryption algorithm list |

#### Returns

the groupwise encryption algorithm at index `i`

### nm_setting_wireless_security_add_group ()

    gboolean
    nm_setting_wireless_security_add_group
                                   (NMSettingWirelessSecurity *setting,
                                    const char *group);

Adds an encryption algorithm to the list of allowed groupwise encryption algorithms. If the list is not empty, then only access points that support one or more of the encryption algorithms in the list will be considered compatible with this connection.

#### Parameters

setting | the NMSettingWirelessSecurity |
group | the encryption algorithm to add, one of "wep40", "wep104", "tkip", or "ccmp" |

#### Returns

`TRUE` if the algorithm was added to the list, `FALSE` if it was already in the list

### nm_setting_wireless_security_remove_group ()

    void
    nm_setting_wireless_security_remove_group
                                   (NMSettingWirelessSecurity *setting,
                                    guint32 i);

Removes an encryption algorithm from the allowed groupwise encryption algorithm list.

#### Parameters

setting | the NMSettingWirelessSecurity |
i | the index of an item in the allowed groupwise encryption algorithm list |

### nm_setting_wireless_security_remove_group_by_value ()

    gboolean
    nm_setting_wireless_security_remove_group_by_value
                                   (NMSettingWirelessSecurity *setting,
                                    const char *group);

Removes an encryption algorithm from the allowed groupwise encryption algorithm list.

#### Parameters

setting | the NMSettingWirelessSecurity |
group | the encryption algorithm to remove, one of "wep40", "wep104", "tkip", or "ccmp" |

#### Returns

`TRUE` if the algorithm was found and removed; `FALSE` if it was not.

### nm_setting_wireless_security_clear_groups ()

    void
    nm_setting_wireless_security_clear_groups
                                   (NMSettingWirelessSecurity *setting);

Removes all algorithms from the allowed list. If there are no algorithms specified then all groupwise encryption algorithms are allowed.

#### Parameters

setting | the NMSettingWirelessSecurity |

### nm_setting_wireless_security_get_pmf ()

    NMSettingWirelessSecurityPmf
    nm_setting_wireless_security_get_pmf (NMSettingWirelessSecurity *setting);

### nm_setting_wireless_security_get_psk ()

    const char *
    nm_setting_wireless_security_get_psk (NMSettingWirelessSecurity *setting);

#### Parameters

setting | the NMSettingWirelessSecurity |

#### Returns

the “psk” property of the setting

### nm_setting_wireless_security_get_psk_flags ()

    NMSettingSecretFlags
    nm_setting_wireless_security_get_psk_flags
                                   (NMSettingWirelessSecurity *setting);

#### Parameters

setting | the NMSettingWirelessSecurity |

#### Returns

the NMSettingSecretFlags pertaining to the “psk”

### nm_setting_wireless_security_get_leap_username ()

    const char *
    nm_setting_wireless_security_get_leap_username
                                   (NMSettingWirelessSecurity *setting);

#### Parameters

setting | the NMSettingWirelessSecurity |

#### Returns

the “leap-username” property of the setting

### nm_setting_wireless_security_get_leap_password ()

    const char *
    nm_setting_wireless_security_get_leap_password
                                   (NMSettingWirelessSecurity *setting);

#### Parameters

setting | the NMSettingWirelessSecurity |

#### Returns

the “leap-password” property of the setting

### nm_setting_wireless_security_get_leap_password_flags ()

    NMSettingSecretFlags
    nm_setting_wireless_security_get_leap_password_flags
                                   (NMSettingWirelessSecurity *setting);

#### Parameters

setting | the NMSettingWirelessSecurity |

#### Returns

the NMSettingSecretFlags pertaining to the “leap-password”

### nm_setting_wireless_security_get_wep_key ()

    const char *
    nm_setting_wireless_security_get_wep_key
                                   (NMSettingWirelessSecurity *setting,
                                    guint32 idx);

#### Parameters

setting | the NMSettingWirelessSecurity |
idx | the WEP key index (0..3 inclusive) |

#### Returns

the WEP key at the given index

### nm_setting_wireless_security_set_wep_key ()

    void
    nm_setting_wireless_security_set_wep_key
                                   (NMSettingWirelessSecurity *setting,
                                    guint32 idx,
                                    const char *key);

Sets a WEP key in the given index.

#### Parameters

setting | the NMSettingWirelessSecurity |
idx | the index of the key (0..3 inclusive) |
key | the WEP key as a string, in either hexadecimal, ASCII, or passphrase form as determined by the value of the “wep-key-type” property. |

### nm_setting_wireless_security_get_wep_tx_keyidx ()

    guint32
    nm_setting_wireless_security_get_wep_tx_keyidx
                                   (NMSettingWirelessSecurity *setting);

#### Parameters

setting | the NMSettingWirelessSecurity |

#### Returns

the “wep-tx-keyidx” property of the setting

### nm_setting_wireless_security_get_auth_alg ()

    const char *
    nm_setting_wireless_security_get_auth_alg
                                   (NMSettingWirelessSecurity *setting);

#### Parameters

setting | the NMSettingWirelessSecurity |

#### Returns

the “auth-alg” property of the setting

### nm_setting_wireless_security_get_wep_key_flags ()

    NMSettingSecretFlags
    nm_setting_wireless_security_get_wep_key_flags
                                   (NMSettingWirelessSecurity *setting);

#### Parameters

setting | the NMSettingWirelessSecurity |

#### Returns

the NMSettingSecretFlags pertaining to the all WEP keys

### nm_setting_wireless_security_get_wep_key_type ()

    NMWepKeyType
    nm_setting_wireless_security_get_wep_key_type
                                   (NMSettingWirelessSecurity *setting);

#### Parameters

setting | the NMSettingWirelessSecurity |

#### Returns

the “wep-key-type” property of the setting

### nm_setting_wireless_security_get_wps_method ()

    NMSettingWirelessSecurityWpsMethod
    nm_setting_wireless_security_get_wps_method
                                   (NMSettingWirelessSecurity *setting);

#### Parameters

setting | the NMSettingWirelessSecurity |

#### Returns

the “wps-method” property of the setting

Since: 1.10

### nm_setting_wireless_security_get_fils ()

    NMSettingWirelessSecurityFils
    nm_setting_wireless_security_get_fils (NMSettingWirelessSecurity *setting);

## Types and Values

### NM_SETTING_WIRELESS_SECURITY_SETTING_NAME

    #define NM_SETTING_WIRELESS_SECURITY_SETTING_NAME "802-11-wireless-security"

### enum NMWepKeyType

The NMWepKeyType values specify how any WEP keys present in the setting are interpreted. There are no standards governing how to hash the various WEP key/passphrase formats into the actual WEP key. Unfortunately some WEP keys can be interpreted in multiple ways, requiring the setting to specify how to interpret the any WEP keys. For example, the key "732f2d712e4a394a375d366931" is both a valid Hexadecimal WEP key and a WEP passphrase. Further, many ASCII keys are also valid WEP passphrases, but since passphrases and ASCII keys are hashed differently to determine the actual WEP key the type must be specified.

#### Members

NM_WEP_KEY_TYPE_UNKNOWN | unknown WEP key type |
NM_WEP_KEY_TYPE_KEY | indicates a hexadecimal or ASCII formatted WEP key. Hex keys are either 10 or 26 hexadecimal characters (ie "5f782f2f5f" or "732f2d712e4a394a375d366931"), while ASCII keys are either 5 or 13 ASCII characters (ie "abcde" or "blahblah99$*1"). |
NM_WEP_KEY_TYPE_PASSPHRASE | indicates a WEP passphrase (ex "I bought a duck on my way back from the market 235Q&^%^*%") instead of a hexadecimal or ASCII key. Passphrases are between 8 and 64 characters inclusive and are hashed the actual WEP key using the MD5 hash algorithm. |
NM_WEP_KEY_TYPE_LAST | placeholder value for bounds-checking |

### enum NMSettingWirelessSecurityPmf

These flags indicate whether PMF must be enabled.

#### Members

NM_SETTING_WIRELESS_SECURITY_PMF_DEFAULT | use the default value |
NM_SETTING_WIRELESS_SECURITY_PMF_DISABLE | disable PMF |
NM_SETTING_WIRELESS_SECURITY_PMF_OPTIONAL | enable PMF if the supplicant and the AP support it |
NM_SETTING_WIRELESS_SECURITY_PMF_REQUIRED | require PMF and fail if not available |
_NM_SETTING_WIRELESS_SECURITY_PMF_NUM |  |
NM_SETTING_WIRELESS_SECURITY_PMF_LAST |  |

### enum NMSettingWirelessSecurityWpsMethod

Configure the use of WPS by a connection while it activates.

Note: prior to 1.16, this was a GEnum type instead of a GFlags type although, with the same numeric values.

#### Members

NM_SETTING_WIRELESS_SECURITY_WPS_METHOD_DEFAULT | Attempt whichever method AP supports |
NM_SETTING_WIRELESS_SECURITY_WPS_METHOD_DISABLED | WPS can not be used. |
NM_SETTING_WIRELESS_SECURITY_WPS_METHOD_AUTO | Use WPS, any method |
NM_SETTING_WIRELESS_SECURITY_WPS_METHOD_PBC | use WPS push-button method |
NM_SETTING_WIRELESS_SECURITY_WPS_METHOD_PIN | use PIN method |

Since: 1.10

### enum NMSettingWirelessSecurityFils

These flags indicate whether FILS must be enabled.

#### Members

NM_SETTING_WIRELESS_SECURITY_FILS_DEFAULT | use the default value |
NM_SETTING_WIRELESS_SECURITY_FILS_DISABLE | disable FILS |
NM_SETTING_WIRELESS_SECURITY_FILS_OPTIONAL | enable FILS if the supplicant and the AP support it |
NM_SETTING_WIRELESS_SECURITY_FILS_REQUIRED | require FILS and fail if not available |
_NM_SETTING_WIRELESS_SECURITY_FILS_NUM | placeholder value for bounds-checking |
NM_SETTING_WIRELESS_SECURITY_FILS_LAST | placeholder value for bounds-checking |

Since: 1.12

### NM_SETTING_WIRELESS_SECURITY_KEY_MGMT

    #define NM_SETTING_WIRELESS_SECURITY_KEY_MGMT            "key-mgmt"

### NM_SETTING_WIRELESS_SECURITY_WEP_TX_KEYIDX

    #define NM_SETTING_WIRELESS_SECURITY_WEP_TX_KEYIDX       "wep-tx-keyidx"

### NM_SETTING_WIRELESS_SECURITY_AUTH_ALG

    #define NM_SETTING_WIRELESS_SECURITY_AUTH_ALG            "auth-alg"

### NM_SETTING_WIRELESS_SECURITY_PROTO

    #define NM_SETTING_WIRELESS_SECURITY_PROTO               "proto"

### NM_SETTING_WIRELESS_SECURITY_PAIRWISE

    #define NM_SETTING_WIRELESS_SECURITY_PAIRWISE            "pairwise"

### NM_SETTING_WIRELESS_SECURITY_GROUP

    #define NM_SETTING_WIRELESS_SECURITY_GROUP               "group"

### NM_SETTING_WIRELESS_SECURITY_PMF

    #define NM_SETTING_WIRELESS_SECURITY_PMF                 "pmf"

### NM_SETTING_WIRELESS_SECURITY_LEAP_USERNAME

    #define NM_SETTING_WIRELESS_SECURITY_LEAP_USERNAME       "leap-username"

### NM_SETTING_WIRELESS_SECURITY_WEP_KEY0

    #define NM_SETTING_WIRELESS_SECURITY_WEP_KEY0            "wep-key0"

### NM_SETTING_WIRELESS_SECURITY_WEP_KEY1

    #define NM_SETTING_WIRELESS_SECURITY_WEP_KEY1            "wep-key1"

### NM_SETTING_WIRELESS_SECURITY_WEP_KEY2

    #define NM_SETTING_WIRELESS_SECURITY_WEP_KEY2            "wep-key2"

### NM_SETTING_WIRELESS_SECURITY_WEP_KEY3

    #define NM_SETTING_WIRELESS_SECURITY_WEP_KEY3            "wep-key3"

### NM_SETTING_WIRELESS_SECURITY_WEP_KEY_FLAGS

    #define NM_SETTING_WIRELESS_SECURITY_WEP_KEY_FLAGS       "wep-key-flags"

### NM_SETTING_WIRELESS_SECURITY_WEP_KEY_TYPE

    #define NM_SETTING_WIRELESS_SECURITY_WEP_KEY_TYPE        "wep-key-type"

### NM_SETTING_WIRELESS_SECURITY_PSK

    #define NM_SETTING_WIRELESS_SECURITY_PSK                 "psk"

### NM_SETTING_WIRELESS_SECURITY_PSK_FLAGS

    #define NM_SETTING_WIRELESS_SECURITY_PSK_FLAGS           "psk-flags"

### NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD

    #define NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD       "leap-password"

### NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD_FLAGS

    #define NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD_FLAGS "leap-password-flags"

### NM_SETTING_WIRELESS_SECURITY_WPS_METHOD

    #define NM_SETTING_WIRELESS_SECURITY_WPS_METHOD          "wps-method"

### NM_SETTING_WIRELESS_SECURITY_FILS

    #define NM_SETTING_WIRELESS_SECURITY_FILS                "fils"

### NMSettingWirelessSecurity

    typedef struct _NMSettingWirelessSecurity NMSettingWirelessSecurity;

Wi-Fi Security Settings

## Property Details

### The `“auth-alg”` property

      “auth-alg”                 char *

When WEP is used (ie, key-mgmt = "none" or "ieee8021x") indicate the 802.11 authentication algorithm required by the AP here. One of "open" for Open System, "shared" for Shared Key, or "leap" for Cisco LEAP. When using Cisco LEAP (ie, key-mgmt = "ieee8021x" and auth-alg = "leap") the "leap-username" and "leap-password" properties must be specified.

Owner: NMSettingWirelessSecurity

Flags: Read / Write

Default value: NULL

### The `“fils”` property

      “fils”                     int

Indicates whether Fast Initial Link Setup (802.11ai) must be enabled for the connection. One of `NM_SETTING_WIRELESS_SECURITY_FILS_DEFAULT` (use global default value), `NM_SETTING_WIRELESS_SECURITY_FILS_DISABLE` (disable FILS), `NM_SETTING_WIRELESS_SECURITY_FILS_OPTIONAL` (enable FILS if the supplicant and the access point support it) or `NM_SETTING_WIRELESS_SECURITY_FILS_REQUIRED` (enable FILS and fail if not supported). When set to `NM_SETTING_WIRELESS_SECURITY_FILS_DEFAULT` and no global default is set, FILS will be optionally enabled.

Owner: NMSettingWirelessSecurity

Flags: Read / Write

Default value: 0

Since: 1.12

### The `“group”` property

      “group”                    GStrv

A list of group/broadcast encryption algorithms which prevents connections to Wi-Fi networks that do not utilize one of the algorithms in the list. For maximum compatibility leave this property empty. Each list element may be one of "wep40", "wep104", "tkip", or "ccmp".

Owner: NMSettingWirelessSecurity

Flags: Read / Write

### The `“key-mgmt”` property

      “key-mgmt”                 char *

Key management used for the connection. One of "none" (WEP), "ieee8021x" (Dynamic WEP), "wpa-psk" (infrastructure WPA-PSK), "sae" (SAE), "owe" (Opportunistic Wireless Encryption), "wpa-eap" (WPA-Enterprise) or "wpa-eap-suite-b-192" (WPA3-Enterprise Suite B). This property must be set for any Wi-Fi connection that uses security.

Owner: NMSettingWirelessSecurity

Flags: Read / Write

Default value: NULL

### The `“leap-password”` property

      “leap-password”            char *

The login password for legacy LEAP connections (ie, key-mgmt = "ieee8021x" and auth-alg = "leap").

Owner: NMSettingWirelessSecurity

Flags: Read / Write

Default value: NULL

### The `“leap-password-flags”` property

      “leap-password-flags”      NMSettingSecretFlags

Flags indicating how to handle the “leap-password” property.

Owner: NMSettingWirelessSecurity

Flags: Read / Write

### The `“leap-username”` property

      “leap-username”            char *

The login username for legacy LEAP connections (ie, key-mgmt = "ieee8021x" and auth-alg = "leap").

Owner: NMSettingWirelessSecurity

Flags: Read / Write

Default value: NULL

### The `“pairwise”` property

      “pairwise”                 GStrv

A list of pairwise encryption algorithms which prevents connections to Wi-Fi networks that do not utilize one of the algorithms in the list. For maximum compatibility leave this property empty. Each list element may be one of "tkip" or "ccmp".

Owner: NMSettingWirelessSecurity

Flags: Read / Write

### The `“pmf”` property

      “pmf”                      int

Indicates whether Protected Management Frames (802.11w) must be enabled for the connection. One of `NM_SETTING_WIRELESS_SECURITY_PMF_DEFAULT` (use global default value), `NM_SETTING_WIRELESS_SECURITY_PMF_DISABLE` (disable PMF), `NM_SETTING_WIRELESS_SECURITY_PMF_OPTIONAL` (enable PMF if the supplicant and the access point support it) or `NM_SETTING_WIRELESS_SECURITY_PMF_REQUIRED` (enable PMF and fail if not supported). When set to `NM_SETTING_WIRELESS_SECURITY_PMF_DEFAULT` and no global default is set, PMF will be optionally enabled.

Owner: NMSettingWirelessSecurity

Flags: Read / Write

Default value: 0

Since: 1.10

### The `“proto”` property

      “proto”                    GStrv

List of strings specifying the allowed WPA protocol versions to use. Each element may be one "wpa" (allow WPA) or "rsn" (allow WPA2/RSN). If not specified, both WPA and RSN connections are allowed.

Owner: NMSettingWirelessSecurity

Flags: Read / Write

### The `“psk”` property

      “psk”                      char *

Pre-Shared-Key for WPA networks. For WPA-PSK, it's either an ASCII passphrase of 8 to 63 characters that is (as specified in the 802.11i standard) hashed to derive the actual key, or the key in form of 64 hexadecimal character. The WPA3-Personal networks use a passphrase of any length for SAE authentication.

Owner: NMSettingWirelessSecurity

Flags: Read / Write

Default value: NULL

### The `“psk-flags”` property

      “psk-flags”                NMSettingSecretFlags

Flags indicating how to handle the “psk” property.

Owner: NMSettingWirelessSecurity

Flags: Read / Write

### The `“wep-key-flags”` property

      “wep-key-flags”            NMSettingSecretFlags

Flags indicating how to handle the “wep-key0”, “wep-key1”, “wep-key2”, and “wep-key3” properties.

Owner: NMSettingWirelessSecurity

Flags: Read / Write

### The `“wep-key-type”` property

      “wep-key-type”             NMWepKeyType

Controls the interpretation of WEP keys. Allowed values are `NM_WEP_KEY_TYPE_KEY`, in which case the key is either a 10- or 26-character hexadecimal string, or a 5- or 13-character ASCII password; or `NM_WEP_KEY_TYPE_PASSPHRASE`, in which case the passphrase is provided as a string and will be hashed using the de-facto MD5 method to derive the actual WEP key.

Owner: NMSettingWirelessSecurity

Flags: Read / Write

Default value: NM_WEP_KEY_TYPE_UNKNOWN

### The `“wep-key0”` property

      “wep-key0”                 char *

Index 0 WEP key. This is the WEP key used in most networks. See the "wep-key-type" property for a description of how this key is interpreted.

Owner: NMSettingWirelessSecurity

Flags: Read / Write

Default value: NULL

### The `“wep-key1”` property

      “wep-key1”                 char *

Index 1 WEP key. This WEP index is not used by most networks. See the "wep-key-type" property for a description of how this key is interpreted.

Owner: NMSettingWirelessSecurity

Flags: Read / Write

Default value: NULL

### The `“wep-key2”` property

      “wep-key2”                 char *

Index 2 WEP key. This WEP index is not used by most networks. See the "wep-key-type" property for a description of how this key is interpreted.

Owner: NMSettingWirelessSecurity

Flags: Read / Write

Default value: NULL

### The `“wep-key3”` property

      “wep-key3”                 char *

Index 3 WEP key. This WEP index is not used by most networks. See the "wep-key-type" property for a description of how this key is interpreted.

Owner: NMSettingWirelessSecurity

Flags: Read / Write

Default value: NULL

### The `“wep-tx-keyidx”` property

      “wep-tx-keyidx”            guint

When static WEP is used (ie, key-mgmt = "none") and a non-default WEP key index is used by the AP, put that WEP key index here. Valid values are 0 (default key) through 3. Note that some consumer access points (like the Linksys WRT54G) number the keys 1 - 4.

Owner: NMSettingWirelessSecurity

Flags: Read / Write

Allowed values: <= 3

Default value: 0

### The `“wps-method”` property

      “wps-method”               guint

Flags indicating which mode of WPS is to be used if any.

There's little point in changing the default setting as NetworkManager will automatically determine whether it's feasible to start WPS enrollment from the Access Point capabilities.

WPS can be disabled by setting this property to a value of 1.

Owner: NMSettingWirelessSecurity

Flags: Read / Write

Default value: 0

Since: 1.10