summary refs log tree commit diff
path: root/src/libnm-core-impl/nm-setting-wireless-security.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/libnm-core-impl/nm-setting-wireless-security.c')
-rw-r--r--src/libnm-core-impl/nm-setting-wireless-security.c485
1 files changed, 186 insertions, 299 deletions
diff --git a/src/libnm-core-impl/nm-setting-wireless-security.c b/src/libnm-core-impl/nm-setting-wireless-security.c
index 0bfc30c8..d9c5afb8 100644
--- a/src/libnm-core-impl/nm-setting-wireless-security.c
+++ b/src/libnm-core-impl/nm-setting-wireless-security.c
@@ -62,26 +62,26 @@ NM_GOBJECT_PROPERTIES_DEFINE(NMSettingWirelessSecurity,
                              PROP_FILS, );
 
 typedef struct {
-    GSList *                           proto;    /* GSList of strings */
-    GSList *                           pairwise; /* GSList of strings */
-    GSList *                           group;    /* GSList of strings */
-    char *                             key_mgmt;
-    char *                             auth_alg;
-    char *                             leap_username;
-    char *                             leap_password;
-    char *                             wep_key0;
-    char *                             wep_key1;
-    char *                             wep_key2;
-    char *                             wep_key3;
-    char *                             psk;
-    NMSettingSecretFlags               leap_password_flags;
-    NMSettingSecretFlags               wep_key_flags;
-    NMSettingSecretFlags               psk_flags;
-    NMSettingWirelessSecurityPmf       pmf;
-    NMWepKeyType                       wep_key_type;
-    NMSettingWirelessSecurityWpsMethod wps_method;
-    NMSettingWirelessSecurityFils      fils;
-    guint32                            wep_tx_keyidx;
+    GSList      *proto;    /* GSList of strings */
+    GSList      *pairwise; /* GSList of strings */
+    GSList      *group;    /* GSList of strings */
+    char        *key_mgmt;
+    char        *auth_alg;
+    char        *leap_username;
+    char        *leap_password;
+    char        *wep_key0;
+    char        *wep_key1;
+    char        *wep_key2;
+    char        *wep_key3;
+    char        *psk;
+    guint        leap_password_flags;
+    guint        wep_key_flags;
+    guint        psk_flags;
+    NMWepKeyType wep_key_type;
+    gint32       pmf;
+    gint32       fils;
+    guint32      wep_tx_keyidx;
+    guint32      wps_method;
 } NMSettingWirelessSecurityPrivate;
 
 /**
@@ -177,7 +177,7 @@ gboolean
 nm_setting_wireless_security_add_proto(NMSettingWirelessSecurity *setting, const char *proto)
 {
     NMSettingWirelessSecurityPrivate *priv;
-    GSList *                          iter;
+    GSList                           *iter;
 
     g_return_val_if_fail(NM_IS_SETTING_WIRELESS_SECURITY(setting), FALSE);
     g_return_val_if_fail(proto != NULL, FALSE);
@@ -204,7 +204,7 @@ void
 nm_setting_wireless_security_remove_proto(NMSettingWirelessSecurity *setting, guint32 i)
 {
     NMSettingWirelessSecurityPrivate *priv;
-    GSList *                          elt;
+    GSList                           *elt;
 
     g_return_if_fail(NM_IS_SETTING_WIRELESS_SECURITY(setting));
 
@@ -228,10 +228,10 @@ nm_setting_wireless_security_remove_proto(NMSettingWirelessSecurity *setting, gu
  **/
 gboolean
 nm_setting_wireless_security_remove_proto_by_value(NMSettingWirelessSecurity *setting,
-                                                   const char *               proto)
+                                                   const char                *proto)
 {
     NMSettingWirelessSecurityPrivate *priv;
-    GSList *                          iter;
+    GSList                           *iter;
 
     g_return_val_if_fail(NM_IS_SETTING_WIRELESS_SECURITY(setting), FALSE);
     g_return_val_if_fail(proto != NULL, FALSE);
@@ -321,7 +321,7 @@ gboolean
 nm_setting_wireless_security_add_pairwise(NMSettingWirelessSecurity *setting, const char *pairwise)
 {
     NMSettingWirelessSecurityPrivate *priv;
-    GSList *                          iter;
+    GSList                           *iter;
 
     g_return_val_if_fail(NM_IS_SETTING_WIRELESS_SECURITY(setting), FALSE);
     g_return_val_if_fail(pairwise != NULL, FALSE);
@@ -349,7 +349,7 @@ void
 nm_setting_wireless_security_remove_pairwise(NMSettingWirelessSecurity *setting, guint32 i)
 {
     NMSettingWirelessSecurityPrivate *priv;
-    GSList *                          elt;
+    GSList                           *elt;
 
     g_return_if_fail(NM_IS_SETTING_WIRELESS_SECURITY(setting));
 
@@ -374,10 +374,10 @@ nm_setting_wireless_security_remove_pairwise(NMSettingWirelessSecurity *setting,
  **/
 gboolean
 nm_setting_wireless_security_remove_pairwise_by_value(NMSettingWirelessSecurity *setting,
-                                                      const char *               pairwise)
+                                                      const char                *pairwise)
 {
     NMSettingWirelessSecurityPrivate *priv;
-    GSList *                          iter;
+    GSList                           *iter;
 
     g_return_val_if_fail(NM_IS_SETTING_WIRELESS_SECURITY(setting), FALSE);
     g_return_val_if_fail(pairwise != NULL, FALSE);
@@ -468,7 +468,7 @@ gboolean
 nm_setting_wireless_security_add_group(NMSettingWirelessSecurity *setting, const char *group)
 {
     NMSettingWirelessSecurityPrivate *priv;
-    GSList *                          iter;
+    GSList                           *iter;
 
     g_return_val_if_fail(NM_IS_SETTING_WIRELESS_SECURITY(setting), FALSE);
     g_return_val_if_fail(group != NULL, FALSE);
@@ -496,7 +496,7 @@ void
 nm_setting_wireless_security_remove_group(NMSettingWirelessSecurity *setting, guint32 i)
 {
     NMSettingWirelessSecurityPrivate *priv;
-    GSList *                          elt;
+    GSList                           *elt;
 
     g_return_if_fail(NM_IS_SETTING_WIRELESS_SECURITY(setting));
 
@@ -522,10 +522,10 @@ nm_setting_wireless_security_remove_group(NMSettingWirelessSecurity *setting, gu
  **/
 gboolean
 nm_setting_wireless_security_remove_group_by_value(NMSettingWirelessSecurity *setting,
-                                                   const char *               group)
+                                                   const char                *group)
 {
     NMSettingWirelessSecurityPrivate *priv;
-    GSList *                          iter;
+    GSList                           *iter;
 
     g_return_val_if_fail(NM_IS_SETTING_WIRELESS_SECURITY(setting), FALSE);
     g_return_val_if_fail(group != NULL, FALSE);
@@ -691,7 +691,7 @@ nm_setting_wireless_security_get_wep_key(NMSettingWirelessSecurity *setting, gui
 void
 nm_setting_wireless_security_set_wep_key(NMSettingWirelessSecurity *setting,
                                          guint32                    idx,
-                                         const char *               key)
+                                         const char                *key)
 {
     NMSettingWirelessSecurityPrivate *priv;
 
@@ -817,9 +817,9 @@ nm_setting_wireless_security_get_fils(NMSettingWirelessSecurity *setting)
 static GPtrArray *
 need_secrets(NMSetting *setting)
 {
-    NMSettingWirelessSecurity *       self = NM_SETTING_WIRELESS_SECURITY(setting);
+    NMSettingWirelessSecurity        *self = NM_SETTING_WIRELESS_SECURITY(setting);
     NMSettingWirelessSecurityPrivate *priv = NM_SETTING_WIRELESS_SECURITY_GET_PRIVATE(self);
-    GPtrArray *                       secrets;
+    GPtrArray                        *secrets;
 
     secrets = g_ptr_array_sized_new(4);
 
@@ -895,16 +895,16 @@ no_secrets:
 static gboolean
 verify(NMSetting *setting, NMConnection *connection, GError **error)
 {
-    NMSettingWirelessSecurity *       self = NM_SETTING_WIRELESS_SECURITY(setting);
+    NMSettingWirelessSecurity        *self = NM_SETTING_WIRELESS_SECURITY(setting);
     NMSettingWirelessSecurityPrivate *priv = NM_SETTING_WIRELESS_SECURITY_GET_PRIVATE(self);
-    const char *                      valid_key_mgmt[] =
+    const char                       *valid_key_mgmt[] =
         {"none", "ieee8021x", "wpa-psk", "wpa-eap", "wpa-eap-suite-b-192", "sae", "owe", NULL};
-    const char *       valid_auth_algs[] = {"open", "shared", "leap", NULL};
-    const char *       valid_protos[]    = {"wpa", "rsn", NULL};
-    const char *       valid_pairwise[]  = {"tkip", "ccmp", NULL};
-    const char *       valid_groups[]    = {"wep40", "wep104", "tkip", "ccmp", NULL};
+    const char        *valid_auth_algs[] = {"open", "shared", "leap", NULL};
+    const char        *valid_protos[]    = {"wpa", "rsn", NULL};
+    const char        *valid_pairwise[]  = {"tkip", "ccmp", NULL};
+    const char        *valid_groups[]    = {"wep40", "wep104", "tkip", "ccmp", NULL};
     NMSettingWireless *s_wifi;
-    const char *       wifi_mode;
+    const char        *wifi_mode;
 
     s_wifi    = connection ? nm_connection_get_setting_wireless(connection) : NULL;
     wifi_mode = s_wifi ? nm_setting_wireless_get_mode(s_wifi) : NULL;
@@ -993,7 +993,7 @@ verify(NMSetting *setting, NMConnection *connection, GError **error)
         }
     }
 
-    if (priv->leap_username && !strlen(priv->leap_username)) {
+    if (priv->leap_username && nm_str_is_empty(priv->leap_username)) {
         g_set_error_literal(error,
                             NM_CONNECTION_ERROR,
                             NM_CONNECTION_ERROR_INVALID_PROPERTY,
@@ -1005,19 +1005,6 @@ verify(NMSetting *setting, NMConnection *connection, GError **error)
         return FALSE;
     }
 
-    if (priv->wep_tx_keyidx > 3) {
-        g_set_error(error,
-                    NM_CONNECTION_ERROR,
-                    NM_CONNECTION_ERROR_INVALID_PROPERTY,
-                    _("'%d' value is out of range <0-3>"),
-                    priv->wep_tx_keyidx);
-        g_prefix_error(error,
-                       "%s.%s: ",
-                       NM_SETTING_WIRELESS_SECURITY_SETTING_NAME,
-                       NM_SETTING_WIRELESS_SECURITY_WEP_TX_KEYIDX);
-        return FALSE;
-    }
-
     if (priv->wep_key_type > NM_WEP_KEY_TYPE_LAST) {
         g_set_error_literal(error,
                             NM_CONNECTION_ERROR,
@@ -1161,10 +1148,10 @@ verify(NMSetting *setting, NMConnection *connection, GError **error)
 }
 
 static gboolean
-_verify_wep_key(const char * wep_key,
+_verify_wep_key(const char  *wep_key,
                 NMWepKeyType wep_key_type,
-                const char * property,
-                GError **    error)
+                const char  *property,
+                GError     **error)
 {
     if (wep_key && !nm_utils_wep_key_valid(wep_key, wep_key_type)) {
         g_set_error_literal(error,
@@ -1180,7 +1167,7 @@ _verify_wep_key(const char * wep_key,
 static gboolean
 verify_secrets(NMSetting *setting, NMConnection *connection, GError **error)
 {
-    NMSettingWirelessSecurity *       self = NM_SETTING_WIRELESS_SECURITY(setting);
+    NMSettingWirelessSecurity        *self = NM_SETTING_WIRELESS_SECURITY(setting);
     NMSettingWirelessSecurityPrivate *priv = NM_SETTING_WIRELESS_SECURITY_GET_PRIVATE(self);
 
     /* LEAP */
@@ -1231,10 +1218,10 @@ verify_secrets(NMSetting *setting, NMConnection *connection, GError **error)
 }
 
 static gboolean
-get_secret_flags(NMSetting *           setting,
-                 const char *          secret_name,
+get_secret_flags(NMSetting            *setting,
+                 const char           *secret_name,
                  NMSettingSecretFlags *out_flags,
-                 GError **             error)
+                 GError              **error)
 {
     NMSettingSecretFlags flags;
 
@@ -1260,10 +1247,10 @@ get_secret_flags(NMSetting *           setting,
 }
 
 static gboolean
-set_secret_flags(NMSetting *          setting,
-                 const char *         secret_name,
+set_secret_flags(NMSetting           *setting,
+                 const char          *secret_name,
                  NMSettingSecretFlags flags,
-                 GError **            error)
+                 GError             **error)
 {
     if (NM_IN_STRSET(secret_name,
                      NM_SETTING_WIRELESS_SECURITY_WEP_KEY0,
@@ -1310,19 +1297,10 @@ wep_key_type_to_dbus(_NM_SETT_INFO_PROP_TO_DBUS_FCN_ARGS _nm_nil)
 static void
 get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec)
 {
-    NMSettingWirelessSecurity *       setting = NM_SETTING_WIRELESS_SECURITY(object);
+    NMSettingWirelessSecurity        *setting = NM_SETTING_WIRELESS_SECURITY(object);
     NMSettingWirelessSecurityPrivate *priv    = NM_SETTING_WIRELESS_SECURITY_GET_PRIVATE(setting);
 
     switch (prop_id) {
-    case PROP_KEY_MGMT:
-        g_value_set_string(value, priv->key_mgmt);
-        break;
-    case PROP_WEP_TX_KEYIDX:
-        g_value_set_uint(value, priv->wep_tx_keyidx);
-        break;
-    case PROP_AUTH_ALG:
-        g_value_set_string(value, priv->auth_alg);
-        break;
     case PROP_PROTO:
         g_value_take_boxed(value, _nm_utils_slist_to_strv(priv->proto, TRUE));
         break;
@@ -1332,50 +1310,11 @@ get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec)
     case PROP_GROUP:
         g_value_take_boxed(value, _nm_utils_slist_to_strv(priv->group, TRUE));
         break;
-    case PROP_PMF:
-        g_value_set_int(value, nm_setting_wireless_security_get_pmf(setting));
-        break;
-    case PROP_LEAP_USERNAME:
-        g_value_set_string(value, priv->leap_username);
-        break;
-    case PROP_WEP_KEY0:
-        g_value_set_string(value, priv->wep_key0);
-        break;
-    case PROP_WEP_KEY1:
-        g_value_set_string(value, priv->wep_key1);
-        break;
-    case PROP_WEP_KEY2:
-        g_value_set_string(value, priv->wep_key2);
-        break;
-    case PROP_WEP_KEY3:
-        g_value_set_string(value, priv->wep_key3);
-        break;
-    case PROP_WEP_KEY_FLAGS:
-        g_value_set_flags(value, priv->wep_key_flags);
-        break;
-    case PROP_PSK:
-        g_value_set_string(value, priv->psk);
-        break;
-    case PROP_PSK_FLAGS:
-        g_value_set_flags(value, priv->psk_flags);
-        break;
-    case PROP_LEAP_PASSWORD:
-        g_value_set_string(value, priv->leap_password);
-        break;
-    case PROP_LEAP_PASSWORD_FLAGS:
-        g_value_set_flags(value, priv->leap_password_flags);
-        break;
     case PROP_WEP_KEY_TYPE:
         g_value_set_enum(value, priv->wep_key_type);
         break;
-    case PROP_WPS_METHOD:
-        g_value_set_uint(value, priv->wps_method);
-        break;
-    case PROP_FILS:
-        g_value_set_int(value, nm_setting_wireless_security_get_fils(setting));
-        break;
     default:
-        G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
+        _nm_setting_property_get_property_direct(object, prop_id, value, pspec);
         break;
     }
 }
@@ -1383,24 +1322,10 @@ get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec)
 static void
 set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec)
 {
-    NMSettingWirelessSecurity *       setting = NM_SETTING_WIRELESS_SECURITY(object);
+    NMSettingWirelessSecurity        *setting = NM_SETTING_WIRELESS_SECURITY(object);
     NMSettingWirelessSecurityPrivate *priv    = NM_SETTING_WIRELESS_SECURITY_GET_PRIVATE(setting);
-    const char *                      str;
 
     switch (prop_id) {
-    case PROP_KEY_MGMT:
-        g_free(priv->key_mgmt);
-        str            = g_value_get_string(value);
-        priv->key_mgmt = str ? g_ascii_strdown(str, -1) : NULL;
-        break;
-    case PROP_WEP_TX_KEYIDX:
-        priv->wep_tx_keyidx = g_value_get_uint(value);
-        break;
-    case PROP_AUTH_ALG:
-        g_free(priv->auth_alg);
-        str            = g_value_get_string(value);
-        priv->auth_alg = str ? g_ascii_strdown(str, -1) : NULL;
-        break;
     case PROP_PROTO:
         g_slist_free_full(priv->proto, g_free);
         priv->proto = nm_strv_to_gslist(g_value_get_boxed(value), TRUE);
@@ -1413,57 +1338,11 @@ set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *ps
         g_slist_free_full(priv->group, g_free);
         priv->group = nm_strv_to_gslist(g_value_get_boxed(value), TRUE);
         break;
-    case PROP_PMF:
-        priv->pmf = g_value_get_int(value);
-        break;
-    case PROP_LEAP_USERNAME:
-        g_free(priv->leap_username);
-        priv->leap_username = g_value_dup_string(value);
-        break;
-    case PROP_WEP_KEY0:
-        nm_free_secret(priv->wep_key0);
-        priv->wep_key0 = g_value_dup_string(value);
-        break;
-    case PROP_WEP_KEY1:
-        nm_free_secret(priv->wep_key1);
-        priv->wep_key1 = g_value_dup_string(value);
-        break;
-    case PROP_WEP_KEY2:
-        nm_free_secret(priv->wep_key2);
-        priv->wep_key2 = g_value_dup_string(value);
-        break;
-    case PROP_WEP_KEY3:
-        nm_free_secret(priv->wep_key3);
-        priv->wep_key3 = g_value_dup_string(value);
-        break;
-    case PROP_WEP_KEY_FLAGS:
-        priv->wep_key_flags = g_value_get_flags(value);
-        break;
-    case PROP_PSK:
-        nm_free_secret(priv->psk);
-        priv->psk = g_value_dup_string(value);
-        break;
-    case PROP_PSK_FLAGS:
-        priv->psk_flags = g_value_get_flags(value);
-        break;
-    case PROP_LEAP_PASSWORD:
-        nm_free_secret(priv->leap_password);
-        priv->leap_password = g_value_dup_string(value);
-        break;
-    case PROP_LEAP_PASSWORD_FLAGS:
-        priv->leap_password_flags = g_value_get_flags(value);
-        break;
     case PROP_WEP_KEY_TYPE:
         priv->wep_key_type = g_value_get_enum(value);
         break;
-    case PROP_WPS_METHOD:
-        priv->wps_method = g_value_get_uint(value);
-        break;
-    case PROP_FILS:
-        priv->fils = g_value_get_int(value);
-        break;
     default:
-        G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
+        _nm_setting_property_set_property_direct(object, prop_id, value, pspec);
         break;
     }
 }
@@ -1475,8 +1354,6 @@ nm_setting_wireless_security_init(NMSettingWirelessSecurity *self)
 {
     nm_assert(NM_SETTING_WIRELESS_SECURITY_GET_PRIVATE(self)->wep_key_type
               == NM_WEP_KEY_TYPE_UNKNOWN);
-    nm_assert(NM_SETTING_WIRELESS_SECURITY_GET_PRIVATE(self)->wps_method
-              == NM_SETTING_WIRELESS_SECURITY_WPS_METHOD_DEFAULT);
 }
 
 /**
@@ -1495,19 +1372,9 @@ nm_setting_wireless_security_new(void)
 static void
 finalize(GObject *object)
 {
-    NMSettingWirelessSecurity *       self = NM_SETTING_WIRELESS_SECURITY(object);
+    NMSettingWirelessSecurity        *self = NM_SETTING_WIRELESS_SECURITY(object);
     NMSettingWirelessSecurityPrivate *priv = NM_SETTING_WIRELESS_SECURITY_GET_PRIVATE(self);
 
-    g_free(priv->key_mgmt);
-    g_free(priv->auth_alg);
-    g_free(priv->leap_username);
-    nm_free_secret(priv->wep_key0);
-    nm_free_secret(priv->wep_key1);
-    nm_free_secret(priv->wep_key2);
-    nm_free_secret(priv->wep_key3);
-    nm_free_secret(priv->psk);
-    nm_free_secret(priv->leap_password);
-
     g_slist_free_full(priv->proto, g_free);
     g_slist_free_full(priv->pairwise, g_free);
     g_slist_free_full(priv->group, g_free);
@@ -1518,9 +1385,9 @@ finalize(GObject *object)
 static void
 nm_setting_wireless_security_class_init(NMSettingWirelessSecurityClass *klass)
 {
-    GObjectClass *  object_class        = G_OBJECT_CLASS(klass);
+    GObjectClass   *object_class        = G_OBJECT_CLASS(klass);
     NMSettingClass *setting_class       = NM_SETTING_CLASS(klass);
-    GArray *        properties_override = _nm_sett_info_property_override_create_array();
+    GArray         *properties_override = _nm_sett_info_property_override_create_array();
 
     g_type_class_add_private(klass, sizeof(NMSettingWirelessSecurityPrivate));
 
@@ -1552,12 +1419,14 @@ nm_setting_wireless_security_class_init(NMSettingWirelessSecurityClass *klass)
      * description: Key management method.
      * ---end---
      */
-    obj_properties[PROP_KEY_MGMT] =
-        g_param_spec_string(NM_SETTING_WIRELESS_SECURITY_KEY_MGMT,
-                            "",
-                            "",
-                            NULL,
-                            G_PARAM_READWRITE | NM_SETTING_PARAM_REQUIRED | G_PARAM_STATIC_STRINGS);
+    _nm_setting_property_define_direct_string(properties_override,
+                                              obj_properties,
+                                              NM_SETTING_WIRELESS_SECURITY_KEY_MGMT,
+                                              PROP_KEY_MGMT,
+                                              NM_SETTING_PARAM_REQUIRED,
+                                              NMSettingWirelessSecurityPrivate,
+                                              key_mgmt,
+                                              .direct_set_string_ascii_strdown = TRUE);
 
     /**
      * NMSettingWirelessSecurity:wep-tx-keyidx:
@@ -1572,17 +1441,20 @@ nm_setting_wireless_security_class_init(NMSettingWirelessSecurityClass *klass)
      * variable: DEFAULTKEY
      * values: 1, 2, 3, 4
      * default: 1
-     * description: Index of active WEP key.
+     * description: Index of active WEP key. Note that in ifcfg format the index starts counting
+     *   at 1, while NetworkManager API otherwise is zero based.
      * ---end---
      */
-    obj_properties[PROP_WEP_TX_KEYIDX] =
-        g_param_spec_uint(NM_SETTING_WIRELESS_SECURITY_WEP_TX_KEYIDX,
-                          "",
-                          "",
-                          0,
-                          3,
-                          0,
-                          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+    _nm_setting_property_define_direct_uint32(properties_override,
+                                              obj_properties,
+                                              NM_SETTING_WIRELESS_SECURITY_WEP_TX_KEYIDX,
+                                              PROP_WEP_TX_KEYIDX,
+                                              0,
+                                              3,
+                                              0,
+                                              NM_SETTING_PARAM_NONE,
+                                              NMSettingWirelessSecurityPrivate,
+                                              wep_tx_keyidx);
 
     /**
      * NMSettingWirelessSecurity:auth-alg:
@@ -1600,11 +1472,14 @@ nm_setting_wireless_security_class_init(NMSettingWirelessSecurityClass *klass)
      * description: Authentication algorithm for WEP.
      * ---end---
      */
-    obj_properties[PROP_AUTH_ALG] = g_param_spec_string(NM_SETTING_WIRELESS_SECURITY_AUTH_ALG,
-                                                        "",
-                                                        "",
-                                                        NULL,
-                                                        G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+    _nm_setting_property_define_direct_string(properties_override,
+                                              obj_properties,
+                                              NM_SETTING_WIRELESS_SECURITY_AUTH_ALG,
+                                              PROP_AUTH_ALG,
+                                              NM_SETTING_PARAM_NONE,
+                                              NMSettingWirelessSecurityPrivate,
+                                              auth_alg,
+                                              .direct_set_string_ascii_strdown = TRUE);
 
     /**
      * NMSettingWirelessSecurity:proto:
@@ -1693,14 +1568,16 @@ nm_setting_wireless_security_class_init(NMSettingWirelessSecurityClass *klass)
      * example: PMF=required
      * ---end---
      */
-    obj_properties[PROP_PMF] = g_param_spec_int(NM_SETTING_WIRELESS_SECURITY_PMF,
-                                                "",
-                                                "",
-                                                G_MININT32,
-                                                G_MAXINT32,
-                                                0,
-                                                G_PARAM_READWRITE | NM_SETTING_PARAM_FUZZY_IGNORE
-                                                    | G_PARAM_STATIC_STRINGS);
+    _nm_setting_property_define_direct_int32(properties_override,
+                                             obj_properties,
+                                             NM_SETTING_WIRELESS_SECURITY_PMF,
+                                             PROP_PMF,
+                                             G_MININT32,
+                                             G_MAXINT32,
+                                             0,
+                                             NM_SETTING_PARAM_FUZZY_IGNORE,
+                                             NMSettingWirelessSecurityPrivate,
+                                             pmf);
 
     /**
      * NMSettingWirelessSecurity:leap-username:
@@ -1714,12 +1591,13 @@ nm_setting_wireless_security_class_init(NMSettingWirelessSecurityClass *klass)
      * description: Login name for LEAP.
      * ---end---
      */
-    obj_properties[PROP_LEAP_USERNAME] =
-        g_param_spec_string(NM_SETTING_WIRELESS_SECURITY_LEAP_USERNAME,
-                            "",
-                            "",
-                            NULL,
-                            G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+    _nm_setting_property_define_direct_string(properties_override,
+                                              obj_properties,
+                                              NM_SETTING_WIRELESS_SECURITY_LEAP_USERNAME,
+                                              PROP_LEAP_USERNAME,
+                                              NM_SETTING_PARAM_NONE,
+                                              NMSettingWirelessSecurityPrivate,
+                                              leap_username);
 
     /**
      * NMSettingWirelessSecurity:wep-key0:
@@ -1733,12 +1611,13 @@ nm_setting_wireless_security_class_init(NMSettingWirelessSecurityClass *klass)
      * description: The first WEP key (used in most networks). See also DEFAULTKEY for key index.
      * ---end---
      */
-    obj_properties[PROP_WEP_KEY0] =
-        g_param_spec_string(NM_SETTING_WIRELESS_SECURITY_WEP_KEY0,
-                            "",
-                            "",
-                            NULL,
-                            G_PARAM_READWRITE | NM_SETTING_PARAM_SECRET | G_PARAM_STATIC_STRINGS);
+    _nm_setting_property_define_direct_string(properties_override,
+                                              obj_properties,
+                                              NM_SETTING_WIRELESS_SECURITY_WEP_KEY0,
+                                              PROP_WEP_KEY0,
+                                              NM_SETTING_PARAM_SECRET,
+                                              NMSettingWirelessSecurityPrivate,
+                                              wep_key0);
 
     /**
      * NMSettingWirelessSecurity:wep-key1:
@@ -1752,12 +1631,13 @@ nm_setting_wireless_security_class_init(NMSettingWirelessSecurityClass *klass)
      * description: WEP key with index 1. See also DEFAULTKEY for key index.
      * ---end---
      */
-    obj_properties[PROP_WEP_KEY1] =
-        g_param_spec_string(NM_SETTING_WIRELESS_SECURITY_WEP_KEY1,
-                            "",
-                            "",
-                            NULL,
-                            G_PARAM_READWRITE | NM_SETTING_PARAM_SECRET | G_PARAM_STATIC_STRINGS);
+    _nm_setting_property_define_direct_string(properties_override,
+                                              obj_properties,
+                                              NM_SETTING_WIRELESS_SECURITY_WEP_KEY1,
+                                              PROP_WEP_KEY1,
+                                              NM_SETTING_PARAM_SECRET,
+                                              NMSettingWirelessSecurityPrivate,
+                                              wep_key1);
 
     /**
      * NMSettingWirelessSecurity:wep-key2:
@@ -1771,12 +1651,13 @@ nm_setting_wireless_security_class_init(NMSettingWirelessSecurityClass *klass)
      * description: WEP key with index 2. See also DEFAULTKEY for key index.
      * ---end---
      */
-    obj_properties[PROP_WEP_KEY2] =
-        g_param_spec_string(NM_SETTING_WIRELESS_SECURITY_WEP_KEY2,
-                            "",
-                            "",
-                            NULL,
-                            G_PARAM_READWRITE | NM_SETTING_PARAM_SECRET | G_PARAM_STATIC_STRINGS);
+    _nm_setting_property_define_direct_string(properties_override,
+                                              obj_properties,
+                                              NM_SETTING_WIRELESS_SECURITY_WEP_KEY2,
+                                              PROP_WEP_KEY2,
+                                              NM_SETTING_PARAM_SECRET,
+                                              NMSettingWirelessSecurityPrivate,
+                                              wep_key2);
 
     /**
      * NMSettingWirelessSecurity:wep-key3:
@@ -1790,12 +1671,13 @@ nm_setting_wireless_security_class_init(NMSettingWirelessSecurityClass *klass)
      * description: WEP key with index 3. See also DEFAULTKEY for key index.
      * ---end---
      */
-    obj_properties[PROP_WEP_KEY3] =
-        g_param_spec_string(NM_SETTING_WIRELESS_SECURITY_WEP_KEY3,
-                            "",
-                            "",
-                            NULL,
-                            G_PARAM_READWRITE | NM_SETTING_PARAM_SECRET | G_PARAM_STATIC_STRINGS);
+    _nm_setting_property_define_direct_string(properties_override,
+                                              obj_properties,
+                                              NM_SETTING_WIRELESS_SECURITY_WEP_KEY3,
+                                              PROP_WEP_KEY3,
+                                              NM_SETTING_PARAM_SECRET,
+                                              NMSettingWirelessSecurityPrivate,
+                                              wep_key3);
 
     /**
      * NMSettingWirelessSecurity:wep-key-flags:
@@ -1811,13 +1693,12 @@ nm_setting_wireless_security_class_init(NMSettingWirelessSecurityClass *klass)
      * description: Password flags for KEY<i>, KEY_PASSPHRASE<i> password.
      * ---end---
      */
-    obj_properties[PROP_WEP_KEY_FLAGS] =
-        g_param_spec_flags(NM_SETTING_WIRELESS_SECURITY_WEP_KEY_FLAGS,
-                           "",
-                           "",
-                           NM_TYPE_SETTING_SECRET_FLAGS,
-                           NM_SETTING_SECRET_FLAG_NONE,
-                           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+    _nm_setting_property_define_direct_secret_flags(properties_override,
+                                                    obj_properties,
+                                                    NM_SETTING_WIRELESS_SECURITY_WEP_KEY_FLAGS,
+                                                    PROP_WEP_KEY_FLAGS,
+                                                    NMSettingWirelessSecurityPrivate,
+                                                    wep_key_flags);
 
     /**
      * NMSettingWirelessSecurity:psk:
@@ -1834,12 +1715,13 @@ nm_setting_wireless_security_class_init(NMSettingWirelessSecurityClass *klass)
      * description: Pre-Shared-Key for WPA networks.
      * ---end---
      */
-    obj_properties[PROP_PSK] =
-        g_param_spec_string(NM_SETTING_WIRELESS_SECURITY_PSK,
-                            "",
-                            "",
-                            NULL,
-                            G_PARAM_READWRITE | NM_SETTING_PARAM_SECRET | G_PARAM_STATIC_STRINGS);
+    _nm_setting_property_define_direct_string(properties_override,
+                                              obj_properties,
+                                              NM_SETTING_WIRELESS_SECURITY_PSK,
+                                              PROP_PSK,
+                                              NM_SETTING_PARAM_SECRET,
+                                              NMSettingWirelessSecurityPrivate,
+                                              psk);
 
     /**
      * NMSettingWirelessSecurity:psk-flags:
@@ -1855,12 +1737,12 @@ nm_setting_wireless_security_class_init(NMSettingWirelessSecurityClass *klass)
      * example: WPA_PSK_FLAGS=user
      * ---end---
      */
-    obj_properties[PROP_PSK_FLAGS] = g_param_spec_flags(NM_SETTING_WIRELESS_SECURITY_PSK_FLAGS,
-                                                        "",
-                                                        "",
-                                                        NM_TYPE_SETTING_SECRET_FLAGS,
-                                                        NM_SETTING_SECRET_FLAG_NONE,
-                                                        G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+    _nm_setting_property_define_direct_secret_flags(properties_override,
+                                                    obj_properties,
+                                                    NM_SETTING_WIRELESS_SECURITY_PSK_FLAGS,
+                                                    PROP_PSK_FLAGS,
+                                                    NMSettingWirelessSecurityPrivate,
+                                                    psk_flags);
 
     /**
      * NMSettingWirelessSecurity:leap-password:
@@ -1875,12 +1757,13 @@ nm_setting_wireless_security_class_init(NMSettingWirelessSecurityClass *klass)
      *  lookaside file, or it can be owned by a secret agent.
      * ---end---
      */
-    obj_properties[PROP_LEAP_PASSWORD] =
-        g_param_spec_string(NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD,
-                            "",
-                            "",
-                            NULL,
-                            G_PARAM_READWRITE | NM_SETTING_PARAM_SECRET | G_PARAM_STATIC_STRINGS);
+    _nm_setting_property_define_direct_string(properties_override,
+                                              obj_properties,
+                                              NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD,
+                                              PROP_LEAP_PASSWORD,
+                                              NM_SETTING_PARAM_SECRET,
+                                              NMSettingWirelessSecurityPrivate,
+                                              leap_password);
 
     /**
      * NMSettingWirelessSecurity:leap-password-flags:
@@ -1895,13 +1778,13 @@ nm_setting_wireless_security_class_init(NMSettingWirelessSecurityClass *klass)
      * description: Password flags for IEEE_8021X_PASSWORD_FLAGS.
      * ---end---
      */
-    obj_properties[PROP_LEAP_PASSWORD_FLAGS] =
-        g_param_spec_flags(NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD_FLAGS,
-                           "",
-                           "",
-                           NM_TYPE_SETTING_SECRET_FLAGS,
-                           NM_SETTING_SECRET_FLAG_NONE,
-                           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+    _nm_setting_property_define_direct_secret_flags(
+        properties_override,
+        obj_properties,
+        NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD_FLAGS,
+        PROP_LEAP_PASSWORD_FLAGS,
+        NMSettingWirelessSecurityPrivate,
+        leap_password_flags);
 
     /**
      * NMSettingWirelessSecurity:wep-key-type:
@@ -1961,14 +1844,16 @@ nm_setting_wireless_security_class_init(NMSettingWirelessSecurityClass *klass)
      * example: WPS_METHOD=disabled, WPS_METHOD="pin pbc"
      * ---end---
      */
-    obj_properties[PROP_WPS_METHOD] = g_param_spec_uint(
-        NM_SETTING_WIRELESS_SECURITY_WPS_METHOD,
-        "",
-        "",
-        0,
-        G_MAXUINT32,
-        NM_SETTING_WIRELESS_SECURITY_WPS_METHOD_DEFAULT,
-        G_PARAM_READWRITE | NM_SETTING_PARAM_FUZZY_IGNORE | G_PARAM_STATIC_STRINGS);
+    _nm_setting_property_define_direct_uint32(properties_override,
+                                              obj_properties,
+                                              NM_SETTING_WIRELESS_SECURITY_WPS_METHOD,
+                                              PROP_WPS_METHOD,
+                                              0,
+                                              G_MAXUINT32,
+                                              NM_SETTING_WIRELESS_SECURITY_WPS_METHOD_DEFAULT,
+                                              NM_SETTING_PARAM_FUZZY_IGNORE,
+                                              NMSettingWirelessSecurityPrivate,
+                                              wps_method);
 
     /**
      * NMSettingWirelessSecurity:fils:
@@ -1992,14 +1877,16 @@ nm_setting_wireless_security_class_init(NMSettingWirelessSecurityClass *klass)
      * example: FILS=required
      * ---end---
      */
-    obj_properties[PROP_FILS] = g_param_spec_int(NM_SETTING_WIRELESS_SECURITY_FILS,
-                                                 "",
-                                                 "",
-                                                 G_MININT32,
-                                                 G_MAXINT32,
-                                                 0,
-                                                 G_PARAM_READWRITE | NM_SETTING_PARAM_FUZZY_IGNORE
-                                                     | G_PARAM_STATIC_STRINGS);
+    _nm_setting_property_define_direct_int32(properties_override,
+                                             obj_properties,
+                                             NM_SETTING_WIRELESS_SECURITY_FILS,
+                                             PROP_FILS,
+                                             G_MININT32,
+                                             G_MAXINT32,
+                                             0,
+                                             NM_SETTING_PARAM_FUZZY_IGNORE,
+                                             NMSettingWirelessSecurityPrivate,
+                                             fils);
 
     g_object_class_install_properties(object_class, _PROPERTY_ENUMS_LAST, obj_properties);