## NMSettingWirelessSecurity

NMSettingWirelessSecurity — Describes connection properties for WiFi networks that use WEP, LEAP, WPA or WPA2/RSN security

## Synopsis

    #include <nm-setting-wireless-security.h>

    #define             NM_SETTING_WIRELESS_SECURITY_SETTING_NAME
    enum                NMSettingWirelessSecurityError;
    #define             NM_TYPE_SETTING_WIRELESS_SECURITY_ERROR
    #define             NM_SETTING_WIRELESS_SECURITY_ERROR
    GQuark              nm_setting_wireless_security_error_quark
                                                            (void);
    enum                NMWepKeyType;
    #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_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_PSK
    #define             NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD
    #define             NM_SETTING_WIRELESS_SECURITY_WEP_KEY_TYPE
                        NMSettingWirelessSecurity;
                        NMSettingWirelessSecurityClass;
    GType               nm_setting_wireless_security_get_type
                                                            (void);
    NMSetting *         nm_setting_wireless_security_new    (void);
    const char *        nm_setting_wireless_security_get_key_mgmt
                                                            (NMSettingWirelessSecurity *setting);
    guint32             nm_setting_wireless_security_get_num_protos
                                                            (NMSettingWirelessSecurity *setting);
    const char *        nm_setting_wireless_security_get_proto
                                                            (NMSettingWirelessSecurity *setting,
                                                             guint32 i);
    gboolean            nm_setting_wireless_security_add_proto
                                                            (NMSettingWirelessSecurity *setting,
                                                             const char *proto);
    void                nm_setting_wireless_security_remove_proto
                                                            (NMSettingWirelessSecurity *setting,
                                                             guint32 i);
    void                nm_setting_wireless_security_clear_protos
                                                            (NMSettingWirelessSecurity *setting);
    guint32             nm_setting_wireless_security_get_num_pairwise
                                                            (NMSettingWirelessSecurity *setting);
    const char *        nm_setting_wireless_security_get_pairwise
                                                            (NMSettingWirelessSecurity *setting,
                                                             guint32 i);
    gboolean            nm_setting_wireless_security_add_pairwise
                                                            (NMSettingWirelessSecurity *setting,
                                                             const char *pairwise);
    void                nm_setting_wireless_security_remove_pairwise
                                                            (NMSettingWirelessSecurity *setting,
                                                             guint32 i);
    void                nm_setting_wireless_security_clear_pairwise
                                                            (NMSettingWirelessSecurity *setting);
    guint32             nm_setting_wireless_security_get_num_groups
                                                            (NMSettingWirelessSecurity *setting);
    const char *        nm_setting_wireless_security_get_group
                                                            (NMSettingWirelessSecurity *setting,
                                                             guint32 i);
    gboolean            nm_setting_wireless_security_add_group
                                                            (NMSettingWirelessSecurity *setting,
                                                             const char *group);
    void                nm_setting_wireless_security_remove_group
                                                            (NMSettingWirelessSecurity *setting,
                                                             guint32 i);
    void                nm_setting_wireless_security_clear_groups
                                                            (NMSettingWirelessSecurity *setting);
    const char *        nm_setting_wireless_security_get_psk
                                                            (NMSettingWirelessSecurity *setting);
    const char *        nm_setting_wireless_security_get_leap_username
                                                            (NMSettingWirelessSecurity *setting);
    const char *        nm_setting_wireless_security_get_leap_password
                                                            (NMSettingWirelessSecurity *setting);
    const char *        nm_setting_wireless_security_get_wep_key
                                                            (NMSettingWirelessSecurity *setting,
                                                             guint32 idx);
    void                nm_setting_wireless_security_set_wep_key
                                                            (NMSettingWirelessSecurity *setting,
                                                             guint32 idx,
                                                             const char *key);
    guint32             nm_setting_wireless_security_get_wep_tx_keyidx
                                                            (NMSettingWirelessSecurity *setting);
    const char *        nm_setting_wireless_security_get_auth_alg
                                                            (NMSettingWirelessSecurity *setting);
    NMWepKeyType        nm_setting_wireless_security_get_wep_key_type
                                                            (NMSettingWirelessSecurity *setting);

## Object Hierarchy

      GObject
       +----NMSetting
             +----NMSettingWirelessSecurity

## Properties

      "auth-alg"                 gchar*                : Read / Write
      "group"                    GSList_gchararray_*   : Read / Write
      "key-mgmt"                 gchar*                : Read / Write
      "leap-password"            gchar*                : Read / Write
      "leap-username"            gchar*                : Read / Write
      "pairwise"                 GSList_gchararray_*   : Read / Write
      "proto"                    GSList_gchararray_*   : Read / Write
      "psk"                      gchar*                : Read / Write
      "wep-key-type"             guint                 : Read / Write / Construct
      "wep-key0"                 gchar*                : Read / Write
      "wep-key1"                 gchar*                : Read / Write
      "wep-key2"                 gchar*                : Read / Write
      "wep-key3"                 gchar*                : Read / Write
      "wep-tx-keyidx"            guint                 : Read / Write / Construct

