From 485466d64902166ce64179995d98654834cac446 Mon Sep 17 00:00:00 2001 From: Tomas Kopecek Date: Jun 13 2019 16:03:36 +0000 Subject: pass bytes to sha1 constructor As preparation to use hashlib's constructors, fix passing correct datatype to sha1 constructor in web ui. Fixes: https://pagure.io/koji/issue/1486 --- diff --git a/www/kojiweb/index.py b/www/kojiweb/index.py index 79436a1..cff8aeb 100644 --- a/www/kojiweb/index.py +++ b/www/kojiweb/index.py @@ -55,8 +55,8 @@ def _setUserCookie(environ, user): value = user + ':' + str(int(time.time())) if not options['Secret'].value: raise koji.AuthError('Unable to authenticate, server secret not configured') - shasum = sha1_constructor(value) - shasum.update(options['Secret'].value) + shasum = sha1_constructor(value.encode('utf-8')) + shasum.update(options['Secret'].value.encode('utf-8')) value = "%s:%s" % (shasum.hexdigest(), value) cookies = six.moves.http_cookies.SimpleCookie() cookies['user'] = value @@ -92,8 +92,8 @@ def _getUserCookie(environ): sig, value = parts if not options['Secret'].value: raise koji.AuthError('Unable to authenticate, server secret not configured') - shasum = sha1_constructor(value) - shasum.update(options['Secret'].value) + shasum = sha1_constructor(value.encode('utf-8')) + shasum.update(options['Secret'].value.encode('utf-8')) if shasum.hexdigest() != sig: authlogger.warn('invalid user cookie: %s:%s', sig, value) return None