|
|
Log in / Subscribe / Register

This was inevitably going to happen

This was inevitably going to happen

Posted Jan 15, 2026 5:19 UTC (Thu) by wtarreau (subscriber, #51152)
Parent article: The State of OpenSSL for pyca/cryptography

... and it will continue as projects are forced to change their code to adapt to changing APIs, then discover massive performance regressions while testing the changes.

The accumulation of bad design choices is well explained in the article. Running "perf top" during operation is frightening, with malloc/free often taking the lead given how much stress the lib is putting on them for tiny elements (I seem to remember noticing numerous calls to malloc(4) at some point making me wonder why not to store that into a uint32_t instead).

I agree that the position of "openssl 1.1.1 performance will never be recovered" is totally unacceptable, given that it was already sub-standard due to locking and allocations. And the competition from much faster libraries like aws-lc and rusttls which are also way more responsive and listening to their users will put extra pressure on them to reconsider certain choices.

I think that more feedback like this article is needed. It's definitely unpleasant to write, because it feels a bit harsh to bash opensource software like this (we were in the same situation when writing our article on the state of ssl stacks), but it does help them better understand applications' use cases and important stakes, because they can feel that it's not just a developer whining on a small API change, but deep problems that go as far as condemning some use cases. And for me what happened here is a perfect illustration of how difficult it probably is for a library to sense how it's being used by applications.

On a positive note, we're in regular contact via periodic meetings with several members of the OpenSSL team who recently became more open to hearing about the issues faced by their users. I sense that such discussions might not always be pleasant for them to hear but at least they're asking for this feedback and they're taking notes of griefs, which is really great. They've improved their CI to integrate performance regression tests, not just on crypto functions but by directly running applications relying on their lib. This is the right thing to do, and if they had been doing that during 3.0 development, it would simply never had taken that direction at all. It's unclear how many years (decades?) it will take to undo all the massacre that was done to the code base since 1.1.1 and whether they'll stay the main library or if they'll just stay there for a few legacy applications. I would still prefer to see them manage to fix their problems (starting with the technical decisions making process so as to favor re-architectural work that addresses the causes rather than voting on strong beliefs leading to pointless workarounds like RCU), and ultimately take the lead back for the good of everyone. Let's wish them good luck as it will be a long and tedious work.


to post comments

This was inevitably going to happen

Posted Jan 15, 2026 15:02 UTC (Thu) by willy (subscriber, #9762) [Link] (2 responses)

Could you clarify who "we" is in this comment?

This was inevitably going to happen

Posted Jan 15, 2026 23:12 UTC (Thu) by neggles (subscriber, #153254) [Link] (1 responses)

I believe he means the HAProxy project/company, and is referring to this post https://www.haproxy.com/blog/state-of-ssl-stacks (which is also linked from pyca's post)

This was inevitably going to happen

Posted Jan 16, 2026 4:15 UTC (Fri) by wtarreau (subscriber, #51152) [Link]

> I believe he means the HAProxy project/company

yes, sorry, I thought I had mentioned it, maybe I dropped it when refactoring my response before the final post.


Copyright © 2026, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds