summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorent Le Coz <louiz@louiz.org>2014-08-25 00:57:28 +0200
committerFlorent Le Coz <louiz@louiz.org>2014-08-25 00:59:23 +0200
commitb92dac72f3bb601837dde507597d47715c5ad1aa (patch)
treed0e166d1e902c9bbf82bad9a487a7029d1592dab
parentcdb9a6ff7e60b97493429e39ef17a06b1394a928 (diff)
downloadslixmpp-b92dac72f3bb601837dde507597d47715c5ad1aa.tar.gz
slixmpp-b92dac72f3bb601837dde507597d47715c5ad1aa.tar.bz2
slixmpp-b92dac72f3bb601837dde507597d47715c5ad1aa.tar.xz
slixmpp-b92dac72f3bb601837dde507597d47715c5ad1aa.zip
Fix saslprep for non-ascii usernames
-rw-r--r--slixmpp/util/sasl/mechanisms.py15
1 files 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 = {}