--- Werkzeug-0.8.3/werkzeug/contrib/cache.py +++ Werkzeug-0.8.3/werkzeug/contrib/cache.py @@ -625,7 +625,10 @@ class FileSystemCache(BaseCache): pass def _get_filename(self, key): - hash = md5(key).hexdigest() + try: + hash = md5(key).hexdigest() + except ValueError as err: + raise ValueError, "MD5 is disabled in FIPS mode (%s)." % err return os.path.join(self._path, hash) def get(self, key): --- Werkzeug-0.8.3/werkzeug/http.py +++ Werkzeug-0.8.3/werkzeug/http.py @@ -558,7 +558,10 @@ def parse_etags(value): def generate_etag(data): """Generate an etag for some data.""" - return md5(data).hexdigest() + try: + return md5(data).hexdigest() + except ValueError as err: + raise ValueError, "MD5 is disabled in FIPS mode (%s)." % err def parse_date(value): --- Werkzeug-0.8.3/werkzeug/security.py +++ Werkzeug-0.8.3/werkzeug/security.py @@ -72,7 +72,10 @@ def _hash_internal(method, salt, password): return None if isinstance(salt, unicode): salt = salt.encode('utf-8') - h = hmac.new(salt, None, _hash_mods[method]) + try: + h = hmac.new(salt, None, _hash_mods[method]) + except ValueError as err: + raise ValueError, "MD5 is disabled in FIPS mode (%s)." % err else: if method not in _hash_funcs: return None