For anyone curious, I've done this and it works but it is not recommended because it breaks a lot of stuff. It will break ssh so you will need to rebuild it --without-openssl because if you try to rebuild it with ssl, it won't work, it looks for libcrypto.so and so does wget.
I was trying to compile a c program that was looking for specific EVP functions that were somehow not available in the original 2016 build, but in the new ones they are located somewhere I believe in libcrypto.a or libssl.a . There are no libcrypto.so.1 shared libraries that will get replaced if you remove them from the system.
As stated, without removing the original stuff and while linking my c program with the new build with
Code:
-L /mynewbuild/openssl-no-shared
, I would get errors:
Code:
enc.c:(.text+0x3d5): undefined reference to `EVP_CIPHER_iv_length'
enc.c:(.text+0x408): undefined reference to `EVP_PKEY_size'
enc.c:(.text+0x42f): undefined reference to `EVP_CIPHER_block_size'
collect2: error: ld returned 1 exit status
I found the solution. The old evp.h does not contain those functions but the new ones do. A temporary solution to build binaries using a NEW build of openssl, that is 3.3 as of this date, is the latest build from git, is to copy the entire /include/openssl/* to /usr/include/openssl but not before making a backup of the entire original directory in case other stuff breaks. Or after you build whatever you want, just copy the original folder back. That way you can have the latest openssl to build whatever software you have but not actually break anything