openssl 3.0.0 legacy provider won't lload via config file
Kory Hamzeh
kory at avatarci.com
Mon Sep 20 16:07:48 UTC 2021
Hi Tomas,
It looks correct. This is on the ARM target:
sc3822> find / -name libcrypto.so.3 -print
/lib/libcrypto.so.3
sc3822> strings /lib/libcrypto.so.3 | grep /ssl
/ssl-3//ct_log_list.cnf
OPENSSLDIR: "/ssl-3/"
/ssl-3/
/ssl-3//private
/ssl-3//certs
/ssl-3//cert.pem
sc3822>
I will open an issue.
Kory
> On Sep 20, 2021, at 12:18 AM, Tomas Mraz <tomas at openssl.org> wrote:
>
> This is really weird. The OPENSSLDIR as in the Makefile should be
> applied during the build. If you do strings <path-to-libcrypto.so> does
> it show the ssl-3? Is it possible that you have some other build of
> openssl-3.0 with incorrect (default) OPENSSLDIR lying on the system
> somewhere?
>
> Please open an GitHub issue so we can investigate this further.
>
> Tomas Mraz
>
>
> On Fri, 2021-09-17 at 11:55 -0700, Kory Hamzeh wrote:
>>
>>
>>> On Sep 14, 2021, at 12:03 AM, Tomas Mraz <tomas at openssl.org> wrote:
>>>
>>> On Mon, 2021-09-13 at 16:13 -0700, Kory Hamzeh wrote:
>>>> I have cross-compiled OpenSSL 3.0.0 for the ARMv7. So far,
>>>> everything
>>>> seems to be working fine, except for the fact that I cannot get
>>>> OpenSSL to load the legacy module when I configure
>>>> /ssl/openssl.cnf
>>>> as such. I can, however, load the module explicitly at run time.
>>>>
>>> ...
>>>>
>>>> The EVP_DecryptInit_ex() fails if I compile without -
>>>> DLOAD_PROVIDER.
>>>> The other flag, CRYPTO_INIT does not make any difference. What is
>>>> puzzling is that I can build OpenSSL natively on an x86_64
>>>> machine
>>>> and using the same openssl.cnf file, the code above works and the
>>>> legacy module loads without the code to explicitly load it.
>>>>
>>>> Any thoughts on what I may have done wrong or how to track this
>>>> down?
>>>
>>> Could it be that your cross-compiled build expects the
>>> configuration
>>> file to be somewhere else? Have you tried to strace the application
>>> to
>>> see where it searches for the openssl.cnf?
>>
>> OK, I ran strace and notice what might be a bug in OpenSSL 3.0.0.
>>
>> Let me first start by saying that we run a mixture of OpenSSL 1.0.1g
>> and OpenSSL 3.0.0. We are planning to upgrade all of the apps to
>> 3.0.0, but some of the vendors have not upgraded yet.
>>
>> The 1.0.1g config directory is /ssl.
>>
>> I configured OpenSSL 3.0.0 to use /ssl-3 for its config files as
>> follows:
>>
>> ./Configure linux-armv4 -march=armv7-a shared enable-fips --cross-
>> compile-prefix=arm-none-linux-gnueabi- --prefix=/ --openssldir=/ssl-3
>>
>> The Makefile confirms this:
>>
>> OPENSSLDIR=/ssl-3
>>
>> I make and make install like this:
>>
>> make DESTDIR=$INSTALL_DIR install_ssldirs install_sw install_fips
>>
>> where $INSTALL_DIR is where we build the rootfs structure. I can see
>> that it created $INSTALL_DIR/ssl-3.
>>
>> But an stace of the apps show:
>>
>> open("/ssl/openssl.cnf", O_RDONLY|O_LARGEFILE) = 3
>>
>> If I:
>>
>> export OPENSSL_CONF="/ssl-3/openssl.cnf”
>>
>> before I run my apps, everything works. But this is disconcerting.
>>
>> Any thoughts or feedback?
>>
>> Thanks,
>> Kory
>>
>
> --
> Tomáš Mráz
> No matter how far down the wrong road you've gone, turn back.
> Turkish proverb
> [You'll know whether the road is wrong if you carefully listen to your
> conscience.]
>
>
More information about the openssl-users
mailing list