]> jfr.im git - solanum.git/commitdiff
[TLS Backends] Allow absense of private key file
authorAaron Jones <redacted>
Thu, 5 May 2016 03:43:15 +0000 (03:43 +0000)
committerAaron Jones <redacted>
Thu, 5 May 2016 03:47:33 +0000 (03:47 +0000)
Use the certificate file instead

librb/src/gnutls.c
librb/src/openssl.c

index 9216b08e4154a524744427ecbf28383f5dc5a9a6..1b7f0c860bdcdb8896a9a0bdfbe2c02136cfe776 100644 (file)
@@ -361,18 +361,22 @@ rb_load_file_into_datum_t(const char *file)
 }
 
 int
-rb_setup_ssl_server(const char *cert, const char *keyfile, const char *dhfile, const char *cipher_list)
+rb_setup_ssl_server(const char *certfile, const char *keyfile, const char *dhfile, const char *cipher_list)
 {
        int ret;
        const char *err;
        gnutls_datum_t *d_cert, *d_key;
-       if(cert == NULL)
+
+       if(certfile == NULL)
        {
                rb_lib_log("rb_setup_ssl_server: No certificate file");
                return 0;
        }
 
-       if((d_cert = rb_load_file_into_datum_t(cert)) == NULL)
+       if(keyfile == NULL)
+               keyfile = certfile;
+
+       if((d_cert = rb_load_file_into_datum_t(certfile)) == NULL)
        {
                rb_lib_log("rb_setup_ssl_server: Error loading certificate: %s", strerror(errno));
                return 0;
index 79326bda9faad943fed2dd59fc0e9137bc31cee3..6418b60835ab51fda9e9bd48d9717393829ba779 100644 (file)
@@ -340,7 +340,7 @@ rb_init_ssl(void)
 }
 
 int
-rb_setup_ssl_server(const char *cert, const char *keyfile, const char *dhfile, const char *cipher_list)
+rb_setup_ssl_server(const char *certfile, const char *keyfile, const char *dhfile, const char *cipher_list)
 {
        const char librb_ciphers[] = "kEECDH+HIGH:kEDH+HIGH:HIGH:!aNULL";
 
@@ -348,17 +348,14 @@ rb_setup_ssl_server(const char *cert, const char *keyfile, const char *dhfile, c
        const char librb_curves[] = "P-521:P-384:P-256";
        #endif
 
-       if(cert == NULL)
+       if(certfile == NULL)
        {
                rb_lib_log("rb_setup_ssl_server: No certificate file");
                return 0;
        }
 
        if(keyfile == NULL)
-       {
-               rb_lib_log("rb_setup_ssl_server: No key file");
-               return 0;
-       }
+               keyfile = certfile;
 
        if(cipher_list == NULL)
                cipher_list = librb_ciphers;
@@ -438,9 +435,9 @@ rb_setup_ssl_server(const char *cert, const char *keyfile, const char *dhfile, c
        SSL_CTX_set_cipher_list(ssl_server_ctx, cipher_list);
        SSL_CTX_set_cipher_list(ssl_client_ctx, cipher_list);
 
-       if(!SSL_CTX_use_certificate_chain_file(ssl_server_ctx, cert) || !SSL_CTX_use_certificate_chain_file(ssl_client_ctx, cert))
+       if(!SSL_CTX_use_certificate_chain_file(ssl_server_ctx, certfile) || !SSL_CTX_use_certificate_chain_file(ssl_client_ctx, certfile))
        {
-               rb_lib_log("rb_setup_ssl_server: Error loading certificate file [%s]: %s", cert,
+               rb_lib_log("rb_setup_ssl_server: Error loading certificate file [%s]: %s", certfile,
                           get_ssl_error(ERR_get_error()));
                return 0;
        }