The IBM official LPP openssl.base delivers the /usr/lib/libssl.a and /usr/lib/libcrypto.a libraries, from OpenSSL project.
However, up to now, the current version 1.0.2 was still delivered in the libssl.so.1.0.0 and libcrypto.so.1.0.0 files, which have a name incompatible with what the OpenSource world, and BullFreeware, deliver: lib*.so.1.0.2 .
Starting recently, they have decided to be more compatible. They now deliver the most recent versions of OpenSSL 1.0.2 in both files lib*.so.1.0.0 and lib*.so.1.0.2 , contained in file /usr/lib/lib*.a . This way, any executable/library provided by BullFreeware which requires libssl.a or libcrypto.a is now compatible with the IBM official libcrypto and libssl files.
This IBM new version of OpenSSL can be got from (you need to have/create an "IBM ID"):
Take: OpenSSL 1.0.2 for AIX 5.3, 6.1, 7.1 & 7.2
version >= 188.8.131.520 (1.0.2o)
They now deliver:
# ar tv /usr/lib/libcrypto.a
rwxr-xr-x 0/0 3050171 Jan 7 07:55 2018 libcrypto.so
rwxr-xr-x 0/0 2186744 Jan 7 07:55 2018 libcrypto.so.0.9.8
rwxr-xr-x 0/0 3050171 Jan 7 07:55 2018 libcrypto.so.1.0.0
rwxr-xr-x 0/0 3050171 Jan 7 07:53 2018 libcrypto.so.1.0.2
where libcrypto.so libcrypto.so.1.0.0 and libcrypto.so.1.0.2 all contain the same 1.0.2o version.
# ar tv /opt/freeware/lib/libcrypto.a
rwxr-xr-x 0/0 3639477 Jan 27 09:15 2017 libcrypto.so.1.0.2
rw-r--r-- 0/0 2012251 Jan 27 09:18 2017 libcrypto.so.0.9.7
rw-r--r-- 0/0 2491620 Jan 27 09:18 2017 libcrypto.so.0.9.8
rwxr-xr-x 0/0 2920785 Jan 27 09:18 2017 libcrypto.so.1.0.0
rwxr-xr-x 0/0 3486254 Jan 27 09:18 2017 libcrypto.so.1.0.1
where libcrypto.so.1.0.2 contains the most recent version of OpenSSL libcrypto 1.0.2 series.
Other versions (0.9.7, 0.9.8, 1.0.0, 1.0.1) provide compatibility for very old executables.
Mixing libraries from BullFreeware and libraries from AIX may lead to issues, due to the strict behavior of the AIX loader.
When an executable/library built by BullFreeware and using openssl is loaded, the AIX loader searches for libssl.a(libssl.so.1.0.2).
If /usr/lib/libssl.a is find first, with older versions of IBM AIX OpenSSL openssl.base LPP, then libssl.so.1.0.2 looks missing and, since the AIX loader, once he has found libssl.a in the LIBPATH, does not continue the search in other paths of LIBPATH but stops, the launch of the executable failed.
Now, that should work better.
One can have a look at what the AIX loader will do by using the "ldd" command or the "dump -Hv executable|library". See the "PATH" column, line 0. Use -X64 for 64bit files.
A work-around for older IBM LPP openssl.base is to add the BullFreeware libssl.so.1.0.2 file, extracted from /opt/freeware/lib/libssl.a, to /usr/lib/libssl.a . Same for 64bit, and same for libcrypto.so.1.0.2 .
We still have an issue with our openssl 1.0.2 versions, which were linked with -expall, like Perzl does, which means that our libssl.a library delivers symbols like strcpy, which add some mess. This has been fixed with openssl 1.1.0 (no more use of -expall).