## Description

The NMSettingWirelessSecurity object is a NMSetting subclass that describes properties necessary for connection to encrypted WiFi 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 WiFi 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

## Details

### NM_SETTING_WIRELESS_SECURITY_SETTING_NAME

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

### enum NMSettingWirelessSecurityError

    typedef enum {
    	NM_SETTING_WIRELESS_SECURITY_ERROR_UNKNOWN = 0,
    	NM_SETTING_WIRELESS_SECURITY_ERROR_INVALID_PROPERTY,
    	NM_SETTING_WIRELESS_SECURITY_ERROR_MISSING_PROPERTY,
    	NM_SETTING_WIRELESS_SECURITY_ERROR_MISSING_802_1X_SETTING,
    	NM_SETTING_WIRELESS_SECURITY_ERROR_LEAP_REQUIRES_802_1X,
    	NM_SETTING_WIRELESS_SECURITY_ERROR_LEAP_REQUIRES_USERNAME,
    	NM_SETTING_WIRELESS_SECURITY_ERROR_SHARED_KEY_REQUIRES_WEP
    } NMSettingWirelessSecurityError;

`NM_SETTING_WIRELESS_SECURITY_ERROR_UNKNOWN` | unknown or unclassified error
`NM_SETTING_WIRELESS_SECURITY_ERROR_INVALID_PROPERTY` | the property was invalid
`NM_SETTING_WIRELESS_SECURITY_ERROR_MISSING_PROPERTY` | the property was missing and is required
`NM_SETTING_WIRELESS_SECURITY_ERROR_MISSING_802_1X_SETTING` | a property contained a value that requires the connection to contain a NMSetting8021x setting
`NM_SETTING_WIRELESS_SECURITY_ERROR_LEAP_REQUIRES_802_1X` | LEAP authentication was specified but key management was not set to "8021x"
`NM_SETTING_WIRELESS_SECURITY_ERROR_LEAP_REQUIRES_USERNAME` | LEAP authentication was specified but no LEAP username was given
`NM_SETTING_WIRELESS_SECURITY_ERROR_SHARED_KEY_REQUIRES_WEP` | Shared Key authentication was specified but the setting did not specify WEP as the encryption protocol

### NM_TYPE_SETTING_WIRELESS_SECURITY_ERROR

    #define NM_TYPE_SETTING_WIRELESS_SECURITY_ERROR (nm_setting_wireless_security_error_get_type ())

### NM_SETTING_WIRELESS_SECURITY_ERROR

    #define NM_SETTING_WIRELESS_SECURITY_ERROR nm_setting_wireless_security_error_quark ()

### nm_setting_wireless_security_error_quark ()

    GQuark              nm_setting_wireless_security_error_quark
                                                            (void);

Returns : |

### enum NMWepKeyType

    typedef enum {
    	NM_WEP_KEY_TYPE_UNKNOWN = 0,
    	NM_WEP_KEY_TYPE_KEY = 1,          /* Hex or ASCII */
    	NM_WEP_KEY_TYPE_PASSPHRASE = 2,   /* 104/128-bit Passphrase */

    	NM_WEP_KEY_TYPE_LAST = NM_WEP_KEY_TYPE_PASSPHRASE
    } NMWepKeyType;

The NMWepKeyType values specify how any WEP keys present in the setting are intepreted. 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, requring 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.

`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

### 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_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_PSK

    #define NM_SETTING_WIRELESS_SECURITY_PSK "psk"

### NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD

    #define NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD "leap-password"

### NM_SETTING_WIRELESS_SECURITY_WEP_KEY_TYPE

    #define NM_SETTING_WIRELESS_SECURITY_WEP_KEY_TYPE "wep-key-type"

### NMSettingWirelessSecurity

    typedef struct _NMSettingWirelessSecurity NMSettingWirelessSecurity;

### NMSettingWirelessSecurityClass

    typedef struct {
    	NMSettingClass parent;

    	/* Padding for future expansion */
    	void (*_reserved1) (void);
    	void (*_reserved2) (void);
    	void (*_reserved3) (void);
    	void (*_reserved4) (void);
    } NMSettingWirelessSecurityClass;

### nm_setting_wireless_security_get_type ()

    GType               nm_setting_wireless_security_get_type
                                                            (void);

Returns : |

### 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

### nm_setting_wireless_security_get_key_mgmt ()

    const char *        nm_setting_wireless_security_get_key_mgmt
                                                            (NMSettingWirelessSecurity *setting);

`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);

`setting` : | the NMSettingWirelessSecurity
Returns : | the number of security protocols this connection allows when connecting to secure WiFi networks

### nm_setting_wireless_security_get_proto ()

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

