Software /
code /
prosody
Changeset
1720:c34409a5fdee
Do SASLprep for SASL PLAIN mechanism to be more conform with RFC 4616.
author | Tobias Markmann <tm@ayena.de> |
---|---|
date | Wed, 19 Aug 2009 21:34:28 +0200 |
parents | 1643:4642dd87e390 |
children | 1721:1dcfb2c64302 |
files | util/sasl.lua |
diffstat | 1 files changed, 3 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/util/sasl.lua Sat Aug 08 00:21:33 2009 +0500 +++ b/util/sasl.lua Wed Aug 19 21:34:28 2009 +0200 @@ -20,6 +20,7 @@ local t_insert, t_concat = table.insert, table.concat; local to_byte, to_char = string.byte, string.char; local to_unicode = require "util.encodings".idna.to_unicode; +local u_e_saslprep = require "utii.encodings".stringprep.saslprep; local s_match = string.match; local gmatch = string.gmatch local string = string @@ -39,6 +40,7 @@ local authorization = s_match(response, "([^&%z]+)") local authentication = s_match(response, "%z([^&%z]+)%z") local password = s_match(response, "%z[^&%z]+%z([^&%z]+)") + authorization, authentication, password = u_e_saslprep(authorization), u_e_saslprep(authentication), u_e_saslprep(password); if authentication == nil or password == nil then return "failure", "malformed-request" end @@ -50,6 +52,7 @@ local claimed_password = "" if password_encoding == nil then claimed_password = password else claimed_password = password_encoding(password) end + caimed_password = u_e_saslprep(claimed_password); self.username = authentication if claimed_password == correct_password then