summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2020-05-27 12:14:26 +0200
committerThomas Haller <thaller@redhat.com>2020-05-29 13:27:42 +0200
commitd286e3dc28748b721739e688e6abb3fe6f0e1a36 (patch)
tree181371d40450eaedf47ef907437a65f11853d8ed
parent80fccd5a16f3c700aa85026a9ac2ea163125b223 (diff)
downloadNetworkManager-d286e3dc28748b721739e688e6abb3fe6f0e1a36.tar.gz
ifcfg-rh: support persisting 802-1x.pin and pin-flags property
(cherry picked from commit 655fd1ebd8c1f14dc658f728109bc41e9362d740) (cherry picked from commit 799cee50689a27d04fa5a0e84fa515a55eeea7a4) (cherry picked from commit 77e1132845c5b8514838418085d0ab9d109cee48) (cherry picked from commit 73865ffb0b89c3eb8a563832813f72f6a1641348)
-rw-r--r--Makefile.am1
-rw-r--r--libnm-core/nm-setting-8021x.c8
-rw-r--r--src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-reader.c6
-rw-r--r--src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-writer.c7
-rw-r--r--src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-802-1x-password-raw2
-rw-r--r--src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wired-802-1x-password-raw1
-rw-r--r--src/settings/plugins/ifcfg-rh/tests/test-ifcfg-rh.c3
7 files changed, 24 insertions, 4 deletions
diff --git a/Makefile.am b/Makefile.am
index 086ef08000..3cf5d83949 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -3074,6 +3074,7 @@ EXTRA_DIST += \
src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-wpa-psk-hex \
src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-wpa-psk-unquoted \
src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-wpa-psk-unquoted2 \
+ src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wired-802-1x-password-raw \
src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wired-8021x-peap-mschapv2 \
src/settings/plugins/ifcfg-rh/tests/network-scripts/network-test-wired-defroute-no-gatewaydev-yes \
src/settings/plugins/ifcfg-rh/tests/network-scripts/network-test-wired-global-gateway \
diff --git a/libnm-core/nm-setting-8021x.c b/libnm-core/nm-setting-8021x.c
index 217f65a0e9..dbaad18a42 100644
--- a/libnm-core/nm-setting-8021x.c
+++ b/libnm-core/nm-setting-8021x.c
@@ -4345,8 +4345,8 @@ nm_setting_802_1x_class_init (NMSetting8021xClass *klass)
**/
/* ---ifcfg-rh---
* property: pin
- * variable: (none)
- * description: The property is not handled by ifcfg-rh plugin.
+ * variable: IEEE_8021X_PIN(+)
+ * description: The pin secret used for EAP authentication methods.
* ---end---
*/
obj_properties[PROP_PIN] =
@@ -4363,8 +4363,8 @@ nm_setting_802_1x_class_init (NMSetting8021xClass *klass)
**/
/* ---ifcfg-rh---
* property: pin-flags
- * variable: (none)
- * description: The property is not handled by ifcfg-rh plugin.
+ * variable: IEEE_8021X_PIN_FLAGS(+)
+ * description: The secret flags for the pin property.
* ---end---
*/
obj_properties[PROP_PIN_FLAGS] =
diff --git a/src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-reader.c b/src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-reader.c
index d1135d029d..ef234b823e 100644
--- a/src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-reader.c
+++ b/src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-reader.c
@@ -3580,6 +3580,12 @@ next:
v = svGetValueStr (ifcfg, "IEEE_8021X_PHASE2_CA_PATH", &value);
g_object_set (s_8021x, NM_SETTING_802_1X_PHASE2_CA_PATH, v, NULL);
+ _secret_set_from_ifcfg (s_8021x,
+ ifcfg,
+ keys_ifcfg,
+ "IEEE_8021X_PIN",
+ NM_SETTING_802_1X_PIN);
+
return g_steal_pointer (&s_8021x);
}
diff --git a/src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-writer.c b/src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-writer.c
index 35ca9c05f0..daf173b0be 100644
--- a/src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-writer.c
+++ b/src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-writer.c
@@ -558,6 +558,13 @@ write_8021x_setting (NMConnection *connection,
svSetValue (ifcfg, "IEEE_8021X_PHASE2_CA_PATH",
nm_setting_802_1x_get_phase2_ca_path (s_8021x));
+ set_secret (ifcfg,
+ secrets,
+ "IEEE_8021X_PIN",
+ nm_setting_802_1x_get_pin (s_8021x),
+ "IEEE_8021X_PIN_FLAGS",
+ nm_setting_802_1x_get_pin_flags (s_8021x));
+
if (!write_8021x_certs (s_8021x, secrets, blobs, FALSE, ifcfg, error))
return FALSE;
diff --git a/src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-802-1x-password-raw b/src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-802-1x-password-raw
index 181ffbef81..a5434434ba 100644
--- a/src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-802-1x-password-raw
+++ b/src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-802-1x-password-raw
@@ -11,3 +11,5 @@ IEEE_8021X_IDENTITY="Bill Smith"
IEEE_8021X_CA_CERT=test_ca_cert.pem
IEEE_8021X_INNER_AUTH_METHODS=EAP-GTC
IEEE_8021X_PASSWORD_RAW=0408151623420001
+#IEEE_8021X_PIN=hallo1
+IEEE_8021X_PIN_FLAGS=0
diff --git a/src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wired-802-1x-password-raw b/src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wired-802-1x-password-raw
new file mode 100644
index 0000000000..d29a428976
--- /dev/null
+++ b/src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wired-802-1x-password-raw
@@ -0,0 +1 @@
+IEEE_8021X_PIN=hallo2
diff --git a/src/settings/plugins/ifcfg-rh/tests/test-ifcfg-rh.c b/src/settings/plugins/ifcfg-rh/tests/test-ifcfg-rh.c
index eaaa749052..294e669b65 100644
--- a/src/settings/plugins/ifcfg-rh/tests/test-ifcfg-rh.c
+++ b/src/settings/plugins/ifcfg-rh/tests/test-ifcfg-rh.c
@@ -2024,6 +2024,9 @@ test_read_write_802_1x_password_raw (void)
==,
NM_SETTING_SECRET_FLAG_NONE);
+ g_assert_cmpstr (nm_setting_802_1x_get_pin (s_8021x), ==, "hallo2");
+ g_assert_cmpint (nm_setting_802_1x_get_pin_flags (s_8021x), ==, NM_SETTING_SECRET_FLAG_NONE);
+
_writer_new_connection (connection,
TEST_SCRATCH_DIR,
&testfile);