OpenSSL 3.0.x + Python 3.9.x + Enable FIPS- Need help/inputs
Dr Paul Dale
pauli at openssl.org
Thu Apr 20 01:39:37 UTC 2023
It looks like you're trying to access non-approved crypto. My
suggestion would be to create a new library context specifically for
this using OSSL_LIB_CTX_new(). Load only the default provider into that
context using OSSL_PROVIDER_load(). Do not call
EVP_default_properties_enable_fips() on it.
You should only use this new library context for non-FIPS operations.
If there is any doubt about what is permitted and what isn't, contact
your FIPS lab for clarification.
Paul Dale
On 20/4/23 01:35, Prasad, PCRaghavendra wrote:
>
> Hi Dr.Paul/Team,
>
> Good Morning,
>
> We have integrated OpenSSL 3.0.8 in our code along with fips
> enablement. We are using python 3.11 version.
>
> We have used the default search path as our application directory
> (OSSL_PROVIDER_set_default_search_path) and loaded the “base” and
> “fips” providers and not the default provider.
>
> OSSL_PROVIDER_load(None, b"base")
>
> OSSL_PROVIDER_load(None, b"fips")
>
> After that, we enabled the FIPS using
> libcrypto.EVP_default_properties_enable_fips() call.
>
> Should we load the default provider as well or base and fips are good
> enough?
>
> Sometimes we are getting the below error message from Python
> cryptography package
>
> cryptography.exceptions.InternalError: Unknown OpenSSL error. This
> error is commonly encountered when another library is not cleaning up
> the OpenSSL error stack. If you are using cryptography with another
> library that uses OpenSSL try disabling it before reporting a bug.
> Otherwise please file an issue at
> https://github.com/pyca/cryptography/issues with information on how to
> reproduce this. ([_OpenSSLErrorWithText(code=50856204, lib=6,
> reason=524556, reason_text=b'error:0308010C:digital envelope
> routines::unsupported')])
>
> This error is intermittent is what we are observing as we have already
> tested the complete application couple of times
>
> Any thoughts or inputs on this please will help us in debugging more
> on this issue.
>
> Thanks,
>
> Raghavendra
>
> Internal Use - Confidential
>
> *From:* Dr Paul Dale <pauli at openssl.org>
> *Sent:* Wednesday, March 8, 2023 11:02 AM
> *To:* Prasad, PCRaghavendra; openssl-users at openssl.org
> *Cc:* Ds, Pradeep Kumar; Kuppam, Pradeep; Kappgal, Srinath
> *Subject:* Re: OpenSSL 3.0.x + Python 3.9.x + Enable FIPS- Need
> help/inputs
>
> [EXTERNAL EMAIL]
>
> Are there any specific .h files where we can refer to this method
> that needs to be used ( ex: evp.h )?
>
>
> #include "openssl/evp.h" should be enough to get the EVP APIs. You
> will need other includes for other parts of OpenSSL but that covers
> EVP well enough.
>
>
> still, are there any files that we can go through once before
> calling in the fips mode?
>
>
> Turn on -Wdeprecated or equivalent in your compile and the low level
> calls will be flagged. They should all be deprecated.
>
>
> One more doubt is How can we set fips enabled for the complete
> application (process/service) while running so that if we are
> using non-compliant algorithms/methods it should throw errors? Is
> it possible in OpenSSL 3.0.x?
>
>
> The call you are looking for is:
>
> EVP_set_default_properties(libctx, "fips=yes");
>
> I strongly suggest reading the documentation about the FIPS provider
> [openssl.org]
> <https://urldefense.com/v3/__https:/www.openssl.org/docs/man3.0/man7/fips_module.html__;!!LpKI!gwsGt_60jqaHzhWTEXZCwSn0frcRAuJbbxYQLrkbfBfkw9-Eg_mdOnYzU6EDHNOBOR25XSXKcqHcPO1X7_TtGA$>
> and the migration guide [openssl.org]
> <https://urldefense.com/v3/__https:/www.openssl.org/docs/man3.0/man7/migration_guide.html__;!!LpKI!gwsGt_60jqaHzhWTEXZCwSn0frcRAuJbbxYQLrkbfBfkw9-Eg_mdOnYzU6EDHNOBOR25XSXKcqHcPO2zYsa_AA$>.
> Both the avoidance of low level calls and setting the default
> properties are covered therein. There are a number of other nuances
> to trip over when using the FIPS provider.
>
>
> Paul Dale
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mta.openssl.org/pipermail/openssl-users/attachments/20230420/d4a3c48a/attachment-0001.htm>
More information about the openssl-users
mailing list