-
Notifications
You must be signed in to change notification settings - Fork 2
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
feat(NODE-5875): provide native crypto hooks for OpenSSL 3 #25
Conversation
60a0a10
to
5875c3f
Compare
2e63577
to
41c17de
Compare
fyi, I've pushed 3886c37 because we just learned (the hard way 🙂) that Electron doesn't expose its native SSL bindings, absolutely makes sense for them not to do that but it's not something we had thought about before (plus a GYP variable so there's an easy way to skip this optimization if we need that at some point) |
81e70d7
to
f53a88f
Compare
f53a88f
to
3886c37
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Changes LGTM, why does it make sense that they wouldn't expose those? would it further add to the version matrix of ssls?
@nbbeeken I think the biggest reason is that they're using BoringSSL because of Chromium instead of OpenSSL, and BoringSSL's README helpfully states:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fire
Co-authored-by: Neal Beeken <[email protected]>
Description
What is changing?
Is there new documentation needed for these changes?
What is the motivation for this change?
Need for speed.
Release Highlight
Create native cryptoCallbacks 🔐
Node.js bundles OpenSSL, which means we can access the crypto APIs from C++ directly avoiding the need to define them in javascript and call back into the JS engine to perform encryption. Now, when running the bindings in a version of Node.js that bundles OpenSSL 3 (should correspond to Node.js 18+), the
cryptoCallbacks
option will be ignored and C++ defined callbacks will be used instead. This improves the performance of encryption dramatically, as much as 5x faster. 🚀Double check the following
npm run check:lint
scripttype(NODE-xxxx)[!]: description
feat(NODE-1234)!: rewriting everything in coffeescript