Current implementations of MS-CHAP and MS-CHAPv2 interpret the password as being a string of 256 UCS-2 characters, meaning that they can technically be an arbitrary collection of any value between 0 and U+FFFF, including the code points between U+D800 and U+DFFF that were reserved in Unicode 2.0 for UTF-16 surrogate pairs.
Since D-Bus requires strings to be valid UTF-8 (and in fact enforces this), there is no way to pass passwords containing such invalid characters. This patchset adds a new 8021x.password-raw field of type byte array, using it if the password field is unavailable. Note that to be useful this requires commit c48183fca2d32cd4 from wpasupplicant in order to support non-ASCII passwords during the MS-CHAP and MS-CHAPv2 handshake. libnm-util/libnm-util.ver | 2 + libnm-util/nm-setting-8021x.c | 90 +++++++++++++++++++- libnm-util/nm-setting-8021x.h | 4 + src/settings/plugins/keyfile/reader.c | 20 +++++ src/settings/plugins/keyfile/writer.c | 28 ++++++ src/supplicant-manager/nm-supplicant-config.c | 18 ++++- .../nm-supplicant-settings-verify.c | 27 ++++++- .../nm-supplicant-settings-verify.h | 1 + 8 files changed, 185 insertions(+), 5 deletions(-) _______________________________________________ networkmanager-list mailing list [email protected] http://mail.gnome.org/mailman/listinfo/networkmanager-list
