After a new install/upgrade, an SSL verification test using the "xcomtcp -ping" command i.e.
"xcomtcp -ping REMOTE_SYSTEM=127.0.0.1 PORT=8045 SECURE_SOCKET=YES TRNENCRL_CIPHER=ALL"
fails with:
Could not open CAOPENSSL crypto shared library, errno is 126
Could not open CAOPENSSL crypto shared library, errno is 126
#XCOMN0298E Unable to allocate remote transaction program: XCOMN0780E Txpi 308: TxpiInitSSL Failed msg = <> value = 4294967295:
Attempted loopback SSL transfer fails with the same message.
Component: XCOM for Windows
Release: r11.6 or r12
Windows error 126 ("The specified module could not be found") usually means an executable is trying to load a dependent dll that cannot be found.
https://learn.microsoft.com/en-us/windows/win32/debug/system-error-codes--0-499-
In this case, the CAPKI product is the interface between XCOM and OpenSSL and its crypto library cannot be found.
CAPKI is installed during the XCOM install.
The XCOM Global Parameter file "%XCOM_HOME%\config\xcom.glb" contains the parameter CAPKIHOME which defines the directory for the CAPKI product libraries.
Information on the CAPKIHOME parameter is located in the XCOM documentation.
For r11.6 see CAPKIHOME and for r12.0 see CAPKIHOME
So the default value of CAPKIHOME for both is: %ProgramFiles%\CA\SC\CAPKI\CAPKI5\Windows\amd64\64\lib
NOTE: %ProgramFiles% is a standard Windows Environment Variable that points to "C:\Program Files"
To resolve the error correct the CAPKIHOME variable in the "%XCOM_HOME%\config\xcom.glb" file so that it has the correct location for the CAPKI product library.
1. In one instance of an upgrade from 11.6 SP03 to r12 where the error 126 was occurring, it had been seen that CAPKIHOME was set to %CASHCOMP(X86)%\CA\SC\CAPKI\CAPKI5\Windows\amd64\64\lib
Although environment variable %CASHCOMP(X86)% was apparently pointing to the location of the latest CAPKI 5.2.11.00 libraries that had been installed during the XCOM upgrade, the 126 error was still occurring.
The problem was resolved by changing CAPKIHOME to remove the dependence on the variable CASHCOMP(X86) and instead use the absolute full path to the CAPKI lib directory.
2. If instead of error 126 error 193 ("%1 is not a valid Win32 application") is received then it likely means the incorrect version of CAPKI libraries is being picked up i.e. a 32-bit version is being found instead of the latest 64-bit version required by the latest XCOM supported versions r11.6 and r12.