René's URL Explorer Experiment


Title: gh-99108: Import SHA2-224 and SHA2-256 from HACL* by msprotz · Pull Request #99109 · python/cpython · GitHub

Open Graph Title: gh-99108: Import SHA2-224 and SHA2-256 from HACL* by msprotz · Pull Request #99109 · python/cpython

X Title: gh-99108: Import SHA2-224 and SHA2-256 from HACL* by msprotz · Pull Request #99109 · python/cpython

Description: Issue #99108 is about replacing hashlib primitives (for the non-OpenSSL case) with verified implementations from HACL*. This is the first PR in the series, and focuses specifically on SHA2-256 and SHA2-224. This PR imports Hacl_Streaming_SHA2 into the Python tree. This is the HACL* implementation of SHA2, which combines a core implementation of SHA2 along with a layer of buffer management that allows updating the digest with any number of bytes. This supersedes the previous implementation in the tree. @franziskuskiefer was kind enough to benchmark the changes: in addition to being verified (thus providing significant safety and security improvements), this implementation also provides a sizeable performance boost! --------------------------------------------------------------- Benchmark Time CPU Iterations --------------------------------------------------------------- Sha2_256_Streaming 3163 ns 3160 ns 219353 // this PR LibTomCrypt_Sha2_256 5057 ns 5056 ns 136234 // library used by Python currently The changes in this PR are as follows: import the subset of HACL* that covers SHA2-256/224 into Modules/_hacl rewire sha256module.c to use the HACL* implementation To review the changes, one should focus on sha256module.c, and possibly Hacl_Streaming_SHA2.h which is the API entry point. The rest of the files are part of HACL* and are cherry-picked straight from the HACL* repository, so as to minimize the amount of hand-edits and facilitate future refreshes of the code, should HACL* land some performance improvements. The original code comes from https://github.com/project-everest/hacl-star/tree/master/dist/gcc-compatible. The various .h files in include/, krmllib/, etc. will be shared across (hopefully) future primitives imported from HACL*. I can trim those files to minimize the amount of includes, but then this will make refreshing the code in the future harder (since the trimming will have to be redone for each refresh). The code was originally authored by @karthikbhargavan and I; @polubelova and @R1kM provided a considerable amount of help over the past week, as we were overhauling our implementation to offer a significant performance boost (we want this first PR to be a good one!). Thanks to everyone involved in this team effort. There are a couple remarks left in the source code, but for now, I think it's better to open up a PR and start discussing. As promised, tagging @alex for this PR. Thanks so much! Issue: gh-99108

Open Graph Description: Issue #99108 is about replacing hashlib primitives (for the non-OpenSSL case) with verified implementations from HACL*. This is the first PR in the series, and focuses specifically on SHA2-256 and ...

X Description: Issue #99108 is about replacing hashlib primitives (for the non-OpenSSL case) with verified implementations from HACL*. This is the first PR in the series, and focuses specifically on SHA2-256 and ...

Opengraph URL: https://github.com/python/cpython/pull/99109

X: @github

direct link

Domain: github.com

