]> jfr.im git - irc/freenode/ircd-seven.git/commitdiff
libratbox: Use the server SSL certificate on outgoing connections.
authorWilliam Pitcock <redacted>
Tue, 14 Dec 2010 04:58:09 +0000 (22:58 -0600)
committerWilliam Pitcock <redacted>
Tue, 14 Dec 2010 04:58:09 +0000 (22:58 -0600)
libratbox/src/gnutls.c
libratbox/src/openssl.c

index 7d1a879dc2d7a7f198bf0b32f15c4b71b83f7096..a2cb65229e87fff43f7c28d1df1b96ee27143213 100644 (file)
@@ -417,6 +417,7 @@ rb_ssl_tryconn(rb_fde_t *F, int status, void *data)
        F->ssl = rb_malloc(sizeof(gnutls_session_t));
        gnutls_init(F->ssl, GNUTLS_CLIENT);
        gnutls_set_default_priority(SSL_P(F));
+       gnutls_credentials_set(SSL_P(F), GNUTLS_CRD_CERTIFICATE, x509);
        gnutls_dh_set_prime_bits(SSL_P(F), 1024);
        gnutls_transport_set_ptr(SSL_P(F), (gnutls_transport_ptr_t) (long int)F->fd);
 
@@ -461,6 +462,7 @@ rb_ssl_start_connected(rb_fde_t *F, CNCB * callback, void *data, int timeout)
 
        gnutls_init(F->ssl, GNUTLS_CLIENT);
        gnutls_set_default_priority(SSL_P(F));
+       gnutls_credentials_set(SSL_P(F), GNUTLS_CRD_CERTIFICATE, x509);
        gnutls_dh_set_prime_bits(SSL_P(F), 1024);
        gnutls_transport_set_ptr(SSL_P(F), (gnutls_transport_ptr_t) (long int)F->fd);
 
index 86df0b5d5511d8955a16bb8bdc1de9202ac31c11..eee3f8dc4f1fc5f2e6d49f42e1a279033612df96 100644 (file)
@@ -337,7 +337,7 @@ rb_setup_ssl_server(const char *cert, const char *keyfile, const char *dhfile)
                rb_lib_log("rb_setup_ssl_server: No certificate file");
                return 0;
        }
-       if(!SSL_CTX_use_certificate_chain_file(ssl_server_ctx, cert))
+       if(!SSL_CTX_use_certificate_chain_file(ssl_server_ctx, cert) || !SSL_CTX_use_certificate_chain_file(ssl_client_ctx, cert))
        {
                err = ERR_get_error();
                rb_lib_log("rb_setup_ssl_server: Error loading certificate file [%s]: %s", cert,
@@ -352,7 +352,7 @@ rb_setup_ssl_server(const char *cert, const char *keyfile, const char *dhfile)
        }
 
 
-       if(!SSL_CTX_use_PrivateKey_file(ssl_server_ctx, keyfile, SSL_FILETYPE_PEM))
+       if(!SSL_CTX_use_PrivateKey_file(ssl_server_ctx, keyfile, SSL_FILETYPE_PEM) || !SSL_CTX_use_PrivateKey_file(ssl_client_ctx, keyfile, SSL_FILETYPE_PEM))
        {
                err = ERR_get_error();
                rb_lib_log("rb_setup_ssl_server: Error loading keyfile [%s]: %s", keyfile,