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@iZ23djkgcm2Z wangxx]# cat /etc/redhat-release 
CentOS Linux release 7.2.1511 (Core) 
[root@iZ23djkgcm2Z wangxx]#

[root@iZ23djkgcm2Z wangxx]# tar -xzvf openssl-OpenSSL_1_0_1s.tar.gz
[root@iZ23djkgcm2Z wangxx]# cd /home/wangxx/openssl-OpenSSL_1_0_1s
[root@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@iZ23djkgcm2Z tls]# nm /home/wangxx/openssl-OpenSSL_1_0_1s/libssl.so.1.0.0 
| grep SSL_SESSION_hash
[root@iZ23djkgcm2Z tls]#

[root@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@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;
}
-- 
openssl-users mailing list
To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-users

Reply via email to