route-pattern/:user_id/:repository/pull/:id/files(.:format)
route-controllerpull_requests
route-actionfiles
fetch-noncev2:784beb5e-9819-8cc3-026f-30764ab46ac6
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-idBBD4:345820:E2853B:136AD6A:6969F459
html-safe-noncea3bfc7edcc46f39f307233afd8057f8cf5d4b7f66288926e57b5d5b198f295d4
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJCQkQ0OjM0NTgyMDpFMjg1M0I6MTM2QUQ2QTo2OTY5RjQ1OSIsInZpc2l0b3JfaWQiOiI3Nzg3MDU0MTI2Mzc2NTQ3NDE3IiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0=
visitor-hmacb4861f22422c58f56893ba9d1c6f9b9272eb8f233f6d5d0543ea2c64e5bea37d
hovercard-subject-tagpull_request:1111359087
github-keyboard-shortcutsrepository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///pull_requests/show/files
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/python/cpython/pull/99109/files
twitter:imagehttps://avatars.githubusercontent.com/u/10673049?s=400&v=4
twitter:cardsummary_large_image
og:imagehttps://avatars.githubusercontent.com/u/10673049?s=400&v=4
og:image:altIssue #99108 is about replacing hashlib primitives (for the non-OpenSSL case) with verified implementations from HACL*. This is the first PR in the series, and focuses specifically on SHA2-256 and ...
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
None7b32f1c7c4549428ee399213e8345494fc55b5637195d3fc5f493657579235e8
turbo-cache-controlno-preview
diff-viewunified
go-importgithub.com/python/cpython git https://github.com/python/cpython.git
octolytics-dimension-user_id1525981
octolytics-dimension-user_loginpython
octolytics-dimension-repository_id81598961
octolytics-dimension-repository_nwopython/cpython
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id81598961
octolytics-dimension-repository_network_root_nwopython/cpython
turbo-body-classeslogged-out env-production page-responsive full-width
disable-turbotrue
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
releasebdde15ad1b403e23b08bbd89b53fbe6bdf688cad
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/python/cpython/pull/99109/files#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fpython%2Fcpython%2Fpull%2F99109%2Ffiles
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub SparkBuild and deploy intelligent appshttps://github.com/features/spark
GitHub ModelsManage and compare promptshttps://github.com/features/models
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
GitHub SponsorsFund open source developershttps://github.com/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/accelerator
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://github.com/security/advanced-security
Copilot for BusinessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fpython%2Fcpython%2Fpull%2F99109%2Ffiles
Sign up https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fpull_requests%2Fshow%2Ffiles&source=header-repo&source_repo=python%2Fcpython
Reloadhttps://github.com/python/cpython/pull/99109/files
Reloadhttps://github.com/python/cpython/pull/99109/files
Reloadhttps://github.com/python/cpython/pull/99109/files
python https://github.com/python
cpythonhttps://github.com/python/cpython
Please reload this pagehttps://github.com/python/cpython/pull/99109/files
Notifications https://github.com/login?return_to=%2Fpython%2Fcpython
Fork 33.9k https://github.com/login?return_to=%2Fpython%2Fcpython
Star 71.1k https://github.com/login?return_to=%2Fpython%2Fcpython
Code https://github.com/python/cpython
Issues 5k+ https://github.com/python/cpython/issues
Pull requests 2.1k https://github.com/python/cpython/pulls
Actions https://github.com/python/cpython/actions
Projects 31 https://github.com/python/cpython/projects
Security Uh oh! There was an error while loading. Please reload this page. https://github.com/python/cpython/security
Please reload this pagehttps://github.com/python/cpython/pull/99109/files
Insights https://github.com/python/cpython/pulse
Code https://github.com/python/cpython
Issues https://github.com/python/cpython/issues
Pull requests https://github.com/python/cpython/pulls
Actions https://github.com/python/cpython/actions
Projects https://github.com/python/cpython/projects
Security https://github.com/python/cpython/security
Insights https://github.com/python/cpython/pulse
Sign up for GitHub https://github.com/signup?return_to=%2Fpython%2Fcpython%2Fissues%2Fnew%2Fchoose
terms of servicehttps://docs.github.com/terms
privacy statementhttps://docs.github.com/privacy
Sign inhttps://github.com/login?return_to=%2Fpython%2Fcpython%2Fissues%2Fnew%2Fchoose
gpsheadhttps://github.com/gpshead
python:mainhttps://github.com/python/cpython/tree/main
msprotz:sha2_haclhttps://github.com/msprotz/cpython/tree/sha2_hacl
Conversation 40 https://github.com/python/cpython/pull/99109
Commits 36 https://github.com/python/cpython/pull/99109/commits
Checks 0 https://github.com/python/cpython/pull/99109/checks
Files changed https://github.com/python/cpython/pull/99109/files
Please reload this pagehttps://github.com/python/cpython/pull/99109/files
gh-99108: Import SHA2-224 and SHA2-256 from HACL* https://github.com/python/cpython/pull/99109/files#top
Show all changes 36 commits https://github.com/python/cpython/pull/99109/files
f941537 Replace SHA2 implementation with verified code from HACL* msprotz Nov 4, 2022 https://github.com/python/cpython/pull/99109/commits/f941537517177ebd342f1375eba70fc89beabb70
89712f6 Fixup some casts msprotz Nov 4, 2022 https://github.com/python/cpython/pull/99109/commits/89712f60e70bc28056f94cba62548b3013f591a8
21fddf1 And proper error handling for maximum hashing lengths exceeded msprotz Nov 4, 2022 https://github.com/python/cpython/pull/99109/commits/21fddf15a5e78a7a3f98cfe4f35ae37874702e63
6c5498e Remove extra file msprotz Nov 4, 2022 https://github.com/python/cpython/pull/99109/commits/6c5498eb892623df036b17fbaa77a352ba78dee4
77c682c See if using srcdir helps msprotz Nov 4, 2022 https://github.com/python/cpython/pull/99109/commits/77c682c633d6652683feee4fb3b3451184e3b58b
1586188 Delete 11 un-needed files msprotz Nov 7, 2022 https://github.com/python/cpython/pull/99109/commits/158618826c66d2c39f2ff08dabf9b4b8558a2504
621ef0d Wrong direction for error checking msprotz Nov 7, 2022 https://github.com/python/cpython/pull/99109/commits/621ef0dd112e61cbdc5c73a00c31f4b4128d51a6
81cac0f Remove another four files msprotz Nov 7, 2022 https://github.com/python/cpython/pull/99109/commits/81cac0f7f0cd178449f8fd065abfc97625e99d3b
5134c6a better code quality msprotz Nov 7, 2022 https://github.com/python/cpython/pull/99109/commits/5134c6ab723071a7b1fe28b07a0479856f2a000e
f212447 Fixup memory management mistake msprotz Nov 7, 2022 https://github.com/python/cpython/pull/99109/commits/f21244796b3f3d13078d2d1ca34ba346a7bf622a
6543fdd Fix Linux build msprotz Nov 7, 2022 https://github.com/python/cpython/pull/99109/commits/6543fdd1f153175a267e36168a3b686dd3b094e4
a52e9ce Address review comments from @tiran; regenerate configure msprotz Nov 8, 2022 https://github.com/python/cpython/pull/99109/commits/a52e9ce7c69660ed2aee47d9f7676f86b7a96792
de35332 Merge remote-tracking branch 'origin/sha2_hacl' into sha2_hacl msprotz Nov 8, 2022 https://github.com/python/cpython/pull/99109/commits/de353321143f704be724567caae244b664462128
7f997a9 Move Linux & BSD CFLAGS into configure msprotz Nov 8, 2022 https://github.com/python/cpython/pull/99109/commits/7f997a9aed641494db1789092bdf839d566c6118
ec36acb Add NEWS entry. msprotz Nov 8, 2022 https://github.com/python/cpython/pull/99109/commits/ec36acb46039e19de21db30ed2048a802b40f194
c5d5e67 SRCDIRS msprotz Nov 8, 2022 https://github.com/python/cpython/pull/99109/commits/c5d5e67b08d824ad54055359bef012862e244869
adc0b8b Properly regenerate configure msprotz Nov 8, 2022 https://github.com/python/cpython/pull/99109/commits/adc0b8b1fe50e9d1ad3064caba34b043949d8158
ca1e02e Fix paths in Windows build msprotz Nov 8, 2022 https://github.com/python/cpython/pull/99109/commits/ca1e02e16af8f1620c7d81e339a923c35780f014
47be718 Add include directory msprotz Nov 8, 2022 https://github.com/python/cpython/pull/99109/commits/47be718fe68c528b1b41c90a33a79b13492a0944
b508177 Fixup include paths msprotz Nov 8, 2022 https://github.com/python/cpython/pull/99109/commits/b5081778e8349b0f55831b65fc449fa2cb6ba1eb
e893889 Fix patchcheck msprotz Nov 9, 2022 https://github.com/python/cpython/pull/99109/commits/e893889a4cdd56f96b1e3eace555c7b1b57e0381
1c82dc2 Automate import of HACL* into the tree with a script msprotz Dec 20, 2022 https://github.com/python/cpython/pull/99109/commits/1c82dc2c19e8ed5284e9c194e71f60a50bee6c75
a632c84 Use newly-implemented copy operation msprotz Dec 20, 2022 https://github.com/python/cpython/pull/99109/commits/a632c84b6c09e87b51378821f171f1ddce8df6aa
60d87fe Merge remote-tracking branch 'upstream/main' into sha2_hacl msprotz Dec 20, 2022 https://github.com/python/cpython/pull/99109/commits/60d87fe7958faba95c0f7ac4c6585c6507b3fb22
f4b267e Add a suitable test for data > 4GB msprotz Dec 20, 2022 https://github.com/python/cpython/pull/99109/commits/f4b267ebe24d5b8c33001b11eaab68a8f10e575c
537831e Make more robust & follow shellcheck. gpshead Jan 31, 2023 https://github.com/python/cpython/pull/99109/commits/537831e052b16849946d92376ee6f1344806df21
f33e2ef Update to the latest HACL* revision. gpshead Jan 31, 2023 https://github.com/python/cpython/pull/99109/commits/f33e2efe612e6c575d8d93ac5d9346c8e2396237
ce292e7 Add a README to the _hacl directory. gpshead Jan 31, 2023 https://github.com/python/cpython/pull/99109/commits/ce292e751b0b8df0de35437e7d4613b2d308d70f
aa24fd4 reword and ReSTify the news entry. gpshead Jan 31, 2023 https://github.com/python/cpython/pull/99109/commits/aa24fd4332608f7c5f83e2c7bc8dd673e003ce1d
29fd3c9 Dynamically rename the Hacl_ C symbols. gpshead Jan 31, 2023 https://github.com/python/cpython/pull/99109/commits/29fd3c94f4de81800314f3704def039e76bfe06f
0362c1a missing file add & readme update. gpshead Jan 31, 2023 https://github.com/python/cpython/pull/99109/commits/0362c1a850cc3118e5bde394ad49f5d8238cbb90
0f33a6a _ gpshead Jan 31, 2023 https://github.com/python/cpython/pull/99109/commits/0f33a6aed87dc84731bcb86b9ec471e0531729f3
d7c1240 remove wrongly placed defines. gpshead Jan 31, 2023 https://github.com/python/cpython/pull/99109/commits/d7c12407dfc18796bb9632ab5c7175d9456c3ebb
9ec37a6 Merge branch 'main' into sha2_hacl gpshead Jan 31, 2023 https://github.com/python/cpython/pull/99109/commits/9ec37a69f7f805050d2353626bf05ea81add3794
92033ad Stylistic fix in Modules/sha256module.c msprotz Jan 31, 2023 https://github.com/python/cpython/pull/99109/commits/92033ad520892d39664e92e9c7e2d43fa99658d4
c670530 Fix a warning on Windows builders msprotz Jan 31, 2023 https://github.com/python/cpython/pull/99109/commits/c6705301aa34287457dd4d1c4b7fc147c3d9912e
Clear filters https://github.com/python/cpython/pull/99109/files
Please reload this pagehttps://github.com/python/cpython/pull/99109/files
Please reload this pagehttps://github.com/python/cpython/pull/99109/files
test_hashlib.py https://github.com/python/cpython/pull/99109/files#diff-b19facaf857653d4f07afbb090181f595ef4c9381f2abcd2917abd4f3529e8fe
Makefile.pre.in https://github.com/python/cpython/pull/99109/files#diff-1f0a8db227d22005511b0d90f5339b97db345917b863954b3b3ccb9ec308767c
2022-11-08-12-06-52.gh-issue-99108.4Wrsuh.rst https://github.com/python/cpython/pull/99109/files#diff-418bd900038462be33a6fd20e59cd3de4b2c36f36565d6ad53b9349d908e32b5
Setup.stdlib.in https://github.com/python/cpython/pull/99109/files#diff-93b54a98829ea89eaf6335c02f546511f7780d865131407436b10a401ecd375c
Hacl_Streaming_SHA2.c https://github.com/python/cpython/pull/99109/files#diff-2134455b58317c2db61f5e7352ba76479f703912495a2f61023e25938a442d81
Hacl_Streaming_SHA2.h https://github.com/python/cpython/pull/99109/files#diff-01187270217d7faf26657edc3efb70a2750b2e2d80d19d435b35510261cce1db
README.md https://github.com/python/cpython/pull/99109/files#diff-714445c55d9117a7cdb15c1be7e7d77f04374405398083f801e40ba94a841719
FStar_UInt_8_16_32_64.h https://github.com/python/cpython/pull/99109/files#diff-adbd9eaffe2790f798efe005eed150474404a87180fcefb3c3537eb16f160208
target.h https://github.com/python/cpython/pull/99109/files#diff-4e0b32eb307016d995bd07aecc023fd64b4e4dfec51efaec1a3b114b8cfb4e66
lowstar_endianness.h https://github.com/python/cpython/pull/99109/files#diff-9cf68c2d7930309a18033ba6368abc69455201adbdf57e1b2a837b9eea052411
python_hacl_namespaces.h https://github.com/python/cpython/pull/99109/files#diff-f70819f5739923cf40c94eb7c56172dcbbf628bd1dd01ffd11dfd78cb6482bcb
Hacl_SHA2_Generic.h https://github.com/python/cpython/pull/99109/files#diff-a8853f794ea2b20b90536c7acf5936ec3bb724b246cdf2c76238eaff97119500
refresh.sh https://github.com/python/cpython/pull/99109/files#diff-220f73728af1ba08f27ea6c6ee3cd61a725a7f821ffb12690fc9d5b34f270671
sha256module.c https://github.com/python/cpython/pull/99109/files#diff-bd12eced5bcacc6d04c37e55f1bf1b504b92684d9ca48867e040295ffc33c8c9
pythoncore.vcxproj https://github.com/python/cpython/pull/99109/files#diff-4295039788386c2986b811f2a6b59cf088be59822b24b4f1243c9e9b184f65fb
pythoncore.vcxproj.filters https://github.com/python/cpython/pull/99109/files#diff-9e715828befc9c50c8b483b06d4923cda0db44f57d0c20e6a6d428ba60bfa0c5
configure https://github.com/python/cpython/pull/99109/files#diff-90d08e583c4c9c6f391b2ae90f819f600a6326928ea9512c9e0c6d98e9f29ac2
configure.ac https://github.com/python/cpython/pull/99109/files#diff-49473dca262eeab3b4a43002adb08b4db31020d190caaad1594b47f1d5daa810
https://github.com/python/cpython/blob/main/.github/CODEOWNERS#L384
Lib/test/test_hashlib.pyhttps://github.com/python/cpython/pull/99109/files#diff-b19facaf857653d4f07afbb090181f595ef4c9381f2abcd2917abd4f3529e8fe
View file https://github.com/msprotz/cpython/blob/c6705301aa34287457dd4d1c4b7fc147c3d9912e/Lib/test/test_hashlib.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/python/cpython/pull/99109/{{ revealButtonHref }}
https://github.com/python/cpython/pull/99109/files#diff-b19facaf857653d4f07afbb090181f595ef4c9381f2abcd2917abd4f3529e8fe
https://github.com/python/cpython/pull/99109/files#diff-b19facaf857653d4f07afbb090181f595ef4c9381f2abcd2917abd4f3529e8fe
https://github.com/python/cpython/pull/99109/files#diff-b19facaf857653d4f07afbb090181f595ef4c9381f2abcd2917abd4f3529e8fe
https://github.com/python/cpython/pull/99109/files#diff-b19facaf857653d4f07afbb090181f595ef4c9381f2abcd2917abd4f3529e8fe
https://github.com/python/cpython/blob/main/.github/CODEOWNERS#L84
Makefile.pre.inhttps://github.com/python/cpython/pull/99109/files#diff-1f0a8db227d22005511b0d90f5339b97db345917b863954b3b3ccb9ec308767c
View file https://github.com/msprotz/cpython/blob/c6705301aa34287457dd4d1c4b7fc147c3d9912e/Makefile.pre.in
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/python/cpython/pull/99109/{{ revealButtonHref }}
https://github.com/python/cpython/pull/99109/files#diff-1f0a8db227d22005511b0d90f5339b97db345917b863954b3b3ccb9ec308767c
https://github.com/python/cpython/pull/99109/files#diff-1f0a8db227d22005511b0d90f5339b97db345917b863954b3b3ccb9ec308767c
Misc/NEWS.d/next/Security/2022-11-08-12-06-52.gh-issue-99108.4Wrsuh.rsthttps://github.com/python/cpython/pull/99109/files#diff-418bd900038462be33a6fd20e59cd3de4b2c36f36565d6ad53b9349d908e32b5
View file https://github.com/msprotz/cpython/blob/c6705301aa34287457dd4d1c4b7fc147c3d9912e/Misc/NEWS.d/next/Security/2022-11-08-12-06-52.gh-issue-99108.4Wrsuh.rst
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/python/cpython/pull/99109/{{ revealButtonHref }}
https://github.com/python/cpython/blob/main/.github/CODEOWNERS#L86
Modules/Setup.stdlib.inhttps://github.com/python/cpython/pull/99109/files#diff-93b54a98829ea89eaf6335c02f546511f7780d865131407436b10a401ecd375c
View file https://github.com/msprotz/cpython/blob/c6705301aa34287457dd4d1c4b7fc147c3d9912e/Modules/Setup.stdlib.in
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/python/cpython/pull/99109/{{ revealButtonHref }}
https://github.com/python/cpython/pull/99109/files#diff-93b54a98829ea89eaf6335c02f546511f7780d865131407436b10a401ecd375c
https://github.com/python/cpython/pull/99109/files#diff-93b54a98829ea89eaf6335c02f546511f7780d865131407436b10a401ecd375c
Please reload this pagehttps://github.com/python/cpython/pull/99109/files
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.