Re: afalg with OpenSSL 1.1.0f 25 May 2017

Matt Caswell <[email protected]>
Newsgroups gmane.comp.encryption.openssl.devel
Message-ID <[email protected]>
Comments inserted.

On 14/08/17 08:20, Jitendra Lulla wrote:
> Hi,
> 
> I am trying to use afalg on Linux 4.9.37 with OpenSSL 1.1.0f.
> 
> I am facing 2 issues:
> 
> ONE: when I issue the speed command, I see the following:
> 
> [root@localhost apps]# ./openssl speed -evp aes-128-cbc -engine afalg
> invalid engine "afalg"
> 139853452924736:error:2506406A:DSO support routines:dlfcn_bind_func:could not bind to the requested symbol name:crypto/dso/dso_dlfcn.c:178:symname(bind_engine): /usr/local/lib64/engines-1.1/afalg.so: undefined symbol: bind_engine
> 139853452924736:error:2506C06A:DSO support routines:DSO_bind_func:could not bind to the requested symbol name:crypto/dso/dso_lib.c:185:
> 139853452924736:error:260B6068:engine routines:dynamic_load:DSO failure:crypto/engine/eng_dyn.c:427:
> 139853452924736:error:2606A074:engine routines:ENGINE_by_id:no such engine:crypto/engine/eng_list.c:339:id=afalg
> 139853452924736:error:25066067:DS
> 
> 
> nm afalg.so doesn't show bind_engine
> 
Assuming you have already successfully built OpenSSL using "make", from
the "test" subdir of the directory where you downloaded the source, what
happens if you execute:

OPENSSL_ENGINES=../engines/afalg ../util/shlib_wrap.sh ./afalgtest

Another thing to try is (from the top level source dir)

touch engines/afalg/e_afalg.c
make

Check to see if there are any warnings generated during the compilation
of the engine.

> 
> When I modify the openssl.cnf file with the engine name and the CIPHERS, still I dont get it working. The command output and the change in the openssl.cnf pasted at the end of the mail.
> 
> 
> TWO: I had to create a softlink to libcrypto.so.1.1 and libssl.so.1.1 like the following to make openssl command work:
> ln -s /usr/local/lib64/libssl.so.1.1 /lib64/libssl.so.1.1
> ln -s /usr/local/lib64/libcrypto.so.1.1 /lib64/libcrypto.so.1.1
> 
> Is creating the softlinks a known issue and will be fixed? 
No, this will not be fixed and may not be the most appropriate thing to
do on all systems.


Matt


