-
Notifications
You must be signed in to change notification settings - Fork 419
python-3.{10,11}: enable FIPS compatible multiprocessing #73268
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Backport a slimmed down version of stronger hash algorithm support for multiprocessing; this change is backwards compatible in non-FIPS environments with older client/server versions. Clients in FIPS environments presenting MD5 based HMAC digests will be rejected.
|
Looks good to me i appreciate thta it's smaller. I wish we would number our patches though I'd like to start making development work for some of this easier a long the lines of: chainguard-dev/melange#2170 |
|
Also tested with Chainguard's FIPS openssl configurations; test fails with the current versions of both packages and passes with the updates in this PR. Python 3.10 Python 3.11 |
|
I know I might be a bit of a stick-in-the-mud here, but should we run some reverse-dependency tests across our repositories? It shouldn't regress in theory, but since it is a change to a core component I'd recommend playing it safe. |
Great idea - and I need to record an apkregress video as well :) |
|
Nice! I was just going to copy the 3.12 How did you track down the DataDog patch? Is this submitted upstream in case there's a 3.11/3.10 update? Are these questions already answered somewhere? ;-) |
The DataDog commits are referenced in the Github issue that implemented this feature in 3.12. |
|
Python 3.11 RDT in Wofli: SummaryTotal packages found: 704 Packages with regressions:
re-ran the regressions - all where auth errors: Test Results✅ py3-cppy: PASS (with repo, without-repo test skipped) |
|
So they're good now, or they're now producing auth errors? I'm a bit slow this morning! 😅 I'd expect the new code to only fail if an older MD5 connection was being tested in FIPS mode, otherwise it should just work either way. |
APK Regression Test SummaryPackage: python-3.10 Test Results
🔴 Packages with RegressionsThe following packages fail with the new APK repository but pass without it, indicating potential regressions:
Retested single concurrency for regressions: APK Regression Test SummaryPackage: 7 packages from file Test Results
✅ All Tests PassedNo regressions were detected. All packages either passed with the new repository or failed consistently in both scenarios. |
That was a bit confusing - the auth failure was 401's on apk.cgr.dev in my test environment so we're all good now! |
|
I'd like todo some testing in other repos so maybe early next week to land this change. |
APK Regression Test Summary - enterprise-packagesPackage: python-3.10 Test Results
🔴 Packages with RegressionsThe following packages fail with the new APK repository but pass without it, indicating potential regressions:
⏰ Tests That HungThe following tests were killed after 30m0s timeout:
Reran the regressions - all passed: APK Regression Test Summary - enterprise-packagesPackage: 7 packages from file Test Results
✅ All Tests Passed |
APK Regression Test Summary - enterprise-packagesPackage: python-3.11 Test Results
🔴 Packages with RegressionsThe following packages fail with the new APK repository but pass without it, indicating potential regressions:
⏰ Tests That HungThe following tests were killed after 30m0s timeout:
Re-ran wthe five failures: APK Regression Test SummaryPackage: 5 packages from file Test Results
✅ All Tests PassedNo regressions were detected. All packages either passed with the new repository or failed consistently in both scenarios. |
Pick a patch from DataDog's Python 3.11 + 3.10 branches to default multiprocessing to use SHA256, with fallback to MD5 if needed/available.
This is based on the changes made for 3.12+ and authored by the same Python core developer.