From ee2bcc69cb51a525a275d8679c3d1a67ad3eeadf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?poljar=20=28Damir=20Jeli=C4=87=29?= Date: Tue, 20 Feb 2018 10:59:44 +0100 Subject: [PATCH] Add sanitize_token() function. --- matrix/events.py | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/matrix/events.py b/matrix/events.py index 1fb7863..d2aca05 100644 --- a/matrix/events.py +++ b/matrix/events.py @@ -32,7 +32,17 @@ from matrix.utils import ( from matrix.colors import Formatted -def sanitize_id(string): +def sanitize_token(string): + # type: (str) -> str + string = sanitize_string(string) + + if len(string) > 512: + raise ValueError + + return string + + +def sanitize_string(string): # type: (str) -> str if not isinstance(string, str): raise TypeError @@ -49,6 +59,16 @@ def sanitize_id(string): return string.translate(remap) +def sanitize_id(string): + # type: (str) -> str + string = sanitize_string(string) + + if len(string) > 128: + raise ValueError + + return string + + def sanitize_age(age): # type: (int) -> int if not isinstance(age, int): @@ -143,7 +163,7 @@ class MatrixLoginEvent(MatrixEvent): return cls( server, sanitize_id(parsed_dict["user_id"]), - sanitize_id(parsed_dict["access_token"]) + sanitize_token(parsed_dict["access_token"]) ) except (KeyError, TypeError, ValueError): return MatrixErrorEvent.from_dict(