Announcements

SecurID® Discussions

Browse the SecurID discussion board to get product help and collaborate with other SecurID users.
JosephCarey
Beginner
Beginner

AceIntialize fails -- cannot load library libaceclnt_tcp.so

Problem occurs on IBM AIX 6.1 platform.

I have a program that uses the v8.5 of the RSA Authentication Agent SDK for the C-language.

 

The first action the program performs is to call AceInitialize().  But this call fails, and the agent emits this error message:

    Failed to load libaceclnt_tcp.so

 

My installation has the following AIX libraries from the SDK, and they are all on the LIBPATH:

    libaceclnt.a
    libaceclnt.so
    libaceclnt_tcp.so

 

And the libraries have execute permission for the owner, group, and world.

So why can't my process find/load libaceclnt_tcp.so ???

Labels (1)
0 Likes
4 Replies
TedBarbour
Employee
Employee

Hi Joseph - can you provide a directory listing showing where the libraries are located and the value for LIBPATH?

By the way, if this is a new development then recommend using the latest version 8.6 of the SDK.  See RSA SecurID Authentication Agent SDK 8.6 Downloads 

 

Also, the truss utility might help see what is really happening during execution.

 

The basic command line for truss is
truss -f -o <full path name to output file> <program name and any arguments>

This will give the default output for truss.  To get information about all the command line options for truss, type "man truss".

0 Likes

Hi, Ted.

 

Thanks for responding to my question.

 

Before I provide the directory listing you requested, I will address your concern about version 8.6 of the SDK: why aren’t we using it?

We know that it is the latest version. In fact, I actually downloaded version 8.6.

But then I found a problem; I found it did not contain any libraries for AIX. I only found libraries for Windows and Linux.

So I figured that RSA was not going to support AIX for any version of the SDK after 8.5 Can you discuss that issue?

 

Now, here is the sting for the directory where I have installed the libraries from the SDK. There are other libraries in this directory besides the RSA libraries. I have highlighted the libraries that are from RSA. You can see how the file permissions are set. The RSA components are all marked as executable by user, group, and even world.

 

[view: devA_50703]/usr/local/intranet/areas/des_rsa_upgrade_50/lib

ready-> ls -l

total 112864

-rw-rw-r-- 1 careyj staff 593 Feb 23 17:51 get_rsa_libs.sh

-rw-rw-r-- 1 careyj staff 235 Feb 23 15:40 get_rsa_libs.sh~

-rwxrwxr-x 1 careyj staff 36928376 Feb 23 17:51 libaceclnt.a

-rwxrwxr-x 1 careyj staff 38463 Feb 23 17:51 libaceclnt.so

-rwxrwxr-x 1 careyj staff 9590458 Feb 23 17:51 libaceclnt_tcp.so

lrwxrwxrwx 1 careyj staff 41 Feb 24 07:52 libcustom_subs.a -> /vobs/prod/mts/lib/z_des_libcustom_subs.a

lrwxrwxrwx 1 careyj staff 47 Jan 31 11:04 libnex_mq.a -> /usr/intranet/s61/nex/90/lib/libnex_mq_server.a

-r-xrwxr-- 1 careyj staff 11174329 Feb 23 17:51 libxerces-c-3.1.a

-r-xr-xr-- 1 careyj staff 28296 Feb 23 17:51 sdmsgcat.cat

-rw-rw-r-- 1 careyj staff 271 Feb 23 07:47 set_rsa_aa_v8.5.sh

 

And here is the LIBPATH variable. You can see the path contains the directory I am using. In fact, it contains it twice, for some reason.

 

ready-> echo $LIBPATH

/usr/java6/jre/lib:/usr/java6/lib:/usr/java6/jre/bin:/usr/java6/jre/bin/classic:/usr/lib:/usr/local/intranet/areas/des_rsa_upgrade_50/lib:/usr/local/intranet/areas/des_rsa_upgrade_50/lib:/vobs/prod/mts/branch_s2016/lib:/vobs/prod/mts/lib:/vobs/prod/nex/lib

0 Likes

I think my LIBPATH is missing some needed components, like the C++ standard library:

Here’s what command ldd shows when I run it against libacecnlt_tcp.so:

 

ready-> ldd libaceclnt_tcp.so

libaceclnt_tcp.so needs:

Cannot find libstdc+.a(libstdc+.so.6)

/usr/lib/libc.a(shr.o)

/usr/lib/libpthread.a(shr_xpg5.o)

Cannot find libgcc_s.a(shr.o)

/usr/local/intranet/areas/des_rsa_upgrade_50/lib/libxerces-c-3.1.a(libxerces-c-3.1.so)

/unix

/usr/lib/libcrypt.a(shr.o)

/usr/lib/libpthreads.a(shr_comm.o)

Cannot find libstdc+.a(libstdc+.so.6)

Cannot find libgcc_s.a(shr.o)

/usr/lib/libpthreads.a(shr_xpg5.o)

 

So maybe that’s why the loader will not load this library: the dependencies are not resolved.

0 Likes

Problem solved by updated my LIBPATH.

It did not contain any references to the required CC+ STDLIB or the GCC compiler.

 

It’s funny that there is also a dependency on the gcc compiler.

 

Once I updated the LIBPATH to reference the required libraries, the problem disappeared.

So I will go close the question on the website.