How to disable openssl legacy provider use within poco

233 Views Asked by At

The project I am working on doesn't have the legacy provider assemblies for openssl 3.1.X, and I am trying to find the best way to work around this.

Is there a way to disable the check within OpenSSLInitializer::initialize() that tries to load the legacy provider? For instance, the code below will throw an exception if the legacy assembly is not found..

if (!_legacyProvider) { _legacyProvider = OSSL_PROVIDER_load(NULL, "legacy"); if (!_legacyProvider) >throw CryptoException("Failed to load OpenSSL legacy provider"); }

https://github.com/pocoproject/poco/blob/devel/Crypto/src/OpenSSLInitializer.cpp#L137-L141

Trying to find a way to use openssl 3.1 without the legacy provider assembly with Poco 1.12.4.

1

There are 1 best solutions below

0
sanjay Rai On

I ran into this issue and it seems we just need to comment out this line

(!_legacyProvider) >throw CryptoException("Failed to load OpenSSL legacy provider"); }` 

and here is the link where it seems the fix with come in 1.12.5

https://github.com/pocoproject/poco/issues/4077 and commit for 1.11 is here https://github.com/pocoproject/poco/commit/e3a81b2733a9dcbef68c4c9a21edc5c8772ae8ff?diff=unified