Skip to content

libcrypto linking issue with AWS SDK 1.11.285 #2962

Closed
@srinivasab3

Description

@srinivasab3

Describe the bug

Built the AWS SDK CPP with version 1.11.285.

Application CMake file looks something like this.

find_package(AWSSDK REQUIRED COMPONENTS kinesis s3 secretsmanager ssm lambda iot)
find_package(aws-crt-cpp REQUIRED)
find_package(aws-cpp-sdk-iot REQUIRED)
find_package(IotShadow-cpp REQUIRED)
find_package(crypto REQUIRED)

But we are getting the below error while running.
Apr 11 11:23:50 localhost cis[22510]: [cis-1] /opt/x/x/cis/lib/cis/cis: symbol lookup error: /opt/x/x/tools/lib/libs2n.so.1: undefined symbol: CRYPTO_tls1_prf
Apr 11 11:23:50 localhost cis[22510]: [ERROR] [cis-1]: process has died [pid 22589, exit code 127, cmd '/opt/x/x/cis/lib/cis/cis --config-file

CRYPTO_tls1_prf this function is present in the AWS prebuilt libcrypto.so.

root@localhost:~# ls -l /opt/x/x/tools/lib/libcrypto.so
-rw-r--r-- 1 root root 13434240 May 14 05:52 /opt/x/x/tools/lib/libcrypto.so

But there are libcrypto.so is present in other two locations.

root@localhost:~# ls -l /usr/lib/aarch64-linux-gnu/libcrypto.so*
-rw-r--r-- 1 root root 1770176 Mar 17 2022 /usr/lib/aarch64-linux-gnu/libcrypto.so.1.0.2
-rw-r--r-- 1 root root 2112712 May 15 2022 /usr/lib/aarch64-linux-gnu/libcrypto.so.1.1

root@localhost:~# ls -l /usr/local/lib/openssl-1.1.1/lib/libcrypto.so*
lrwxrwxrwx 1 root staff 16 Oct 13 2021 /usr/local/lib/openssl-1.1.1/lib/libcrypto.so -> libcrypto.so.1.1
-rwxr-xr-x 1 root staff 2849520 May 14 13:00 /usr/local/lib/openssl-1.1.1/lib/libcrypto.so.1.1

root@localhost:~# nm /opt/x/x/tools/lib/libcrypto.so | grep tls1_prf
000000000015acb0 T CRYPTO_tls1_prf

root@localhost:# nm /usr/lib/aarch64-linux-gnu/libcrypto.so.1.0.2
nm: /usr/lib/aarch64-linux-gnu/libcrypto.so.1.0.2: no symbols
root@localhost:
# nm /usr/lib/aarch64-linux-gnu/libcrypto.so.1.1
nm: /usr/lib/aarch64-linux-gnu/libcrypto.so.1.1: no symbols

root@localhost:~# nm /usr/local/lib/openssl-1.1.1/lib/libcrypto.so.1.1 | grep tls1_prf
000000000015db20 t pkey_tls1_prf_cleanup
000000000015d740 t pkey_tls1_prf_ctrl
000000000015db70 t pkey_tls1_prf_ctrl_str
000000000015dd20 t pkey_tls1_prf_derive
000000000015e2e8 t pkey_tls1_prf_init
000000000015d888 t tls1_prf_P_hash
00000000002488e0 d tls1_prf_pkey_meth

libs2n.so.1 is linking to /usr/local/lib/openssl-1.1.1/lib/libcrypto.so.1.1

ldd /opt/x/x/tools/lib/libs2n.so.1
linux-vdso.so.1 (0x0000ffffbe99d000)
libcrypto.so => /usr/local/lib/openssl-1.1.1/lib/libcrypto.so (0x0000ffffbe5a3000)
libpthread.so.0 => /lib/aarch64-linux-gnu/libpthread.so.0 (0x0000ffffbe572000)
libc.so.6 => /lib/aarch64-linux-gnu/libc.so.6 (0x0000ffffbe3fc000)
/lib/ld-linux-aarch64.so.1 (0x0000ffffbe96d000)
libz.so.1 => /lib/aarch64-linux-gnu/libz.so.1 (0x0000ffffbe3d4000)
libdl.so.2 => /lib/aarch64-linux-gnu/libdl.so.2 (0x0000ffffbe3c0000)

Please let us know how we can fix this.

Expected Behavior

It should run fine without any linking error

Current Behavior

Apr 11 11:23:50 localhost cis[22510]: [cis-1] /opt/x/x/cis/lib/cis/cis: symbol lookup error: /opt/x/x/tools/lib/libs2n.so.1: undefined symbol: CRYPTO_tls1_prf
Apr 11 11:23:50 localhost cis[22510]: [ERROR] [cis-1]: process has died [pid 22589, exit code 127, cmd '/opt/x/x/cis/lib/cis/cis --config-file

Reproduction Steps

Mentioned above

Possible Solution

No response

Additional Information/Context

No response

AWS CPP SDK version used

1.11.285

Compiler and Version used

set(CMAKE_CXX_STANDARD 14)

Operating System and version

Linux

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugThis issue is a bug.p2This is a standard priority issuepending-releaseThis issue will be fixed by an approved PR that hasn't been released yet.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions