[openssl-users] is 1.0.2g meant to be buildable ? missing rc4_md5_enc implementation !

Jason Vas Dias jason.vas.dias at gmail.com
Wed Apr 6 21:36:12 UTC 2016


Aha! Configure-ing with 'no-asm' fixed it. Apparently, my perl-5.22.1
installation is
lacking in some way . I'm surprised the make script did not complain
that it could
not generate the ASM before attempting to build openssl using the
deficient libcrypto .

Regards,
Jason

On 06/04/2016, Jason Vas Dias <jason.vas.dias at gmail.com> wrote:
> Thanks Jakob -
> But running the rc4-x86_64.pl script, even if by a Makefile, does not
> define
> the function either :
>
> $ ./rc4-x86_64.pl  > ../rc4-md5-x86_64.s
> $ cd ..
> $ as -o rc4-md5-x86_64.o rc4-md5-x86_64.s
> $ nm rc4-md5-x86_64.o
>                  U OPENSSL_ia32cap_P
> 0000000000000000 T RC4
> 0000000000000720 T RC4_options
> 0000000000000660 T private_RC4_set_key
>
> Do I need to pass 'no-asm' to Configure ?
>
> The Configure command I used was :
>
> $ LIBDIR=/usr/lib64 ./Configure --prefix=/usr threads shared
> linux-x86_64:gcc $CFLAGS_64 2>&1 | tee configure.log
>
> configure.log attached.
>
> And I did run 'make depend' - log attached.
>
> I used the command:
>
> $ make -j4 2>&1 | tee make.log
>
> to build OpenSSL and there is no occurence of the text ' rc4-x86_64'
> anywhere in
> that (v.large) log file , indicating no attempt was made to generate
> ASM for x86_64 ?
>
> Please, for practical everyday use, what is the latest / best stable OpenSSL
> ?
> 1.0.1s or 1.0.2g ?
>
> The last one I used extensively was 1.0.1g - but I'd like to build the
> latest stable release now.
>
> Thanks & Regards, Jason
>
>
>
> On 06/04/2016, Jakob Bohm <jb-openssl at wisemo.com> wrote:
>> No, that script is run by the Makefile if relevant.
>>
>> Given what others have reported recently, please check
>> what arguments you passed to config or configure (before
>> running make).
>>
>> Also remember to do make depend.
>>
>> On 06/04/2016 22:58, Jason Vas Dias wrote:
>>> Aha! I just saw rc4-md5-x86_64.pl - am I meant to run this manually to
>>> produce the ASM
>>> to compile to produce the object ? Why wasn't this run as part of the
>>> build ?
>>> I am building with perl-5.22.1 , gcc-5.3.0, make-4.1 on Linux x86_64 LFS
>>> .
>>>
>>>
>>> On 06/04/2016, Jason Vas Dias <jason.vas.dias at gmail.com> wrote:
>>>> please can anyone tell me:
>>>> Is the 1.0.2g release from :
>>>>     http://www.openssl.org/source/openssl-1.0.2g.tar.gz
>>>> meant to build ? Is this meant to be the latest stable release , or is
>>>> that 1.0.1s ?
>>>> The 1.0.2g release does not build, for the linux-x86_64:gcc 'threads
>>>> shared' configuration
>>>> (or any other AFAICS) because it lacks an implementation of
>>>> rc4_md4_enc() - there
>>>> are calls to it in crypto/evp/e_rc4_hmac_md5.c , but no definition of
>>>> it
>>>> :
>>>>
>>>> $ grep -RIn --include '*.[ch]' rc4_md5_enc
>>>> crypto/evp/e_rc4_hmac_md5.c:80:void rc4_md5_enc(RC4_KEY *key, const
>>>> void *in0, void *out,
>>>> crypto/evp/e_rc4_hmac_md5.c:144:            rc4_md5_enc(&key->ks, in +
>>>> rc4_off, out + rc4_off,
>>>> crypto/evp/e_rc4_hmac_md5.c:188:            rc4_md5_enc(&key->ks, in +
>>>> rc4_off, out + rc4_off,
>>>> $ make
>>>> ...
>>>> $ ( LIBDEPS="${LIBDEPS:--L.. -lssl  -L.. -lcrypto }";
>>>> LDCMD="${LDCMD:-gcc}"; LDFLAGS="${LDFLAGS:--DOPENSSL_THREADS
>>>> -march=x86-64 -mtune=native -O2 -g -fPIC -pipe }"; LIBPATH=`for x in
>>>> $LIBDEPS; do echo $x; done | sed -e 's/^ *-L//;t' -e d | uniq`;
>>>> LIBPATH=`echo $LIBPATH | sed -e 's/ /:/g'`; set -x;
>>>> LD_LIBRARY_PATH=$LIBPATH:$LD_LIBRARY_PATH ${LDCMD} ${LDFLAGS} -o
>>>> ${APPNAME:=openssl} openssl.o verify.o asn1pars.o req.o dgst.o dh.o
>>>> dhparam.o enc.o passwd.o gendh.o errstr.o ca.o pkcs7.o crl2p7.o crl.o
>>>> rsa.o rsautl.o dsa.o dsaparam.o ec.o ecparam.o x509.o genrsa.o
>>>> gendsa.o genpkey.o s_server.o s_client.o speed.o s_time.o apps.o
>>>> s_cb.o s_socket.o app_rand.o version.o sess_id.o ciphers.o nseq.o
>>>> pkcs12.o pkcs8.o pkey.o pkeyparam.o pkeyutl.o spkac.o smime.o cms.o
>>>> rand.o engine.o ocsp.o prime.o ts.o srp.o ${LIBDEPS} )
>>>> + LD_LIBRARY_PATH=..:
>>>> + gcc -DOPENSSL_THREADS -march=x86-64 -mtune=native -O2 -g -fPIC -pipe
>>>> -o openssl openssl.o verify.o asn1pars.o req.o dgst.o dh.o dhparam.o
>>>> enc.o passwd.o gendh.o errstr.o ca.o pkcs7.o crl2p7.o crl.o rsa.o
>>>> rsautl.o dsa.o dsaparam.o ec.o ecparam.o x509.o genrsa.o gendsa.o
>>>> genpkey.o s_server.o s_client.o speed.o s_time.o apps.o s_cb.o
>>>> s_socket.o app_rand.o version.o sess_id.o ciphers.o nseq.o pkcs12.o
>>>> pkcs8.o pkey.o pkeyparam.o pkeyutl.o spkac.o smime.o cms.o rand.o
>>>> engine.o ocsp.o prime.o ts.o srp.o -L.. -lssl -L.. -lcrypto
>>>> ../libcrypto.a(e_rc4_hmac_md5.o): In function `rc4_hmac_md5_cipher':
>>>> /usr/build/linux/openssl-1.0.2g/crypto/evp/e_rc4_hmac_md5.c:144:
>>>> undefined reference to `rc4_md5_enc'
>>>> /usr/build/linux/openssl-1.0.2g/crypto/evp/e_rc4_hmac_md5.c:188:
>>>> undefined reference to `rc4_md5_enc'
>>>> collect2: error: ld returned 1 exit status
>>>>
>>>> ie. the make fails because nowhere in any library or object file is
>>>> that function defined -
>>>> I have checked this with nm .
>>>>
>>>> I guess my answer is that ! should be building 1.0.1s ?
>>>>
>>
>>
>> Enjoy
>>
>> Jakob
>> --
>> Jakob Bohm, CIO, Partner, WiseMo A/S.  https://www.wisemo.com
>> Transformervej 29, 2860 Søborg, Denmark.  Direct +45 31 13 16 10
>> This public discussion message is non-binding and may contain errors.
>> WiseMo - Remote Service Management for PCs, Phones and Embedded
>>
>> --
>> openssl-users mailing list
>> To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-users
>>
>


More information about the openssl-users mailing list