Summary: | net/freerdp: bhyve: CURRENT (OpenSSL 3): OpenSSL LEGACY provider failed to load, no md4 support available! | ||
---|---|---|---|
Product: | Ports & Packages | Reporter: | O. Hartmann <ohartmann> |
Component: | Individual Port(s) | Assignee: | Vladimir Druzenko <vvd> |
Status: | Closed Overcome By Events | ||
Severity: | Affects Many People | CC: | cuicui, eduardo, gert, mikael |
Priority: | --- | Flags: | bugzilla:
maintainer-feedback?
(vvd) |
Version: | Latest | ||
Hardware: | Any | ||
OS: | Any |
Description
O. Hartmann
2023-06-29 11:45:08 UTC
Current version doesn't support OpenSSL 3. Check this: https://github.com/FreeRDP/FreeRDP/pull/8920 It looks like like /usr/lib/ossl-modules/legacy.so is not built correctly. dlopen("/usr/lib/ossl-modules/legacy.so") fails with: Undefined symbol "ossl_md4_functions" Looking at secure/lib/libcrypto/modules/legacy/Makefile, legacy.so is only built from legacyprov.c, but in upstream OpenSSL, legacy.a is built from the following: providers/liblegacy.a: crypto/des/liblegacy-lib-des_enc.o \ crypto/des/liblegacy-lib-fcrypt_b.o \ crypto/liblegacy-lib-cpuid.o \ crypto/liblegacy-lib-ctype.o \ crypto/liblegacy-lib-x86_64cpuid.o \ crypto/md5/liblegacy-lib-md5-x86_64.o \ crypto/md5/liblegacy-lib-md5_dgst.o \ crypto/md5/liblegacy-lib-md5_one.o \ crypto/md5/liblegacy-lib-md5_sha1.o \ providers/common/liblegacy-lib-provider_util.o \ providers/implementations/ciphers/liblegacy-lib-cipher_blowfish.o \ providers/implementations/ciphers/liblegacy-lib-cipher_blowfish_hw.o \ providers/implementations/ciphers/liblegacy-lib-cipher_cast5.o \ providers/implementations/ciphers/liblegacy-lib-cipher_cast5_hw.o \ providers/implementations/ciphers/liblegacy-lib-cipher_des.o \ providers/implementations/ciphers/liblegacy-lib-cipher_des_hw.o \ providers/implementations/ciphers/liblegacy-lib-cipher_desx.o \ providers/implementations/ciphers/liblegacy-lib-cipher_desx_hw.o \ providers/implementations/ciphers/liblegacy-lib-cipher_idea.o \ providers/implementations/ciphers/liblegacy-lib-cipher_idea_hw.o \ providers/implementations/ciphers/liblegacy-lib-cipher_rc2.o \ providers/implementations/ciphers/liblegacy-lib-cipher_rc2_hw.o \ providers/implementations/ciphers/liblegacy-lib-cipher_rc4.o \ providers/implementations/ciphers/liblegacy-lib-cipher_rc4_hmac_md5.o \ providers/implementations/ciphers/liblegacy-lib-cipher_rc4_hmac_md5_hw.o \ providers/implementations/ciphers/liblegacy-lib-cipher_rc4_hw.o \ providers/implementations/ciphers/liblegacy-lib-cipher_seed.o \ providers/implementations/ciphers/liblegacy-lib-cipher_seed_hw.o \ providers/implementations/ciphers/liblegacy-lib-cipher_tdes_common.o \ providers/implementations/digests/liblegacy-lib-md4_prov.o \ providers/implementations/digests/liblegacy-lib-mdc2_prov.o \ providers/implementations/digests/liblegacy-lib-ripemd_prov.o \ providers/implementations/digests/liblegacy-lib-wp_prov.o \ providers/implementations/kdfs/liblegacy-lib-pbkdf1.o \ providers/liblegacy-lib-prov_running.o I have the same problem with OpenVPN, trying to load the legacy provider to handle talking to peers that only support blowfish cipher. So this is not a freerdp issue, but something about how openssl itself is built. Test with: gert@fbsd14:~ $ openssl list -provider legacy -providers list: unable to load provider legacy Hint: use -provider-path option or OPENSSL_MODULES environment variable. 002041DFDB420000:error:12800067:DSO support routines:dlfcn_load:could not load the shared library:/usr/src/crypto/openssl/crypto/dso/dso_dlfcn.c:118:filename(/usr/lib/ossl-modules/legacy.so): /usr/lib/ossl-modules/legacy.so: Undefined symbol "ossl_md4_functions" 002041DFDB420000:error:12800067:DSO support routines:DSO_load:could not load the shared library:/usr/src/crypto/openssl/crypto/dso/dso_lib.c:152: 002041DFDB420000:error:07880025:common libcrypto routines:provider_init:reason(524325):/usr/src/crypto/openssl/crypto/provider_core.c:912:name=legacy https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=271656 references a commit as of yesterday that fixes legacy provider building. Will test. So waiting testing on recent current? I can confirm that with src updated to commit commit c81495a621c461 (HEAD when I pulled yesterday), after a buildworld/installworld, legacy provider loading works again. Both "openssl list -provider legacy -providers" and "openvpn --provider legacy default --show-tls" are back to normal. (In reply to Gert Doering from comment #6) Thanks! I have a similar problem with a R package that needs lagacy algorythms (14 1400093): https://github.com/jeroen/openssl/issues/119 Could anyone take a quick look to check its relationship? Thanks. |