sphinx-design
sphinx-design copied to clipboard
Add support for FIPS enabled systems
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
- Enable FIPS on your system
- Try to generate documentation using
sphinx-design - Generation fails
List your environment
Standard python-3.9.
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: