Skip to content

Commit

Permalink
Introduce fips safe sha1, see issue #7611
Browse files Browse the repository at this point in the history
  • Loading branch information
lhupfeldt committed May 5, 2020
1 parent 8bbc7b8 commit 7d41edd
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 6 deletions.
3 changes: 1 addition & 2 deletions sphinx/ext/graphviz.py
Expand Up @@ -12,7 +12,6 @@
import posixpath
import re
import subprocess
from hashlib import sha1
from os import path
from subprocess import CalledProcessError, PIPE
from typing import Any, Dict, List, Tuple
Expand All @@ -25,7 +24,7 @@
from sphinx.application import Sphinx
from sphinx.errors import SphinxError
from sphinx.locale import _, __
from sphinx.util import logging
from sphinx.util import logging, sha1
from sphinx.util.docutils import SphinxDirective, SphinxTranslator
from sphinx.util.fileutil import copy_asset
from sphinx.util.i18n import search_image_for_language
Expand Down
3 changes: 1 addition & 2 deletions sphinx/ext/imgmath.py
Expand Up @@ -14,7 +14,6 @@
import subprocess
import sys
import tempfile
from hashlib import sha1
from os import path
from subprocess import CalledProcessError, PIPE
from typing import Any, Dict, List, Tuple
Expand All @@ -30,7 +29,7 @@
from sphinx.deprecation import RemovedInSphinx40Warning, deprecated_alias
from sphinx.errors import SphinxError
from sphinx.locale import _, __
from sphinx.util import logging
from sphinx.util import logging, sha1
from sphinx.util.math import get_node_equation_number, wrap_displaymath
from sphinx.util.osutil import ensuredir
from sphinx.util.png import read_png_depth, write_png_depth
Expand Down
3 changes: 1 addition & 2 deletions sphinx/transforms/post_transforms/images.py
Expand Up @@ -10,7 +10,6 @@

import os
import re
from hashlib import sha1
from math import ceil
from typing import Any, Dict, List, Tuple

Expand All @@ -19,7 +18,7 @@
from sphinx.application import Sphinx
from sphinx.locale import __
from sphinx.transforms import SphinxTransform
from sphinx.util import epoch_to_rfc1123, rfc1123_to_epoch
from sphinx.util import epoch_to_rfc1123, rfc1123_to_epoch, sha1
from sphinx.util import logging, requests
from sphinx.util.images import guess_mimetype, get_image_extension, parse_data_uri
from sphinx.util.osutil import ensuredir, movefile
Expand Down
14 changes: 14 additions & 0 deletions sphinx/util/__init__.py
Expand Up @@ -186,6 +186,20 @@ def md5(data=b'', **kwargs):
return hashlib.md5(data, **kwargs, usedforsecurity=False) # type: ignore


def sha1(data=b'', **kwargs):
"""Wrapper around hashlib.sha1
Attempt call with 'usedforsecurity=False' if we get a ValueError
See: https://github.com/sphinx-doc/sphinx/issues/7611
"""

try:
return hashlib.sha1(data, **kwargs) # type: ignore
except ValueError:
return hashlib.sha1(data, **kwargs, usedforsecurity=False) # type: ignore


class DownloadFiles(dict):
"""A special dictionary for download files.
Expand Down

0 comments on commit 7d41edd

Please sign in to comment.