]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-master: Initialize key and certificate for client SSL settings.
authorStephan Bosch <stephan.bosch@dovecot.fi>
Wed, 28 Feb 2018 17:14:33 +0000 (18:14 +0100)
committerTimo Sirainen <timo.sirainen@dovecot.fi>
Mon, 12 Mar 2018 14:28:40 +0000 (16:28 +0200)
This uses the ssl_client_cert and ssl_client_key settings.

src/lib-master/master-service-ssl-settings.c
src/lib-master/master-service-ssl-settings.h

index 37e7f80642d56b7c3c3bba934612290793cbb80b..2434e3632c07cc7fd24ad134630f1b8b1e37f5c2 100644 (file)
@@ -25,6 +25,8 @@ static const struct setting_define master_service_ssl_setting_defines[] = {
        DEF(SET_STR, ssl_key_password),
        DEF(SET_STR, ssl_client_ca_file),
        DEF(SET_STR, ssl_client_ca_dir),
+       DEF(SET_STR, ssl_client_cert),
+       DEF(SET_STR, ssl_client_key),
        DEF(SET_STR, ssl_dh),
        DEF(SET_STR, ssl_cipher_list),
        DEF(SET_STR, ssl_curve_list),
@@ -54,6 +56,8 @@ static const struct master_service_ssl_settings master_service_ssl_default_setti
        .ssl_key_password = "",
        .ssl_client_ca_file = "",
        .ssl_client_ca_dir = "",
+       .ssl_client_cert = "",
+       .ssl_client_key = "",
        .ssl_dh = "",
        .ssl_cipher_list = "ALL:!kRSA:!SRP:!kDHd:!DSS:!aNULL:!eNULL:!EXPORT:!DES:!3DES:!MD5:!PSK:!RC4:!ADH:!LOW@STRENGTH",
        .ssl_curve_list = "",
@@ -193,6 +197,8 @@ void master_service_ssl_settings_to_iostream_set(
        case MASTER_SERVICE_SSL_SETTINGS_TYPE_CLIENT:
                set_r->ca_file = p_strdup(pool, ssl_set->ssl_client_ca_file);
                set_r->ca_dir = p_strdup(pool, ssl_set->ssl_client_ca_dir);
+               set_r->cert.cert = p_strdup_empty(pool, ssl_set->ssl_client_cert);
+               set_r->cert.key = p_strdup_empty(pool, ssl_set->ssl_client_key);
                set_r->verify_remote_cert = TRUE;
                break;
        }
index 20490ef3644d6512e76fe20916a7aa59c6aa0ea7..e74a84584c374f30c9ae81f238fe17514fae3ef1 100644 (file)
@@ -14,6 +14,8 @@ struct master_service_ssl_settings {
        const char *ssl_key_password;
        const char *ssl_client_ca_file;
        const char *ssl_client_ca_dir;
+       const char *ssl_client_cert;
+       const char *ssl_client_key;
        const char *ssl_dh;
        const char *ssl_cipher_list;
        const char *ssl_curve_list;