forked from enlightenment/efl
enable compression for gnutls, add error checks to client functions
SVN revision: 52377
This commit is contained in:
parent
cb0c97b6c3
commit
c7608248dd
|
@ -279,6 +279,7 @@ static Ecore_Con_Ssl_Error
|
||||||
_ecore_con_ssl_server_init_gnutls(Ecore_Con_Server *svr)
|
_ecore_con_ssl_server_init_gnutls(Ecore_Con_Server *svr)
|
||||||
{
|
{
|
||||||
const int *proto = NULL;
|
const int *proto = NULL;
|
||||||
|
const int compress[] = { GNUTLS_COMP_DEFLATE, GNUTLS_COMP_NULL, 0 };
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
const int kx[] = { GNUTLS_KX_ANON_DH, 0 };
|
const int kx[] = { GNUTLS_KX_ANON_DH, 0 };
|
||||||
const int ssl3_proto[] = { GNUTLS_SSL3, 0 };
|
const int ssl3_proto[] = { GNUTLS_SSL3, 0 };
|
||||||
|
@ -318,20 +319,30 @@ _ecore_con_ssl_server_init_gnutls(Ecore_Con_Server *svr)
|
||||||
server_cert->count++;
|
server_cert->count++;
|
||||||
}
|
}
|
||||||
|
|
||||||
gnutls_init(&(svr->session), GNUTLS_CLIENT);
|
if ((ret = gnutls_init(&(svr->session), GNUTLS_CLIENT)))
|
||||||
gnutls_set_default_priority(svr->session);
|
goto error;
|
||||||
gnutls_kx_set_priority(svr->session, kx);
|
if ((ret = gnutls_set_default_priority(svr->session)))
|
||||||
|
goto error;
|
||||||
|
if ((ret = gnutls_kx_set_priority(svr->session, kx)))
|
||||||
|
goto error;
|
||||||
if (svr->cert)
|
if (svr->cert)
|
||||||
gnutls_credentials_set(svr->session, GNUTLS_CRD_CERTIFICATE,
|
if ((ret = gnutls_credentials_set(svr->session, GNUTLS_CRD_CERTIFICATE,
|
||||||
svr->cert);
|
svr->cert)))
|
||||||
|
goto error;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
gnutls_anon_allocate_client_credentials(&svr->anoncred_c);
|
if ((ret = gnutls_anon_allocate_client_credentials(&svr->anoncred_c)))
|
||||||
gnutls_credentials_set(svr->session, GNUTLS_CRD_ANON, svr->anoncred_c);
|
goto error;
|
||||||
|
if ((ret = gnutls_credentials_set(svr->session, GNUTLS_CRD_ANON, svr->anoncred_c)))
|
||||||
|
goto error;
|
||||||
}
|
}
|
||||||
|
|
||||||
gnutls_kx_set_priority(svr->session, kx);
|
if ((ret = gnutls_kx_set_priority(svr->session, kx)))
|
||||||
gnutls_protocol_set_priority(svr->session, proto);
|
goto error;
|
||||||
|
if ((ret = gnutls_protocol_set_priority(svr->session, proto)))
|
||||||
|
goto error;
|
||||||
|
if ((ret = gnutls_compression_set_priority(svr->session, compress)))
|
||||||
|
goto error;
|
||||||
gnutls_dh_set_prime_bits(svr->session, 2048);
|
gnutls_dh_set_prime_bits(svr->session, 2048);
|
||||||
|
|
||||||
gnutls_transport_set_ptr(svr->session, (gnutls_transport_ptr_t)svr->fd);
|
gnutls_transport_set_ptr(svr->session, (gnutls_transport_ptr_t)svr->fd);
|
||||||
|
@ -347,6 +358,10 @@ _ecore_con_ssl_server_init_gnutls(Ecore_Con_Server *svr)
|
||||||
}
|
}
|
||||||
|
|
||||||
return ECORE_CON_SSL_ERROR_NONE;
|
return ECORE_CON_SSL_ERROR_NONE;
|
||||||
|
|
||||||
|
error:
|
||||||
|
ERR("gnutls returned with error: %s", gnutls_strerror(ret));
|
||||||
|
return ECORE_CON_SSL_ERROR_SERVER_INIT_FAILED;
|
||||||
}
|
}
|
||||||
|
|
||||||
static Eina_Bool
|
static Eina_Bool
|
||||||
|
@ -465,6 +480,7 @@ _ecore_con_ssl_client_init_gnutls(Ecore_Con_Client *cl)
|
||||||
const int *proto = NULL;
|
const int *proto = NULL;
|
||||||
gnutls_dh_params_t dh_params;
|
gnutls_dh_params_t dh_params;
|
||||||
int ret;
|
int ret;
|
||||||
|
const int compress[] = { GNUTLS_COMP_DEFLATE, GNUTLS_COMP_NULL, 0 };
|
||||||
const int kx[] = { GNUTLS_KX_ANON_DH, 0 };
|
const int kx[] = { GNUTLS_KX_ANON_DH, 0 };
|
||||||
const int ssl3_proto[] = { GNUTLS_SSL3, 0 };
|
const int ssl3_proto[] = { GNUTLS_SSL3, 0 };
|
||||||
const int tls_proto[] = {
|
const int tls_proto[] = {
|
||||||
|
@ -541,6 +557,8 @@ _ecore_con_ssl_client_init_gnutls(Ecore_Con_Client *cl)
|
||||||
|
|
||||||
if ((ret = gnutls_protocol_set_priority(cl->session, proto)))
|
if ((ret = gnutls_protocol_set_priority(cl->session, proto)))
|
||||||
goto error;
|
goto error;
|
||||||
|
if ((ret = gnutls_compression_set_priority(cl->session, compress)))
|
||||||
|
goto error;
|
||||||
|
|
||||||
gnutls_transport_set_ptr(cl->session, (gnutls_transport_ptr_t)cl->fd);
|
gnutls_transport_set_ptr(cl->session, (gnutls_transport_ptr_t)cl->fd);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue