Skip to content

Conversation

msprotz
Copy link
Contributor

@msprotz msprotz commented Feb 20, 2023

Continuing the import of HACL* algorithms for hashlib, this time for legacy MD5 and SHA1.

@msprotz
Copy link
Contributor Author

msprotz commented Feb 20, 2023

(I still need to fixup python_hacl_namespaces.h but first want to make sure this PR works.)

@msprotz
Copy link
Contributor Author

msprotz commented Feb 21, 2023

@gpshead these are just build errors, apparently I didn't export the right CFLAGS somewhere

before I dig further into this, would you like all of the hacl files to be bundled into a single libhacl.a? or is it ok to rely on the existing build system to build single .o files for the non-sha2 algorithms?

@gpshead gpshead self-assigned this Feb 21, 2023
@gpshead gpshead marked this pull request as draft February 21, 2023 05:14
@gpshead
Copy link
Member

gpshead commented Feb 21, 2023

before I dig further into this, would you like all of the hacl files to be bundled into a single libhacl.a? or is it ok to rely on the existing build system to build single .o files for the non-sha2 algorithms?

I think what you've done in ths PR should work fine. one .c file for each of md5 and sha1, no specific need for a library.

from a build simplicity perspective with the way we have things set up in our plethora of build configs, the lesson from the sha2 stuff was not to reuse the same .c/.o/.a with non-static symbols in multiple extension modules. (i may not have needed the .a for sha2 in the end but i decided to leave it in place when merging sha256 and sha512 into sha2 - if we don't need it setup that way in the end it could be undone later to just be the .c file as these are)

@msprotz msprotz marked this pull request as ready for review February 21, 2023 18:57
@msprotz
Copy link
Contributor Author

msprotz commented Feb 21, 2023

Ok looks like we're good now. I'll get started on SHA3 while I wait for this one to land.

@gpshead gpshead added 🔨 test-with-buildbots Test PR w/ buildbots; report in status section 🔨 test-with-refleak-buildbots Test PR w/ refleak buildbots; report in status section labels Feb 22, 2023
@bedevere-bot
Copy link

🤖 New build scheduled with the buildbot fleet by @gpshead for commit b3dd4fd 🤖

If you want to schedule another build, you need to add the 🔨 test-with-buildbots label again.

@bedevere-bot
Copy link

🤖 New build scheduled with the buildbot fleet by @gpshead for commit b3dd4fd 🤖

If you want to schedule another build, you need to add the 🔨 test-with-refleak-buildbots label again.

@bedevere-bot bedevere-bot removed 🔨 test-with-buildbots Test PR w/ buildbots; report in status section 🔨 test-with-refleak-buildbots Test PR w/ refleak buildbots; report in status section labels Feb 22, 2023
@gpshead gpshead added the extension-modules C modules in the Modules dir label Feb 22, 2023
@msprotz
Copy link
Contributor Author

msprotz commented Feb 22, 2023

I'm not sure what to make of the buildbot run. Three failures are in test_zipfile, another one in test_asyncio, all seem unrelated to this PR.

@gpshead
Copy link
Member

gpshead commented Feb 22, 2023

I'm not sure what to make of the buildbot run. Three failures are in test_zipfile, another one in test_asyncio, all seem unrelated to this PR.

nothing to worry about. those look like flaky / poorly designed tests and/or infrastructure issues.

@gpshead gpshead merged commit fcadc7e into python:main Feb 22, 2023
carljm added a commit to carljm/cpython that referenced this pull request Feb 23, 2023
* main: (76 commits)
  Fix syntax error in struct doc example (python#102160)
  pythongh-99108: Import MD5 and SHA1 from HACL* (python#102089)
  pythonGH-101777: `queue.rst`: use 2 spaces after a period to be consistent. (python#102143)
  Few coverage nitpicks for the cmath module (python#102067)
  pythonGH-100982: Restrict `FOR_ITER_RANGE` to a single instruction to allow instrumentation. (pythonGH-101985)
  pythongh-102135: Update turtle docs to rename wikipedia demo to rosette (python#102137)
  pythongh-99942: python.pc on android/cygwin should link to libpython per configure.ac (pythonGH-100356)
  pythongh-95672 fix typo SkitTest to SkipTest (pythongh-102119)
  pythongh-101936: Update the default value of fp from io.StringIO to io.BytesIO (pythongh-102100)
  pythongh-102008: simplify test_except_star by using sys.exception() instead of sys.exc_info() (python#102009)
  pythongh-101903: Remove obsolete undefs for previously removed macros Py_EnterRecursiveCall and Py_LeaveRecursiveCall (python#101923)
  pythongh-100556: Improve clarity of `or` docs (python#100589)
  pythongh-101777: Make `PriorityQueue` docs slightly clearer (python#102026)
  pythongh-101965: Fix usage of Py_EnterRecursiveCall return value in _bisectmodule.c (pythonGH-101966)
  pythongh-101578: Amend exception docs (python#102057)
  pythongh-101961 fileinput.hookcompressed should not set the encoding value for the binary mode (pythongh-102068)
  pythongh-102056: Fix a few bugs in error handling of exception printing code (python#102078)
  pythongh-102011: use sys.exception() instead of sys.exc_info() in docs where possible (python#102012)
  pythongh-101566: Sync with zipp 3.14. (pythonGH-102018)
  pythonGH-99818: improve the documentation for zipfile.Path and Traversable (pythonGH-101589)
  ...
JelleZijlstra pushed a commit to JelleZijlstra/cpython that referenced this pull request Sep 10, 2024
Replaces our fallback non-OpenSSL MD5 and SHA1 implementations with those from HACL* as we've already done with SHA2.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
extension-modules C modules in the Modules dir
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants