|
|
|
@ -1,9 +1,19 @@ |
|
|
|
|
|
|
|
{-# LANGUAGE OverloadedStrings #-} |
|
|
|
module Network.Xmpp.Sasl.StringPrep where |
|
|
|
module Network.Xmpp.Sasl.StringPrep where |
|
|
|
|
|
|
|
|
|
|
|
import Text.StringPrep |
|
|
|
import Text.StringPrep |
|
|
|
|
|
|
|
import qualified Data.Set as Set |
|
|
|
|
|
|
|
import Data.Text(singleton) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
nonAsciiSpaces = Set.fromList [ '\x00A0','\x1680','\x2000','\x2001','\x2002' |
|
|
|
|
|
|
|
, '\x2003', '\x2004','\x2005','\x2006','\x2007' |
|
|
|
|
|
|
|
, '\x2008','\x2009', '\x200A','\x200B' ,'\x202F' |
|
|
|
|
|
|
|
, '\x205F','\x3000'] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
toSpace x = if x `Set.member` nonAsciiSpaces then " " else singleton x |
|
|
|
|
|
|
|
|
|
|
|
saslPrepQuery = Profile |
|
|
|
saslPrepQuery = Profile |
|
|
|
[b1] |
|
|
|
[b1, toSpace] |
|
|
|
True |
|
|
|
True |
|
|
|
[ c12 |
|
|
|
[ c12 |
|
|
|
, c21 |
|
|
|
, c21 |
|
|
|
@ -19,7 +29,7 @@ saslPrepQuery = Profile |
|
|
|
True |
|
|
|
True |
|
|
|
|
|
|
|
|
|
|
|
saslPrepStore = Profile |
|
|
|
saslPrepStore = Profile |
|
|
|
[b1] |
|
|
|
[b1, toSpace] |
|
|
|
True |
|
|
|
True |
|
|
|
[ a1 |
|
|
|
[ a1 |
|
|
|
, c12 |
|
|
|
, c12 |
|
|
|
|