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

can we replace gnutls with openssl? #698

Open
deryck1031 opened this issue Oct 31, 2019 · 7 comments · May be fixed by #2569
Open

can we replace gnutls with openssl? #698

deryck1031 opened this issue Oct 31, 2019 · 7 comments · May be fixed by #2569

Comments

@deryck1031
Copy link

Is there a way to replace gnutls with openssl?

@nyh
Copy link
Contributor

nyh commented Mar 4, 2020

@deryck1031 what's the motivation of this request?

@chenziliang
Copy link

chenziliang commented Aug 9, 2021

GnuTLS's LGPL license is probably the most challenging one if end users like to vendor and static linking all of the dependent 3rd party libs.

@chenziliang
Copy link

chenziliang commented Aug 9, 2021

Would like to poll the reasons why gnutls was chosen instead of boringssl or openssl ? Thanks !

@avikivity
Copy link
Member

IIRC API stability of older OpenSSL releases. I think it's much better now. If you want to replace gnutls with openssl, post a patch.

@michael-redpanda
Copy link
Contributor

If you want to replace gnutls with openssl, post a patch.

Would the desire by the scylla team be that GnuTLS still be supported in Seastar or would you accept that patch that completely removes it and replaces it with OpenSSL?

Furthermore, how "compatible" would you desire this patch to be against older versions of OpenSSL. Your statement about API stability is spot on and can cause implementors to have to write preprocessor conditionals in order to be compatible against multiple different versions of OpenSSL (thinking versions 1.0.2 and older). Writing against 1.1.1 and newer is easier as the API is significantly more stable (and those versions are still supported). The desire of course would be to not adversely effect any seastar user that happens to be running on older distros or using older versions of OpenSSL.

I also noticed in your documentation that a FIPS 140-2 certified OpenSSL library is used. Is this referencing your client or does the scylladb product have support for using OpenSSL for its TLS stack outside of seastar?

@avikivity
Copy link
Member

avikivity commented Dec 13, 2023

/cc @elcallio

If you want to replace gnutls with openssl, post a patch.

Would the desire by the scylla team be that GnuTLS still be supported in Seastar or would you accept that patch that completely removes it and replaces it with OpenSSL?

This type of question is very dangerous since it's easy for the maintainer to say "yes" (costs them nothing) and leave you stuck doing extra work.

Much better for you to build a case why an openssl replacement would be better.

Furthermore, how "compatible" would you desire this patch to be against older versions of OpenSSL. Your statement about API stability is spot on and can cause implementors to have to write preprocessor conditionals in order to be compatible against multiple different versions of OpenSSL (thinking versions 1.0.2 and older). Writing against 1.1.1 and newer is easier as the API is significantly more stable (and those versions are still supported). The desire of course would be to not adversely effect any seastar user that happens to be running on older distros or using older versions of OpenSSL.

I see openssl 3 was release 2 years ago so it's conceivable to support only that. If we can support 1.1.1 that's a bonus.

I expect most Seastar applications ship their libraries alongside so compatibility with very old releases isn't a priority.

I also noticed in your documentation that a FIPS 140-2 certified OpenSSL library is used. Is this referencing your client or does the scylladb product have support for using OpenSSL for its TLS stack outside of seastar?

We're using it for encryption at rest. From our point of view, unification of in-flight and at-rest encryption would be an improvement.

@michael-redpanda
Copy link
Contributor

Hi again @avikivity ! I wanted to give you guys a heads up that we have been busy these last few months integrating OpenSSL with Seastar. It's not quite ready for us to upstream (there's some dependency clean up we need to do) but it's very close. If you want a sneak peak, the majority of the changes are here: https://github.com/redpanda-data/seastar/blob/v24.2.x/src/net/ossl.cc

@michael-redpanda michael-redpanda linked a pull request Dec 9, 2024 that will close this issue
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

Successfully merging a pull request may close this issue.

5 participants