From b92dac72f3bb601837dde507597d47715c5ad1aa Mon Sep 17 00:00:00 2001 From: Florent Le Coz Date: Mon, 25 Aug 2014 00:57:28 +0200 Subject: Fix saslprep for non-ascii usernames --- slixmpp/util/sasl/mechanisms.py | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/slixmpp/util/sasl/mechanisms.py b/slixmpp/util/sasl/mechanisms.py index a05f17ae..b417fb46 100644 --- a/slixmpp/util/sasl/mechanisms.py +++ b/slixmpp/util/sasl/mechanisms.py @@ -223,17 +223,16 @@ class SCRAM(Mech): return self.hash(text).digest() def saslname(self, value): - escaped = b'' - for char in bytes(value): - if char == b',': + value = value.decode("utf-8") + escaped = [] + for char in value: + if char == ',': escaped += b'=2C' - elif char == b'=': + elif char == '=': escaped += b'=3D' else: - if isinstance(char, int): - char = chr(char) - escaped += bytes(char) - return escaped + escaped += char + return "".join(escaped).encode("utf-8") def parse(self, challenge): items = {} -- cgit v1.2.3