git: 0457eebbe83f - main - libcrypto: add missing symbols to the legacy provider

From: Mark Johnston <markj_at_FreeBSD.org>
Date: Tue, 04 Jul 2023 19:08:19 UTC
The branch main has been updated by markj:

URL: https://cgit.FreeBSD.org/src/commit/?id=0457eebbe83f951238387f6f720597f3165c3828

commit 0457eebbe83f951238387f6f720597f3165c3828
Author:     Pierre Pronchery <pierre@freebsdfoundation.org>
AuthorDate: 2023-06-29 21:32:59 +0000
Commit:     Mark Johnston <markj@FreeBSD.org>
CommitDate: 2023-07-04 19:04:04 +0000

    libcrypto: add missing symbols to the legacy provider
    
    OpenSSL 3 supports a modular architecture, allowing different providers
    to bring specific implementations of cryptographical algorithms. One
    such provider, "legacy", ships with OpenSSL 3 directly, and groups
    obsoleted algorithms that can still optionally be used anyway.
    
    The import of OpenSSL 3.0.9 was building this provider incorrectly,
    missing symbols required for proper operation.
    
    Sponsored by:   The FreeBSD Foundation
    Pull Request:   https://github.com/freebsd/freebsd-src/pull/787
---
 secure/lib/libcrypto/modules/Makefile.inc    |  3 ++-
 secure/lib/libcrypto/modules/legacy/Makefile | 34 +++++++++++++++++++++++++++-
 2 files changed, 35 insertions(+), 2 deletions(-)

diff --git a/secure/lib/libcrypto/modules/Makefile.inc b/secure/lib/libcrypto/modules/Makefile.inc
index e2f8e9437953..9047c938ef1d 100644
--- a/secure/lib/libcrypto/modules/Makefile.inc
+++ b/secure/lib/libcrypto/modules/Makefile.inc
@@ -11,6 +11,7 @@ CFLAGS+=	-I${LCRYPTO_SRC}/providers/implementations/include
 
 .include <bsd.endian.mk>
 
-.PATH: ${LCRYPTO_SRC}/providers
+.PATH:	${LCRYPTO_SRC}/providers \
+	${LCRYPTO_SRC}/providers/common
 
 WARNS?=		0
diff --git a/secure/lib/libcrypto/modules/legacy/Makefile b/secure/lib/libcrypto/modules/legacy/Makefile
index 3ed4bed6cd52..3eef2549d44f 100644
--- a/secure/lib/libcrypto/modules/legacy/Makefile
+++ b/secure/lib/libcrypto/modules/legacy/Makefile
@@ -2,6 +2,38 @@
 
 SHLIB_NAME?=	legacy.so
 
-SRCS=	legacyprov.c
+SRCS=	legacyprov.c prov_running.c
+
+# common
+SRCS+=	provider_err.c provider_ctx.c
+SRCS+=	provider_util.c
+
+# ciphers
+SRCS+=	ciphercommon.c ciphercommon_hw.c ciphercommon_block.c \
+	ciphercommon_gcm.c ciphercommon_gcm_hw.c \
+	ciphercommon_ccm.c ciphercommon_ccm_hw.c
+SRCS+=	cipher_desx.c cipher_desx_hw.c cipher_des.c cipher_des_hw.c
+SRCS+=	cipher_tdes_common.c
+SRCS+=	cipher_blowfish.c cipher_blowfish_hw.c
+SRCS+=	cipher_cast5.c cipher_cast5_hw.c
+SRCS+=	cipher_rc2.c cipher_rc2_hw.c
+SRCS+=	cipher_rc4.c cipher_rc4_hw.c
+SRCS+=	cipher_rc4_hmac_md5.c cipher_rc4_hmac_md5_hw.c
+SRCS+=	cipher_seed.c cipher_seed_hw.c
+
+# digests
+SRCS+=	digestcommon.c
+SRCS+=	md4_prov.c wp_prov.c ripemd_prov.c
+
+# kdfs
+SRCS+=	pbkdf1.c
+
+# ssl
+SRCS+=	record/tls_pad.c
 
 .include <bsd.lib.mk>
+
+.PATH:	${LCRYPTO_SRC}/providers/implementations/ciphers \
+	${LCRYPTO_SRC}/providers/implementations/digests \
+	${LCRYPTO_SRC}/providers/implementations/kdfs \
+	${LCRYPTO_SRC}/ssl