summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKonstantin L. Metlov <metlov@fti.dn.ua>2022-12-16 19:57:08 +0300
committerJonah BrĂ¼chert <jbb@kaidan.im>2024-04-20 02:30:56 +0200
commite3c1625e2d37d01827d29b3b629090be2be57753 (patch)
tree036f969eb93d6096380ff4f327635b768b638342
parent9ad86b6feca85f2243c8d4145218b0d67346ae52 (diff)
downloadbcfg2-e3c1625e2d37d01827d29b3b629090be2be57753.tar.gz
bcfg2-e3c1625e2d37d01827d29b3b629090be2be57753.tar.bz2
bcfg2-e3c1625e2d37d01827d29b3b629090be2be57753.zip
do not attempt to convert b64decoded data to strings, this is not always possible
Signed-off-by: Konstantin L. Metlov <metlov@fti.dn.ua>
-rw-r--r--src/lib/Bcfg2/Compat.py8
1 files changed, 5 insertions, 3 deletions
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