diff --git a/libsofia-sip-ua/tport/tport_tls.c b/libsofia-sip-ua/tport/tport_tls.c index d61a61e2f294d77d71353d695f30137a9efc17a2..979a997a7757a94a7db1e06212ba990152023b1c 100644 --- a/libsofia-sip-ua/tport/tport_tls.c +++ b/libsofia-sip-ua/tport/tport_tls.c @@ -195,26 +195,30 @@ int tls_init_context(tls_t *tls, tls_issues_t const *ti) BIO_printf(tls->bio_err, "%s: invalid certificate: %s\n", "tls_init_context", ti->cert); ERR_print_errors(tls->bio_err); - } #if require_client_certificate - errno = EIO; - return -1; + errno = EIO; + return -1; #endif + } } if (!SSL_CTX_use_PrivateKey_file(tls->ctx, ti->key, SSL_FILETYPE_PEM)) { - ERR_print_errors(tls->bio_err); + if (ti->configured > 0) { + ERR_print_errors(tls->bio_err); #if require_client_certificate - errno = EIO; - return -1; + errno = EIO; + return -1; #endif + } } if (!SSL_CTX_check_private_key(tls->ctx)) { - BIO_printf(tls->bio_err, - "Private key does not match the certificate public key\n"); + if (ti->configured > 0) { + BIO_printf(tls->bio_err, + "Private key does not match the certificate public key\n"); + } #if require_client_certificate errno = EIO; return -1; @@ -224,7 +228,8 @@ int tls_init_context(tls_t *tls, tls_issues_t const *ti) if (!SSL_CTX_load_verify_locations(tls->ctx, ti->CAfile, ti->CApath)) { - ERR_print_errors(tls->bio_err); + if (ti->configured > 0) + ERR_print_errors(tls->bio_err); errno = EIO; return -1; } diff --git a/libsofia-sip-ua/tport/tport_type_tls.c b/libsofia-sip-ua/tport/tport_type_tls.c index 4ecff106511c3f046b8e8f89a6c1ca920995df8f..ae6ab5469efae2e39f85a701f3f269d9a8b395f7 100644 --- a/libsofia-sip-ua/tport/tport_type_tls.c +++ b/libsofia-sip-ua/tport/tport_type_tls.c @@ -159,6 +159,7 @@ static int tport_tls_init_master(tport_primary_t *pri, char const *path = NULL; unsigned tls_version = 1; su_home_t autohome[SU_HOME_AUTO_SIZE(1024)]; + tls_issues_t ti = {0}; su_home_auto(autohome, sizeof autohome); @@ -178,7 +179,6 @@ static int tport_tls_init_master(tport_primary_t *pri, } if (path) { - tls_issues_t ti = {0}; ti.verify_depth = 2; ti.configured = path != tbf; ti.randFile = su_sprintf(autohome, "%s/%s", path, "tls_seed.dat"); @@ -197,7 +197,12 @@ static int tport_tls_init_master(tport_primary_t *pri, su_home_zap(autohome); if (!tlspri->tlspri_master) { - SU_DEBUG_3(("tls_init_master: %s\n", strerror(errno))); + if (!path || ti.configured) { + SU_DEBUG_1(("tls_init_master: %s\n", strerror(errno))); + } + else { + SU_DEBUG_5(("tls_init_master: %s\n", strerror(errno))); + } return *return_culprit = "tls_init_master", -1; }