Closed
Description
MD5 should not be used in a FIPS mode JVM, except for in certain older TLS ciphers that depend on it.
Because those TLS ciphers may need it, it technically works (at least in FIPS 140-2) but is not compliant.
Some FIPS-mode deployments may configure the JVM to disable MD5 entirely (because they do not need or enabled those older ciphers).
We have two options, either:
- Check FIPS mode and disable MD5. This should be possible because the FIPS setting is in X-Pack core, and the
esql
module already depends on that. - Just check for an error when loading the MD5
MessageDigest
and disable the function.
The former would mean ES|QL's MD5 was strictly unavailable in FIPS mode. The latter would mean that we allow anyone to turn of MD5 if they wish.
I think I would be happy with either or both.
Relates: #118938