Title: Replace built-in hashlib with verified implementations from HACL* · Issue #99108 · python/cpython · GitHub
Open Graph Title: Replace built-in hashlib with verified implementations from HACL* · Issue #99108 · python/cpython
X Title: Replace built-in hashlib with verified implementations from HACL* · Issue #99108 · python/cpython
Description: Feature or enhancement We propose to replace the non-OpenSSL cryptographic primitives in hashlib with high-assurance, verified versions from the HACL* project. Pitch As evidenced by the recent SHA3 buffer overflow, cryptographic primitiv...
Open Graph Description: Feature or enhancement We propose to replace the non-OpenSSL cryptographic primitives in hashlib with high-assurance, verified versions from the HACL* project. Pitch As evidenced by the recent SHA3...
X Description: Feature or enhancement We propose to replace the non-OpenSSL cryptographic primitives in hashlib with high-assurance, verified versions from the HACL* project. Pitch As evidenced by the recent SHA3...
Opengraph URL: https://github.com/python/cpython/issues/99108
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Replace built-in hashlib with verified implementations from HACL*","articleBody":"# Feature or enhancement\r\n\r\nWe propose to replace the non-OpenSSL cryptographic primitives in hashlib with high-assurance, verified versions from the HACL* project. \r\n\r\n# Pitch\r\n\r\nAs evidenced by the recent SHA3 buffer overflow, cryptographic primitives are tricky to implement correctly. There might be issues with memory management, exceeding lengths, incorrect buffer management, or worse, incorrect implementations in corner cases.\r\n\r\nThe HACL* project \u003chttps://github.com/hacl-star/hacl-star\u003e provides _verified_ implementations of cryptographic primitives. These implementations are mathematically shown to be:\r\n- memory safe (no buffer overflows, no use-after-free)\r\n- functionally correct (they always compute the right result)\r\n- side-channel resistant (the most egregious variants of side-channels, such as memory and timing leaks, are ruled out by construction).\r\n\r\nSee https://hacl-star.github.io/Overview.html#what-is-verified-software for a longer description of how formal methods can help write high-assurance software and rule out entire classes of bugs.\r\n\r\nThe performance of HACL* is competitive with, and sometimes exceeds, that of OpenSSL. HACL* is distributed as pure C, and therefore is portable. Parts of HACL* have been adopted in Mozilla, Linux, the Tezos blockchain, and many more, thereby demonstrating that formally verified code is ready for production-time.\r\n\r\n# Previous discussion\r\n\r\nTagging @alex with whom I've informally discussed this.\n\n\u003c!-- gh-pr-number: gh-99109 --\u003e\n* PR: gh-99109\n\u003c!-- /gh-pr-number --\u003e\n\n\n\u003c!-- gh-pr-number: gh-101707 --\u003e\n* PR: gh-101707\n\u003c!-- /gh-pr-number --\u003e\n\n\n\u003c!-- gh-pr-number: gh-101917 --\u003e\n* PR: gh-101917\n\u003c!-- /gh-pr-number --\u003e\n\n\n\u003c!-- gh-pr-number: gh-101924 --\u003e\n* PR: gh-101924\n\u003c!-- /gh-pr-number --\u003e\n\n\n\u003c!-- gh-pr-number: gh-102089 --\u003e\n* PR: gh-102089\n\u003c!-- /gh-pr-number --\u003e\n\n\n\u003c!-- gh-pr-number: gh-102183 --\u003e\n* PR: gh-102183\n\u003c!-- /gh-pr-number --\u003e\n\n\n\u003c!-- gh-pr-number: gh-102308 --\u003e\n* PR: gh-102308\n\u003c!-- /gh-pr-number --\u003e\n\n\n\u003c!-- gh-pr-number: gh-103597 --\u003e\n* PR: gh-103597\n\u003c!-- /gh-pr-number --\u003e\n\n\n\u003c!-- gh-pr-number: gh-104293 --\u003e\n* PR: gh-104293\n\u003c!-- /gh-pr-number --\u003e\n\n\n\u003c!-- gh-pr-number: gh-104401 --\u003e\n* PR: gh-104401\n\u003c!-- /gh-pr-number --\u003e\n\n\n\u003c!-- gh-pr-number: gh-104675 --\u003e\n* PR: gh-104675\n\u003c!-- /gh-pr-number --\u003e\n\n\n\u003c!-- gh-pr-number: gh-104776 --\u003e\n* PR: gh-104776\n\u003c!-- /gh-pr-number --\u003e\n\n\n\u003c!-- gh-pr-number: gh-104808 --\u003e\n* PR: gh-104808\n\u003c!-- /gh-pr-number --\u003e\n\n\n\u003c!-- gh-pr-number: gh-104893 --\u003e\n* PR: gh-104893\n\u003c!-- /gh-pr-number --\u003e\n\n\n\u003c!-- gh-pr-number: gh-105634 --\u003e\n* PR: gh-105634\n\u003c!-- /gh-pr-number --\u003e\n\n\n\u003c!-- gh-pr-number: gh-105635 --\u003e\n* PR: gh-105635\n\u003c!-- /gh-pr-number --\u003e\n\n\n\u003c!-- gh-pr-number: gh-117237 --\u003e\n* PR: gh-117237\n\u003c!-- /gh-pr-number --\u003e\n\n\n\u003c!-- gh-pr-number: gh-117243 --\u003e\n* PR: gh-117243\n\u003c!-- /gh-pr-number --\u003e\n\n\n\u003c!-- gh-pr-number: gh-117295 --\u003e\n* PR: gh-117295\n\u003c!-- /gh-pr-number --\u003e\n\n\n\u003c!-- gh-pr-number: gh-117302 --\u003e\n* PR: gh-117302\n\u003c!-- /gh-pr-number --\u003e\n\n\n\u003c!-- gh-pr-number: gh-119316 --\u003e\n* PR: gh-119316\n\u003c!-- /gh-pr-number --\u003e\n\n\n\u003c!-- gh-pr-number: gh-123027 --\u003e\n* PR: gh-123027\n\u003c!-- /gh-pr-number --\u003e\n\n\n\u003c!-- gh-pr-number: gh-123146 --\u003e\n* PR: gh-123146\n\u003c!-- /gh-pr-number --\u003e\n\n\n\u003c!-- gh-pr-number: gh-124304 --\u003e\n* PR: gh-124304\n\u003c!-- /gh-pr-number --\u003e\n\n\n\u003c!-- gh-pr-number: gh-125244 --\u003e\n* PR: gh-125244\n\u003c!-- /gh-pr-number --\u003e\n\n\n\u003c!-- gh-pr-number: gh-126270 --\u003e\n* PR: gh-126270\n\u003c!-- /gh-pr-number --\u003e\n\n\n\u003c!-- gh-pr-number: gh-126359 --\u003e\n* PR: gh-126359\n\u003c!-- /gh-pr-number --\u003e\n\n\n\u003c!-- gh-pr-number: gh-130157 --\u003e\n* PR: gh-130157\n\u003c!-- /gh-pr-number --\u003e\n\n\n\u003c!-- gh-pr-number: gh-132120 --\u003e\n* PR: gh-132120\n\u003c!-- /gh-pr-number --\u003e\n","author":{"url":"https://github.com/msprotz","@type":"Person","name":"msprotz"},"datePublished":"2022-11-04T21:43:46.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":36},"url":"https://github.com/99108/cpython/issues/99108"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:6e246c5c-0669-9c44-7ac6-627bb5fec494 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | D5F2:F2B91:9F7C49:D573BE:6969922D |
| html-safe-nonce | c6526a898a8751a589506f21544a0fb994e67acf8bbe07d7b5829609c4843843 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJENUYyOkYyQjkxOjlGN0M0OTpENTczQkU6Njk2OTkyMkQiLCJ2aXNpdG9yX2lkIjoiMzA3NTI4MjA2NDE0MzY1MTM3MyIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9 |
| visitor-hmac | e891d0046fe5267e341535dc808480e077cde8cc782d250d2e37aa7fae7b07a0 |
| hovercard-subject-tag | issue:1436673526 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/python/cpython/99108/issue_layout |
| twitter:image | https://opengraph.githubassets.com/7477ebfd86e25edf27f843a8061aaa96dba24ddfea12db9bbc4023ba249d28c9/python/cpython/issues/99108 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/7477ebfd86e25edf27f843a8061aaa96dba24ddfea12db9bbc4023ba249d28c9/python/cpython/issues/99108 |
| og:image:alt | Feature or enhancement We propose to replace the non-OpenSSL cryptographic primitives in hashlib with high-assurance, verified versions from the HACL* project. Pitch As evidenced by the recent SHA3... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | msprotz |
| hostname | github.com |
| expected-hostname | github.com |
| None | 3542e147982176a7ebaa23dfb559c8af16f721c03ec560c68c56b64a0f35e751 |
| turbo-cache-control | no-preview |
| go-import | github.com/python/cpython git https://github.com/python/cpython.git |
| octolytics-dimension-user_id | 1525981 |
| octolytics-dimension-user_login | python |
| octolytics-dimension-repository_id | 81598961 |
| octolytics-dimension-repository_nwo | python/cpython |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 81598961 |
| octolytics-dimension-repository_network_root_nwo | python/cpython |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | af80af7cc9e3de9c336f18b208a600950a3c187c |
| ui-target | canary-1 |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width