diff options
Diffstat (limited to 'src/rexmpp_tls.c')
-rw-r--r-- | src/rexmpp_tls.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/rexmpp_tls.c b/src/rexmpp_tls.c index 4881647..7919556 100644 --- a/src/rexmpp_tls.c +++ b/src/rexmpp_tls.c @@ -60,6 +60,15 @@ int rexmpp_tls_init (rexmpp_t *s) { gnutls_strerror(err)); return 1; } +#ifdef ENABLE_CALLS + err = gnutls_certificate_allocate_credentials(&(s->jingle.dtls_cred)); + if (err) { + gnutls_certificate_free_credentials(s->tls.gnutls_cred); + rexmpp_log(s, LOG_CRIT, "gnutls credentials allocation error: %s", + gnutls_strerror(err)); + return 1; + } +#endif return 0; #elif defined(USE_OPENSSL) SSL_library_init(); @@ -110,6 +119,9 @@ void rexmpp_tls_deinit (rexmpp_t *s) { free(s->tls.tls_session_data); s->tls.tls_session_data = NULL; } +#ifdef ENABLE_CALLS + gnutls_certificate_free_credentials(s->jingle.dtls_cred); +#endif #elif defined(USE_OPENSSL) if (s->tls.openssl_ctx != NULL) { SSL_CTX_free(s->tls.openssl_ctx); @@ -396,6 +408,12 @@ rexmpp_tls_set_x509_key_file (rexmpp_t *s, cert_file, key_file, GNUTLS_X509_FMT_PEM); +#ifdef ENABLE_CALLS + gnutls_certificate_set_x509_key_file(s->jingle.dtls_cred, + cert_file, + key_file, + GNUTLS_X509_FMT_PEM); +#endif if (ret == 0) { return REXMPP_TLS_SUCCESS; } else { |