sphinx-design icon indicating copy to clipboard operation
sphinx-design copied to clipboard

Add support for FIPS enabled systems

Open gabor-varga opened this issue 2 years ago • 1 comments

Describe the bug

context When using the extension on FIPS-enabled systems, hashlib.md5 fails (update_css_js:70) due to security reasons.

expectation The hashing should work, independently of FIPS being enabled or not.

bug The following exception is encountered instead:

Extension error (sphinx_design.extension):
Handler <function update_css_js at 0x7f44aa9b9280> for event 'builder-inited' threw an exception (exception: [digital envelope routines] unsupported)

problem This is a problem for users generating documentation on these systems.

solutions Changing the algorithm, or adding usedforsecurity=Flag kwarg seems to solve the issue.

hash = hashlib.md5(content.encode("utf8"), usedforsecurity=False).hexdigest()

or

hash = hashlib.sha256(content.encode("utf8")).hexdigest()

Reproduce the bug

  1. Enable FIPS on your system
  2. Try to generate documentation using sphinx-design
  3. Generation fails

List your environment

Standard python-3.9.

gabor-varga avatar Sep 08 '23 10:09 gabor-varga

Thanks for opening your first issue here! Engagement like this is essential for open source projects! :hugs:
If you haven't done so already, check out EBP's Code of Conduct. Also, please try to follow the issue template as it helps other community members to contribute more effectively.
If your issue is a feature request, others may react to it, to raise its prominence (see Feature Voting).
Welcome to the EBP community! :tada:

welcome[bot] avatar Sep 08 '23 10:09 welcome[bot]