> 
> I have pasted the complete information about the OS/distro environment and installation commands I ran at the bottom.
> Could you please suggest what wrong I am doing to make afalg work.
> 
> Thanks
> Jitendra Lulla
> 
> ========
> 
> 
> BEFORE INSTALLATION:
> 
> [root@localhost jlulla]# rpm -qa  |grep openssl
> openssl-1.0.1e-60.el7.x86_64
> openssl-devel-1.0.1e-60.el7.x86_64
> openssl-libs-1.0.1e-60.el7.x86_64
> 
> [root@localhost jlulla]# openssl version
> OpenSSL 1.0.1e-fips 11 Feb 2013
> 
> 
> 
> PLEASE SEE FROM HERE PLEASE SEE FROM HERE PLEASE SEE FROM HERE----------------------------
> 
> STEP 1 : SOURCE TAKEN FROM https://www.openssl.org/source/openssl-1.1.0f.tar.gz 2017-May-25 13:09:51
> 
> [root@localhost jlulla]# uname -a
> Linux localhost.localdomain 4.9.37 #1 SMP Fri Jul 21 04:52:46 PDT 2017 x86_64 x86_64 x86_64 GNU/Linux
> 
> [root@localhost jlulla]# cat /etc/redhat-release
> Red Hat Enterprise Linux Server release 7.3 (Maipo)
> 
> 
> 
> [root@localhost openssl-1.1.0f]# pwd
> /home/jlulla/openssl-1.1.0f
> 
> STEP 2: [root@localhost openssl-1.1.0f]# ./config shared enable-engine enable-dso enable-afalgeng
> Operating system: x86_64-whatever-linux2
> Configuring for linux-x86_64
> Configuring OpenSSL version 1.1.0f (0x1010006fL)
>     no-asan        [default]  OPENSSL_NO_ASAN
>     no-crypto-mdebug [default]  OPENSSL_NO_CRYPTO_MDEBUG
>     no-crypto-mdebug-backtrace [default]  OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE
>     no-ec_nistp_64_gcc_128 [default]  OPENSSL_NO_EC_NISTP_64_GCC_128
>     no-egd          [default]  OPENSSL_NO_EGD
>     no-fuzz-afl    [default]  OPENSSL_NO_FUZZ_AFL
>     no-fuzz-libfuzzer [default]  OPENSSL_NO_FUZZ_LIBFUZZER
>     no-heartbeats  [default]  OPENSSL_NO_HEARTBEATS
>     no-md2          [default]  OPENSSL_NO_MD2 (skip dir)
>     no-msan        [default]  OPENSSL_NO_MSAN
>     no-rc5          [default]  OPENSSL_NO_RC5 (skip dir)
>     no-sctp        [default]  OPENSSL_NO_SCTP
>     no-ssl-trace    [default]  OPENSSL_NO_SSL_TRACE
>     no-ssl3        [default]  OPENSSL_NO_SSL3
>     no-ssl3-method  [default]  OPENSSL_NO_SSL3_METHOD
>     no-ubsan        [default]  OPENSSL_NO_UBSAN
>     no-unit-test    [default]  OPENSSL_NO_UNIT_TEST
>     no-weak-ssl-ciphers [default]  OPENSSL_NO_WEAK_SSL_CIPHERS
>     no-zlib        [default]
>     no-zlib-dynamic [default]
> Configuring for linux-x86_64
> CC            =gcc
> CFLAG        =-Wall -O3 -pthread -m64 -DL_ENDIAN  -Wa,--noexecstack
> SHARED_CFLAG  =-fPIC -DOPENSSL_USE_NODELETE
> DEFINES      =DSO_DLFCN HAVE_DLFCN_H NDEBUG OPENSSL_THREADS OPENSSL_NO_STATIC_ENGINE OPENSSL_PIC OPENSSL_IA32_SSE2 OPENSSL_BN_ASM_MONT OPENSSL_BN_ASM_MONT5 OPENSSL_BN_ASM_GF2m SHA1_ASM SHA256_ASM SHA512_ASM RC4_ASM MD5_ASM AES_ASM VPAES_ASM BSAES_ASM GHASH_ASM ECP_NISTZ256_ASM PADLOCK_ASM POLY1305_ASM
> LFLAG        =
> PLIB_LFLAG    =
> EX_LIBS      =-ldl
> APPS_OBJ      =
> CPUID_OBJ    =x86_64cpuid.o
> UPLINK_OBJ    =
> BN_ASM        =asm/x86_64-gcc.o x86_64-mont.o x86_64-mont5.o x86_64-gf2m.o rsaz_exp.o rsaz-x86_64.o rsaz-avx2.o
> EC_ASM        =ecp_nistz256.o ecp_nistz256-x86_64.o
> DES_ENC      =des_enc.o fcrypt_b.o
> AES_ENC      =aes-x86_64.o vpaes-x86_64.o bsaes-x86_64.o aesni-x86_64.o aesni-sha1-x86_64.o aesni-sha256-x86_64.o aesni-mb-x86_64.o
> BF_ENC        =bf_enc.o
> CAST_ENC      =c_enc.o
> RC4_ENC      =rc4-x86_64.o rc4-md5-x86_64.o
> RC5_ENC      =rc5_enc.o
> MD5_OBJ_ASM  =md5-x86_64.o
> SHA1_OBJ_ASM  =sha1-x86_64.o sha256-x86_64.o sha512-x86_64.o sha1-mb-x86_64.o sha256-mb-x86_64.o
> RMD160_OBJ_ASM=
> CMLL_ENC      =cmll-x86_64.o cmll_misc.o
> MODES_OBJ    =ghash-x86_64.o aesni-gcm-x86_64.o
> PADLOCK_OBJ  =e_padlock-x86_64.o
> CHACHA_ENC    =chacha-x86_64.o
> POLY1305_OBJ  =poly1305-x86_64.o
> BLAKE2_OBJ    =
> PROCESSOR    =
> RANLIB        =ranlib
> ARFLAGS      =
> PERL          =/usr/bin/perl
> 
> SIXTY_FOUR_BIT_LONG mode
> 
> Configured for linux-x86_64.
> [root@localhost openssl-1.1.0f]#
> 
> make didnt give any error.
> 
> make install didnt give any error
> 
> updatedb
> 
> STEP 2: 
> [root@localhost openssl-1.1.0f]# md5sum /home/jlulla/openssl-1.1.0f/libssl.so.1.1 /usr/local/lib64/libssl.so.1.1
> 5a7264a3ebda22989c831794d30677c5  /home/jlulla/openssl-1.1.0f/libssl.so.1.1
> 5a7264a3ebda22989c831794d30677c5  /usr/local/lib64/libssl.so.1.1
> 
> [root@localhost openssl-1.1.0f]# ls -l /home/jlulla/openssl-1.1.0f/libssl.so
> lrwxrwxrwx. 1 root root 13 Aug 10 23:45 /home/jlulla/openssl-1.1.0f/libssl.so -> libssl.so.1.1
> 
> 
> [root@localhost apps]# pwd
> /home/jlulla/openssl-1.1.0f/apps
> [root@localhost apps]# ./openssl
> ./openssl: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory
> 
> [root@localhost apps]# ldd ./openssl
>         linux-vdso.so.1 =>  (0x00007ffd02f3c000)
>         libssl.so.1.1 => not found
>         libcrypto.so.1.1 => not found
>         libdl.so.2 => /lib64/libdl.so.2 (0x00007f0439fda000)
>         libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f0439dbe000)
>         libc.so.6 => /lib64/libc.so.6 (0x00007f04399fc000)
>         /lib64/ld-linux-x86-64.so.2 (0x000055d618530000)
> 
> 
> [root@localhost apps]# ls -l /lib64/libssl.so.1.1
> ls: cannot access /lib64/libssl.so.1.1: No such file or directory
> 
> ln -s /usr/local/lib64/libssl.so.1.1 /lib64/libssl.so.1.1
> 
> STEP 3:
> [root@localhost apps]# ln -s /usr/local/lib64/libssl.so.1.1 /lib64/libssl.so.1.1
> [root@localhost apps]# ls -l /lib64/libssl.so.1.1
> lrwxrwxrwx. 1 root root 30 Aug 10 23:57 /lib64/libssl.so.1.1 -> /usr/local/lib64/libssl.so.1.1
> 
> 
> [root@localhost apps]# ln -s /usr/local/lib64/libcrypto.so.1.1 /lib64/libcrypto.so.1.1
> [root@localhost apps]# ls -l /lib64/libcrypto.so.1.1
> lrwxrwxrwx. 1 root root 33 Aug 10 23:58 /lib64/libcrypto.so.1.1 -> /usr/local/lib64/libcrypto.so.1.1
> 
> [root@localhost apps]# ldd ./openssl
>         linux-vdso.so.1 =>  (0x00007ffd37b5e000)
>         libssl.so.1.1 => /lib64/libssl.so.1.1 (0x00007f82881f8000)
>         libcrypto.so.1.1 => /lib64/libcrypto.so.1.1 (0x00007f8287d73000)
>         libdl.so.2 => /lib64/libdl.so.2 (0x00007f8287b6e000)
>         libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f8287952000)
>         libc.so.6 => /lib64/libc.so.6 (0x00007f8287591000)
>         /lib64/ld-linux-x86-64.so.2 (0x000055f06bc67000)
> 
> 
> [root@localhost apps]# ./openssl version
> OpenSSL 1.1.0f  25 May 2017
> 
> 
> STEP 4:
> [root@localhost afalg]# pwd
> /home/jlulla/openssl-1.1.0f/engines/afalg
> 
> [root@localhost afalg]# ls
> afalg.so  build.info  e_afalg.c  e_afalg.d  e_afalg.ec  e_afalg_err.c  e_afalg_err.d  e_afalg_err.h  e_afalg_err.o  e_afalg.h  e_afalg.o
> 
> [root@localhost afalg]# ldd afalg.so
>         linux-vdso.so.1 =>  (0x00007fff1d7ef000)
>         libcrypto.so.1.1 => /lib64/libcrypto.so.1.1 (0x00007f3a80166000)
>         libdl.so.2 => /lib64/libdl.so.2 (0x00007f3a7ff62000)
>         libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f3a7fd45000)
>         libc.so.6 => /lib64/libc.so.6 (0x00007f3a7f984000)
>         /lib64/ld-linux-x86-64.so.2 (0x0000560991976000)
> 
> 
> [root@localhost afalg]# nm afalg.so
> 0000000000202060 d AFALG_error_init
> 0000000000202220 b AFALG_lib_error_code
> 0000000000202160 d AFALG_str_functs
> 0000000000202080 d AFALG_str_reasons
> 0000000000202210 B __bss_start
> 0000000000202210 b completed.6344
>                 w __cxa_finalize@@GLIBC_2.2.5
> 0000000000000a00 t deregister_tm_clones
> 0000000000000a70 t __do_global_dtors_aux
> 0000000000201da0 t __do_global_dtors_aux_fini_array_entry
> 0000000000201db0 d __dso_handle
> 0000000000201db8 d _DYNAMIC
> 0000000000202210 D _edata
> 0000000000202228 B _end
> 0000000000000af0 T engine_load_afalg_int
> 0000000000000bb0 T ERR_AFALG_error
>                 U ERR_get_next_error_library@@OPENSSL_1_1_0
> 0000000000000b00 T ERR_load_AFALG_strings
>                 U ERR_load_strings@@OPENSSL_1_1_0
>                 U ERR_put_error@@OPENSSL_1_1_0
> 0000000000000b60 T ERR_unload_AFALG_strings
>                 U ERR_unload_strings@@OPENSSL_1_1_0
> 0000000000000bf8 T _fini
> 0000000000000ab0 t frame_dummy
> 0000000000201d98 t __frame_dummy_init_array_entry
> 0000000000000eb8 r __FRAME_END__
> 0000000000202000 d _GLOBAL_OFFSET_TABLE_
>                 w __gmon_start__
> 0000000000000970 T _init
>                 w _ITM_deregisterTMCloneTable
>                 w _ITM_registerTMCloneTable
> 0000000000201da8 d __JCR_END__
> 0000000000201da8 d __JCR_LIST__
>                 w _Jv_RegisterClasses
> 0000000000000a30 t register_tm_clones
> 0000000000202210 d __TMC_END__
> 
> 
> [root@localhost openssl-1.1.0f]# locate afalg.so
> /home/jlulla/openssl-1.1.0f/engines/afalg/afalg.so
> /usr/local/lib64/engines-1.1/afalg.so
> 
> 
> [root@localhost openssl-1.1.0f]# md5sum /home/jlulla/openssl-1.1.0f/engines/afalg/afalg.so /usr/local/lib64/engines-1.1/afalg.so
> ec273faa6eb6e25f55e44a7d37adf195  /home/jlulla/openssl-1.1.0f/engines/afalg/afalg.so
> ec273faa6eb6e25f55e44a7d37adf195  /usr/local/lib64/engines-1.1/afalg.so
> 
> 
> [root@localhost apps]# date
> Fri Aug 11 00:01:10 PDT 2017
> 
> 
> [root@localhost apps]# ls -l /usr/local/ssl/openssl.cnf
> -rw-r--r--. 1 root root 10771 Aug 10 23:47 /usr/local/ssl/openssl.cnf
> 
> [root@localhost apps]# md5sum /usr/local/ssl/openssl.cnf /home/jlulla/openssl-1.1.0f/apps/openssl.cnf
> f697ef5df0d006882e6326606e8dbf4a  /usr/local/ssl/openssl.cnf
> f697ef5df0d006882e6326606e8dbf4a  /home/jlulla/openssl-1.1.0f/apps/openssl.cnf
> 
> 
> openssl.cnf has the following:
> ..
> ..
> # Extra OBJECT IDENTIFIER info:
> #oid_file              = $ENV::HOME/.oid
> oid_section            = new_oids
> 
> # To use this configuration file with the "-extfile" option of the
> # "openssl x509" utility, name here the section containing the
> # X.509v3 extensions to use:
> # extensions            =
> # (Alternatively, use a configuration file that has only
> # X.509v3 extensions in its main [= default] section.)
> 
> ..
> ..
> 
> [root@localhost apps]# ./openssl speed -evp aes-128-cbc -engine afalg
> invalid engine "afalg"
> 139853452924736:error:2506406A:DSO support routines:dlfcn_bind_func:could not bind to the requested symbol name:crypto/dso/dso_dlfcn.c:178:symname(bind_engine): /usr/local/lib64/engines-1.1/afalg.so: undefined symbol: bind_engine
> 139853452924736:error:2506C06A:DSO support routines:DSO_bind_func:could not bind to the requested symbol name:crypto/dso/dso_lib.c:185:
> 139853452924736:error:260B6068:engine routines:dynamic_load:DSO failure:crypto/engine/eng_dyn.c:427:
> 139853452924736:error:2606A074:engine routines:ENGINE_by_id:no such engine:crypto/engine/eng_list.c:339:id=afalg
> 139853452924736:error:25066067:DSO support routines:dlfcn_load:could not load the shared library:crypto/dso/dso_dlfcn.c:113:filename(libafalg.so): libafalg.so: cannot open shared object file: No such file or directory
> 139853452924736:error:25070067:DSO support routines:DSO_load:could not load the shared library:crypto/dso/dso_lib.c:161:
> 139853452924736:error:260B6084:engine routines:dynamic_load:dso not found:crypto/engine/eng_dyn.c:414:
> ^C
> 
> 
> Modified both the files as the follwing:
> /usr/local/ssl/openssl.cnf
> /home/jlulla/openssl-1.1.0f/apps/openssl.cnf
> 
> # Extra OBJECT IDENTIFIER info:
> #oid_file              = $ENV::HOME/.oid
> oid_section            = new_oids
> 
> openssl_conf = openssl_def
> 
> [openssl_def]
> engines = openssl_engines
> 
> [openssl_engines]
> afalg = afalg_engine
> 
> [afalg_engine]
> CIPHERS=aes-128-cbc
> 
> With the above, the errors are more:
> [root@localhost apps]# ./openssl speed -evp aes-128-cbc -engine afalg
> invalid engine "afalg"
> 140473780422464:error:2506406A:DSO support routines:dlfcn_bind_func:could not bind to the requested symbol name:crypto/dso/dso_dlfcn.c:178:symname(bind_engine): /usr/local/lib64/engines-1.1/afalg.so: undefined symbol: bind_engine
> 140473780422464:error:2506C06A:DSO support routines:DSO_bind_func:could not bind to the requested symbol name:crypto/dso/dso_lib.c:185:
> 140473780422464:error:260B6068:engine routines:dynamic_load:DSO failure:crypto/engine/eng_dyn.c:427:
> 140473780422464:error:2606A074:engine routines:ENGINE_by_id:no such engine:crypto/engine/eng_list.c:339:id=afalg
> 140473780422464:error:260BC066:engine routines:int_engine_configure:engine configuration error:crypto/engine/eng_cnf.c:141:section=afalg_engine, name=CIPHERS, value=aes-128-cbc
> 140473780422464:error:0E07606D:configuration file routines:module_run:module initialization error:crypto/conf/conf_mod.c:173:module=engines, value=openssl_engines, retcode=-1
> 140473780422464:error:2506406A:DSO support routines:dlfcn_bind_func:could not bind to the requested symbol name:crypto/dso/dso_dlfcn.c:178:symname(bind_engine): /usr/local/lib64/engines-1.1/afalg.so: undefined symbol: bind_engine
> 140473780422464:error:2506C06A:DSO support routines:DSO_bind_func:could not bind to the requested symbol name:crypto/dso/dso_lib.c:185:
> 140473780422464:error:260B6068:engine routines:dynamic_load:DSO failure:crypto/engine/eng_dyn.c:427:
> 140473780422464:error:2606A074:engine routines:ENGINE_by_id:no such engine:crypto/engine/eng_list.c:339:id=afalg
> 140473780422464:error:25066067:DSO support routines:dlfcn_load:could not load the shared library:crypto/dso/dso_dlfcn.c:113:filename(libafalg.so): libafalg.so: cannot open shared object file: No such file or directory
> 140473780422464:error:25070067:DSO support routines:DSO_load:could not load the shared library:crypto/dso/dso_lib.c:161:
> 140473780422464:error:260B6084:engine routines:dynamic_load:dso not found:crypto/engine/eng_dyn.c:414:
> ^C
> 
-- 
openssl-dev mailing list
To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-dev
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.