gh-99108: Import MD5 and SHA1 from HACL*#102089
Conversation
|
(I still need to fixup |
|
@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? |
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) |
|
Ok looks like we're good now. I'll get started on SHA3 while I wait for this one to land. |
|
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. |
* 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) ...
Replaces our fallback non-OpenSSL MD5 and SHA1 implementations with those from HACL* as we've already done with SHA2.
Continuing the import of HACL* algorithms for hashlib, this time for legacy MD5 and SHA1.