`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 WiFi 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 WiFi 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.

`setting` : | the NMSettingWirelessSecurity
`proto` : | the protocol to add, one of "wpa" or "rsn"
Returns : | `TRUE` if the protocol was new and 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.

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

### 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.

`setting` : | the NMSettingWirelessSecurity

### nm_setting_wireless_security_get_num_pairwise ()

    guint32             nm_setting_wireless_security_get_num_pairwise
                                                            (NMSettingWirelessSecurity *setting);

`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.

`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.

`setting` : | the NMSettingWirelessSecurity
`pairwise` : | 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_pairwise ()

    void                nm_setting_wireless_security_remove_pairwise
                                                            (NMSettingWirelessSecurity *setting,
                                                             guint32 i);

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

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

### 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.

`setting` : | the NMSettingWirelessSecurity

### nm_setting_wireless_security_get_num_groups ()

    guint32             nm_setting_wireless_security_get_num_groups
                                                            (NMSettingWirelessSecurity *setting);

`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.

`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.

`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.

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

### 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.

`setting` : | the NMSettingWirelessSecurity

### nm_setting_wireless_security_get_psk ()

    const char *        nm_setting_wireless_security_get_psk
                                                            (NMSettingWirelessSecurity *setting);

`setting` : | the NMSettingWirelessSecurity
Returns : | the "psk" property of the setting

### nm_setting_wireless_security_get_leap_username ()

    const char *        nm_setting_wireless_security_get_leap_username
                                                            (NMSettingWirelessSecurity *setting);

`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);

`setting` : | the NMSettingWirelessSecurity
Returns : | the "leap-password" property of the setting

### nm_setting_wireless_security_get_wep_key ()

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

`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.

`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 determiend 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);

`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);

`setting` : | the NMSettingWirelessSecurity
Returns : | the "auth-alg" property of the setting

### nm_setting_wireless_security_get_wep_key_type ()

    NMWepKeyType        nm_setting_wireless_security_get_wep_key_type
                                                            (NMSettingWirelessSecurity *setting);

`setting` : | the NMSettingWirelessSecurity
Returns : | the "wep-key-type" property of the setting

## Property Details

### The `"auth-alg"` property

      "auth-alg"                 gchar*                : Read / Write

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.

Default value: NULL

### The `"group"` property

      "group"                    GSList_gchararray_*   : Read / Write

If specified, will only connect to WPA networks that provide the specified group/multicast encryption capabilities. Each element may be one of 'wep40', 'wep104', 'tkip', or 'ccmp'.

### The `"key-mgmt"` property

      "key-mgmt"                 gchar*                : Read / Write

Key management used for the connection. One of 'none' (WEP), 'ieee8021x' (Dynamic WEP), 'wpa-none' (Ad-Hoc WPA-PSK), 'wpa-psk' (infrastructure WPA-PSK), or 'wpa-eap' (WPA-Enterprise). This property must be set for any WiFi connection that uses security.

Default value: NULL

### The `"leap-password"` property

      "leap-password"            gchar*                : Read / Write

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

Default value: NULL

### The `"leap-username"` property

      "leap-username"            gchar*                : Read / Write

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

Default value: NULL

### The `"pairwise"` property

      "pairwise"                 GSList_gchararray_*   : Read / Write

If specified, will only connect to WPA networks that provide the specified pairwise encryption capabilities. Each element may be one of 'wep40', 'wep104', 'tkip', or 'ccmp'.

### The `"proto"` property

      "proto"                    GSList_gchararray_*   : Read / Write

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.

### The `"psk"` property

      "psk"                      gchar*                : Read / Write

Pre-Shared-Key for WPA networks. If the key is 64-characters long, it must contain only hexadecimal characters and is interpreted as a hexadecimal WPA key. Otherwise, the key must be between 8 and 63 ASCII characters (as specified in the 802.11i standard) and is interpreted as a WPA passphrase, and is hashed to derive the actual WPA-PSK used when connecting to the WiFi network.

Default value: NULL

### The `"wep-key-type"` property

      "wep-key-type"             guint                 : Read / Write / Construct

Controls the interpretation of WEP keys. Allowed values are those given by `NMWepKeyType`. If set to 1 and the keys are hexadecimal, they must be either 10 or 26 characters in length. If set to 1 and the keys are ASCII keys, they must be either 5 or 13 characters in length. If set to 2, the passphrase is hashed using the de-facto MD5 method to derive the actual WEP key.

Allowed values: <= 2

Default value: 0

### The `"wep-key0"` property

      "wep-key0"                 gchar*                : Read / Write

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.

Default value: NULL

### The `"wep-key1"` property

      "wep-key1"                 gchar*                : Read / Write

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.

Default value: NULL

### The `"wep-key2"` property

      "wep-key2"                 gchar*                : Read / Write

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.

Default value: NULL

### The `"wep-key3"` property

      "wep-key3"                 gchar*                : Read / Write

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.

Default value: NULL

### The `"wep-tx-keyidx"` property

      "wep-tx-keyidx"            guint                 : Read / Write / Construct

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.

Allowed values: <= 3

Default value: 0