Lines 626-632
Link Here
|
626 |
/** |
626 |
/** |
627 |
* Internally used gnutls callback function that gets called during handshake. |
627 |
* Internally used gnutls callback function that gets called during handshake. |
628 |
*/ |
628 |
*/ |
|
|
629 |
#if GNUTLS_VERSION_NUMBER >= 0x020b07 |
630 |
static int internal_cert_callback(gnutls_session_t session, const gnutls_datum_t * req_ca_rdn, int nreqs, const gnutls_pk_algorithm_t * sign_algos, int sign_algos_length, gnutls_retr2_st * st) |
631 |
#else |
629 |
static int internal_cert_callback(gnutls_session_t session, const gnutls_datum_t * req_ca_rdn, int nreqs, const gnutls_pk_algorithm_t * sign_algos, int sign_algos_length, gnutls_retr_st * st) |
632 |
static int internal_cert_callback(gnutls_session_t session, const gnutls_datum_t * req_ca_rdn, int nreqs, const gnutls_pk_algorithm_t * sign_algos, int sign_algos_length, gnutls_retr_st * st) |
|
|
633 |
#endif |
630 |
{ |
634 |
{ |
631 |
int res = -1; |
635 |
int res = -1; |
632 |
gnutls_certificate_type_t type = gnutls_certificate_type_get(session); |
636 |
gnutls_certificate_type_t type = gnutls_certificate_type_get(session); |
Lines 634-641
Link Here
|
634 |
ssl_data_t ssl_data = (ssl_data_t)gnutls_session_get_ptr(session); |
638 |
ssl_data_t ssl_data = (ssl_data_t)gnutls_session_get_ptr(session); |
635 |
if (ssl_data && ssl_data->host_privkey && ssl_data->host_cert) { |
639 |
if (ssl_data && ssl_data->host_privkey && ssl_data->host_cert) { |
636 |
debug_info("Passing certificate"); |
640 |
debug_info("Passing certificate"); |
|
|
641 |
#if GNUTLS_VERSION_NUMBER >= 0x020b07 |
642 |
st->cert_type = type; |
643 |
st->key_type = GNUTLS_PRIVKEY_X509; |
644 |
#else |
637 |
st->type = type; |
645 |
st->type = type; |
638 |
st->ncerts = 1; |
646 |
#endif |
|
|
647 |
st->ncerts = 1; |
639 |
st->cert.x509 = &ssl_data->host_cert; |
648 |
st->cert.x509 = &ssl_data->host_cert; |
640 |
st->key.x509 = ssl_data->host_privkey; |
649 |
st->key.x509 = ssl_data->host_privkey; |
641 |
st->deinit_all = 0; |
650 |
st->deinit_all = 0; |
Lines 743-749
Link Here
|
743 |
debug_info("enabling SSL mode"); |
752 |
debug_info("enabling SSL mode"); |
744 |
errno = 0; |
753 |
errno = 0; |
745 |
gnutls_certificate_allocate_credentials(&ssl_data_loc->certificate); |
754 |
gnutls_certificate_allocate_credentials(&ssl_data_loc->certificate); |
746 |
gnutls_certificate_client_set_retrieve_function(ssl_data_loc->certificate, internal_cert_callback); |
755 |
#if GNUTLS_VERSION_NUMBER >= 0x020b07 |
|
|
756 |
gnutls_certificate_set_retrieve_function(ssl_data_loc->certificate, internal_cert_callback); |
757 |
#else |
758 |
gnutls_certificate_client_set_retrieve_function(ssl_data_loc->certificate, internal_cert_callback); |
759 |
#endif |
747 |
gnutls_init(&ssl_data_loc->session, GNUTLS_CLIENT); |
760 |
gnutls_init(&ssl_data_loc->session, GNUTLS_CLIENT); |
748 |
gnutls_priority_set_direct(ssl_data_loc->session, "NONE:+VERS-SSL3.0:+ANON-DH:+RSA:+AES-128-CBC:+AES-256-CBC:+SHA1:+MD5:+COMP-NULL", NULL); |
761 |
gnutls_priority_set_direct(ssl_data_loc->session, "NONE:+VERS-SSL3.0:+ANON-DH:+RSA:+AES-128-CBC:+AES-256-CBC:+SHA1:+MD5:+COMP-NULL", NULL); |
749 |
gnutls_credentials_set(ssl_data_loc->session, GNUTLS_CRD_CERTIFICATE, ssl_data_loc->certificate); |
762 |
gnutls_credentials_set(ssl_data_loc->session, GNUTLS_CRD_CERTIFICATE, ssl_data_loc->certificate); |