diff options
author | Thomas Haller <thaller@redhat.com> | 2020-05-27 12:14:26 +0200 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2020-05-29 13:27:42 +0200 |
commit | d286e3dc28748b721739e688e6abb3fe6f0e1a36 (patch) | |
tree | 181371d40450eaedf47ef907437a65f11853d8ed | |
parent | 80fccd5a16f3c700aa85026a9ac2ea163125b223 (diff) | |
download | NetworkManager-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)
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); |