Commit d2770578 authored by Doug MacEachern's avatar Doug MacEachern
Browse files

fix logic from last commit, need to always try importing _both_ rsa

and dsa


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk/modules/ssl@94256 13f79535-47bb-0310-9956-ffa450edef68
parent 9e340dc0
Loading
Loading
Loading
Loading
+9 −6
Changes for ssl_engine_init.c: 9 added lines, 6 removed lines.
Original line number Diff line number Diff line
@@ -807,6 +807,7 @@ void ssl_init_ConfigureServer(server_rec *s,
    EVP_PKEY *pkey;
    SSL_CTX *ctx;
    int i;
    int have_rsa, have_dsa;

    ssl_init_check_server(s, p, ptemp, sc);

@@ -836,9 +837,10 @@ void ssl_init_ConfigureServer(server_rec *s,
    rsa_id = ssl_asn1_table_keyfmt(ptemp, vhost_id, SSL_AIDX_RSA);
    dsa_id = ssl_asn1_table_keyfmt(ptemp, vhost_id, SSL_AIDX_DSA);

    if (!(ssl_server_import_cert(s, sc, rsa_id, SSL_AIDX_RSA) ||
          ssl_server_import_cert(s, sc, dsa_id, SSL_AIDX_DSA)))
    {
    have_rsa = ssl_server_import_cert(s, sc, rsa_id, SSL_AIDX_RSA);
    have_dsa = ssl_server_import_cert(s, sc, dsa_id, SSL_AIDX_DSA);

    if (!(have_rsa || have_dsa)) {
        ssl_log(s, SSL_LOG_ERROR|SSL_INIT,
                "Oops, no RSA or DSA server certificate found?!");
        ssl_log(s, SSL_LOG_ERROR|SSL_INIT,
@@ -851,9 +853,10 @@ void ssl_init_ConfigureServer(server_rec *s,
        ssl_check_public_cert(s, ptemp, sc->pPublicCert[i], i);
    }

    if (!(ssl_server_import_key(s, sc, rsa_id, SSL_AIDX_RSA) ||
          ssl_server_import_key(s, sc, dsa_id, SSL_AIDX_DSA)))
    {
    have_rsa = ssl_server_import_key(s, sc, rsa_id, SSL_AIDX_RSA);
    have_dsa = ssl_server_import_key(s, sc, dsa_id, SSL_AIDX_DSA);

    if (!(have_rsa || have_dsa)) {
        ssl_log(s, SSL_LOG_ERROR|SSL_INIT,
                "Oops, no RSA or DSA server private key found?!");
        ssl_die();