-
Notifications
You must be signed in to change notification settings - Fork 1.6k
wasi-tls: Add OpenSSL backend #12228
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
base: main
Are you sure you want to change the base?
Conversation
40ecfd1 to
4ca975d
Compare
|
Thanks for this! (also thanks for wrangling CI here...) For the remaining checks -- could you publish a placeholder crate and invite the For the vets, would it be possible to update the lock file to retain the slightly older versions of openssl/openssl-sys? Or are the new versions required? (not hard to vet but if it can be deferred might as well) |
It only took 14 attempts 🤪
I've created the crate and added
Yes! |
alexcrichton
left a comment
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.
Did you get the invite?
I did indeed! Should be updated now too.
Looks like a cargo vet part remains? Otherwise r=me
|
Oh, to clarify, @badeend would you be ok adding the config recommended by |
Just to verify: aside from the placeholder |
|
Oh sorry I forgot about that, I was going off the CI failure as: and I suspect that it'd later complain about |
Wasmtime currently supports two wasi-tls providers: rustls & native-tls.
Having multiple backend implementations in a single place helps with being able to quickly iterate on the WIT interface and validate that we're not codifying some rustls-specific behavior/feature into the spec.
@rvolosatovs is looking at implementing wasi-tls for Python. But as predicted,
native-tlsis quickly showing its shortcomings. For example: it can't read the negotiated TLS version, which is needed to implement Python'sSSLSocket.version().This PR adds a third backend: OpenSSL. The
opensslcrate exposes a much larger API surface thannative-tlsdoes and will most likely be enough for wasi-tls' future needs.Depending on how restrictive the
wasmtime-wasi-tls-nativetlsimplementation ends up being, we might consider removing it altogether. For the time being it still works fine, so I've kept it.What matters to me is that we can demonstrate having two distinct TLS implementations working on all the three major platforms. As long as that criteria is being satisfied, I don't think it really matters whether that's
rustls+nativetlsorrustls+openssl.