From e3c1625e2d37d01827d29b3b629090be2be57753 Mon Sep 17 00:00:00 2001 From: "Konstantin L. Metlov" Date: Fri, 16 Dec 2022 19:57:08 +0300 Subject: do not attempt to convert b64decoded data to strings, this is not always possible Signed-off-by: Konstantin L. Metlov --- src/lib/Bcfg2/Compat.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'src/lib/Bcfg2') diff --git a/src/lib/Bcfg2/Compat.py b/src/lib/Bcfg2/Compat.py index 99ae0f677..28822d7b9 100644 --- a/src/lib/Bcfg2/Compat.py +++ b/src/lib/Bcfg2/Compat.py @@ -68,17 +68,19 @@ from functools import wraps from base64 import b64encode as _b64encode, b64decode as _b64decode +# the b64 encoded data are ASCII strings, but the decoded data can be +# arbitrary bytes, which are not necessarily meaningful in the context +# of any encoding @wraps(_b64encode) def b64encode(val, **kwargs): # pylint: disable=C0111 try: return _b64encode(val, **kwargs) except TypeError: - return _b64encode(val.encode('UTF-8'), **kwargs).decode('UTF-8') - + return _b64encode(val.encode('UTF-8'), **kwargs).decode('ascii') @wraps(_b64decode) def b64decode(val, **kwargs): # pylint: disable=C0111 - return _b64decode(val.encode('UTF-8'), **kwargs).decode('UTF-8') + return _b64decode(val.encode('ascii'), **kwargs) input = input -- cgit v1.2.3-1-g7c22