From 75e4a9eb929520d95cb55b2d850af7ba849fd014 Mon Sep 17 00:00:00 2001 From: Oyvind Albrigtsen Date: Mon, 28 Feb 2022 11:23:55 +0100 Subject: [PATCH] Use usedforsecurity=False for md5() calls to make suds work on FIPS enabled systems --- suds/reader.py | 7 ++++++- suds/wsse.py | 7 ++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/suds/reader.py b/suds/reader.py index 31c5ee7..3354b5d 100644 --- a/suds/reader.py +++ b/suds/reader.py @@ -58,7 +58,12 @@ def mangle(self, name, x): @rtype: str """ - h = md5(name.encode()).hexdigest() + try: + # FIPS requires usedforsecurity=False and might not be + # available on all distros: https://bugs.python.org/issue9216 + h = md5(name.encode(), usedforsecurity=False).hexdigest() + except AttributeError: + h = md5(name.encode()).hexdigest() return '%s-%s' % (h, x) diff --git a/suds/wsse.py b/suds/wsse.py index 96d9eb6..474d15a 100644 --- a/suds/wsse.py +++ b/suds/wsse.py @@ -158,7 +158,12 @@ def setnonce(self, text=None): s.append(self.username) s.append(self.password) s.append(Token.sysdate()) - m = md5() + try: + # FIPS requires usedforsecurity=False and might not be + # available on all distros: https://bugs.python.org/issue9216 + m = md5(usedforsecurity=False) + except AttributeError: + m = md5() m.update(':'.join(s)) self.nonce = m.hexdigest() else: