-
Notifications
You must be signed in to change notification settings - Fork 1.5k
feat(mysql): add aws-lc-rs backend for RSA auth and FIPS TLS support #4142
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
…n in macros and dependencies
…ervices in CI workflow
…riables for skipping tests and managing thread counts
|
Hi @abonander This PR adds two MySQL RSA auth backend features:
On the TLS side, this PR adds If you'd prefer a different feature layout or naming, I'm happy to adjust. |
|
I don't want to add a bunch more TLS features going forward. It just doesn't scale. We can have a couple of TLS features targeted for convenience, and then anything else, especially with RusTLS, should just require a custom We've also learned the hard way that mutually exclusive features are a bad idea. The The thing about this refactor is, if you or your organization cares enough about security to be using a FIPS certified module, your configuration probably doesn't allow for falling back to RSA here anyway. This is because RSA is only used to encrypt the password when sending it over a non-TLS connection, otherwise it's sent without any encapsulation (as it's encrypted by TLS anyway). I think the only thing that really needs to be done here is allowing the Also, I don't know if you noticed this, but there's several other RustCrypto crates being used there: |
Does your PR solve an issue?
fixes #4082
Is this a breaking change?
Potentially. Public APIs are unchanged and defaults remain the same, but
--all-featuresno longer works forsqlx-mysqlbecause mutually exclusive RSA backend features were added. Build/CI scripts that relied on--all-featuresmust select a backend explicitly.Summary
Add
aws-lc-rsRSA auth backend for MySQL/MariaDB with a FIPS option, plus a rustls FIPS TLS feature.Refactor MySQL RSA auth backends to prefer aws-lc-rs when selected, and expose new facade features.
Update docs, changelog, and CI/test tooling to cover the new feature matrix and FIPS prerequisites.
Testing