Page MenuHomeFreeBSD

libcrypto: link engines and the legacy provider to libcrypto
ClosedPublic

Authored by khorben_defora.org on Sep 15 2023, 5:26 PM.
Tags
None
Referenced Files
Unknown Object (File)
Tue, Apr 30, 7:40 AM
Unknown Object (File)
Tue, Apr 30, 7:40 AM
Unknown Object (File)
Tue, Apr 30, 1:06 AM
Unknown Object (File)
Mon, Apr 29, 8:03 AM
Unknown Object (File)
Sun, Apr 21, 9:58 PM
Unknown Object (File)
Apr 5 2024, 8:42 AM
Unknown Object (File)
Feb 8 2024, 1:01 AM
Unknown Object (File)
Jan 11 2024, 9:50 AM
Subscribers

Details

Summary

The most efficient way to ship OpenSSL's legacy provider module and engines is to have them link to libcrypto.so. This can break the build since they are created in a sub-directory of secure/lib/libcrypto, and may be ready to link before libcrypto.so is available.

This commit introduces a LIBCRYPTO_WITHOUT_SUBDIRS define, ensuring libcrypto.so builds in its usual early phase without any OpenSSL provider module or engines. They are then completed as expected later.

This is meant as an alternate fix to D41874.

Test Plan
# echo test | /usr/bin/openssl md4 -provider legacy
MD4(stdin)= 36d729ab4ff7260da6fb010ef5747bb3

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped

Event Timeline

This also fixes the issues with py-cryptography that are causing the current test failures in CI. I have no preference in which fix we take (this one or D41874).

This revision is now accepted and ready to land.Sep 16 2023, 3:57 PM