It has C bindings used in eg in this Apache httpd mod_tls: https://www.memorysafety.org/blog/memory-safe-httpd/
I will try this out next week to see I can get Apache to compile with mod_tls; should be interesting.
Ada has been around for a while and has been used in important projects.
Google: openssl "use-after-free" site:cvedetails.com/cve
It's time to accept that C is not the tool for the job. Good programmers still make mistakes and now we have tools to catch most of those mistakes.
In Rust many of those errors become compile-time errors.
There are well-known, proven solutions to the memory management problems that affect OpenSSL (a C library) in a regular basis, and there are languages that implement those solutions. Among them, Rust, Ada and others.
I do agree that OpenSSL is a pile of trash, but an overwhelming amount of the crust of OpenSSL is not C related.
It always is. Because it's a C project where memory management is done manually. And everything done manually is subject to human error.
Doing C-style a capella memory management in 2022 is not necessary.
> how do you know for sure that it is and that rust would have prevented it without having a performance impact
Because much of the safety features Rust implements for memory management happens at compile time not at runtime.
C is inherently bug-prone. Time to declare it unsafe at any speed.
A reasonable number of crates let you switch between them with just a cfg flag, and when using them the only difference that makes it way to the user is security (and maybe performance), but I'm not sure which I should consider to be more secure?