<div dir="ltr">The question of whether or not non-FIPS-compliant algorithms should be allowed for non-cryptographic use is moot if you're deploying to environments requiring FIPS validation where the FIPS requirement is configured at the system level. A full audit of every line of code of every application present on the system(s) is completely infeasible. There is no reasonable way to ensure that people are using insecure algorithms "the right way" in cases where security is a primary concern. A blanket ban is the much more palatable option. And I can't think of a single case where one couldn't just as easily hash files using a compliant algorithm outside of support of legacy systems, in which case you'd have to go through the POAM/waiver process anyway. You'll have a hard time convincing anyone that an application under active development will undergo enough inconvenience by switching to a compliant hashing algorithm that they'd waiver you these days.</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Feb 2, 2023 at 7:00 AM Hubert Kario <<a href="mailto:hkario@redhat.com">hkario@redhat.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Thursday, 2 February 2023 01:45:00 CET, Sands, Daniel via openssl-users <br>
wrote:<br>
><br>
>> -----Original Message-----<br>
>> From: openssl-users <<a href="mailto:openssl-users-bounces@openssl.org" target="_blank">openssl-users-bounces@openssl.org</a>> On Behalf Of Dr<br>
>> Paul Dale<br>
>> Sent: Wednesday, February 1, 2023 2:33 PM<br>
>> To: <a href="mailto:openssl-users@openssl.org" target="_blank">openssl-users@openssl.org</a><br>
>> Subject: [EXTERNAL] Re: MD5 and FIPS<br>
>> <br>
>> If you are using OpenSSL 1.0.2 and the old FOM, you're out of luck.<br>
>> <br>
>> If you are using OpenSSL 3.0 with the FIPS provider, you can <br>
>> still access MD5 by<br>
>> loading appropriate providers and specifying a property query.  See the<br>
>> migration or FIPS guides.<br>
><br>
> This sounds like an acceptable workaround.  So if I load the <br>
> legacy provider, then request MD5 (or SHA1) explicitly through <br>
> that provider, it should provide a working context?<br>
<br>
For some old FIPS modules you can also re-enable the md5 hash by using<br>
EVP_MD_CTX_set_flags(ctx, EVP_MD_CTX_FLAG_NON_FIPS_ALLOW);<br>
<br>
Looking how Python handles the usedforsecurity keyword argument in hashlib<br>
module is a usually a good idea.<br>
-- <br>
Regards,<br>
Hubert Kario<br>
Principal Quality Engineer, RHEL Crypto team<br>
Web: <a href="http://www.cz.redhat.com" rel="noreferrer" target="_blank">www.cz.redhat.com</a><br>
Red Hat Czech s.r.o., Purkyňova 99/71, 612 45, Brno, Czech Republic<br>
<br>
</blockquote></div>