Skip to content
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

Using nodes openSSL? #877

Closed
tegefaulkes opened this issue Feb 28, 2023 · 3 comments
Closed

Using nodes openSSL? #877

tegefaulkes opened this issue Feb 28, 2023 · 3 comments

Comments

@tegefaulkes
Copy link

Looking into uSockets I can see that it is using boringSSL. Is it possible it can dynamically use node's openSSL to avoid having multiple SSL libraries within our application? If not is there a plan to support this?

I ask because having multiple SSL libraries in our app increases the security surface area of our app. Ideally we want to minimise this.

@uNetworkingAB
Copy link
Contributor

We use boringssl and have no reason to swap back to relying on nodejs openssl. Shipping boringssl is faster and more reliable as we aren't relying on ABI which more often than not is entirely broken in nodejs

@CMCDragonkai
Copy link

If the same app has another addon that also uses boringssl, is there a way to recompile uSockets to dynamically link boringssl?

@uNetworkingAB
Copy link
Contributor

You have the code so feel free to try anything you want, but none of this aligns with the goals of uWS.js, or interests me. Statically linking boringssl and shipping the whole binary is how we've been able to ship reliable compatibility everywhere. Nodejs is a total mess in terms of ABI and doesn't follow it's own ABI rules reliably, esp. not when it comes to ssl. Many many Linux distros entirely disregard ABI rules on favor of linking with their openssl version, entirely breaking binary compatibility in highly deceiving ways. All of that problematics goes away by shipping boringssl statically linked and improves performance by 18%.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants