[openssl-users] undefined symbol: SSL_SESSION_hash

winer632 winer632 at qq.com
Thu Mar 24 04:37:16 UTC 2016


Hello !

I am using openssl in OpenImsCore project to enable tls feature. But when I run pcscf I met this problem  "undefined symbol: SSL_SESSION_hash".

More information is here:

[root at iZ23djkgcm2Z wangxx]# cat /etc/redhat-release 
CentOS Linux release 7.2.1511 (Core) 
[root at iZ23djkgcm2Z wangxx]#

[root at iZ23djkgcm2Z wangxx]# tar -xzvf openssl-OpenSSL_1_0_1s.tar.gz
[root at iZ23djkgcm2Z wangxx]# cd /home/wangxx/openssl-OpenSSL_1_0_1s
[root at iZ23djkgcm2Z wangxx]# ./config shared --prefix=/usr/local --openssldir=/usr/local/openssl && make && make install

There is no symbol SSL_SESSION_hash in openssl-1.0.* however SSL_SESSION_hash exists in openssl-0.9.8*. See below.

[root at iZ23djkgcm2Z tls]# nm /home/wangxx/openssl-OpenSSL_1_0_1s/libssl.so.1.0.0 | grep SSL_SESSION_hash
[root at iZ23djkgcm2Z tls]#

[root at iZ23djkgcm2Z tls]# nm /home/wangxx/openssl-OpenSSL_0_9_8e/libssl.so.0.9.8 | grep SSL_SESSION_hash
000000000002e450 T SSL_SESSION_hash
000000000002e480 t SSL_SESSION_hash_LHASH_HASH
[root at iZ23djkgcm2Z tls]#

Is the method SSL_SESSION_hash depricated? If so what method should I use to replace it?

The code is like this:

/**

get TLS Session Hash
@param msg - sip msg received over a TLS secure connection
@returns session_hash or 0 in case of error
/
unsigned long get_tls_session_hash(struct sip_msg msg, char str1, char str2)
{
struct tcp_connection c;
struct tls_extra_data extra;
SSL_SESSION *ssl_ses;
unsigned long ses_hash;

if (msg->rcv.proto != PROTO_TLS) {
ERR("get_tls_session_hash: No TLS connection !\n");
return 0;
}
c = tcpconn_get(msg->rcv.proto_reserved1, 0, 0, tls_con_lifetime);
if (c && c->type != PROTO_TLS) {
ERR("get_tls_session_hash: Connection found but is not TLS !\n");
tcpconn_put(c);
return 0;
}

if (!c || !c->extra_data) {
ERR("get_tls_session_hash: Unable to extract SSL data from TLS connection!\n");
return 0;
}
extra = (struct tls_extra_data*)c->extra_data;

ssl_ses = SSL_get_session(extra->ssl) ;
if (!ssl_ses)
{
ERR("get_tls_session_hash: No ssl session found !\n");
tcpconn_put(c);
return 0;
}
ses_hash = SSL_SESSION_hash(ssl_ses);

tcpconn_put(c);
return ses_hash;
}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mta.openssl.org/pipermail/openssl-users/attachments/20160324/fa97354d/attachment-0001.html>


More information about the openssl-users mailing list