Skip to content
Snippets Groups Projects
Commit f28a1a90 authored by deuce's avatar deuce
Browse files

Attempt to workaround TLS issues.

parent 590a8d01
Branches
Tags
No related merge requests found
...@@ -130,13 +130,22 @@ CRYPT_CONTEXT DLLCALL get_ssl_cert(scfg_t *cfg, char estr[SSL_ESTR_LEN]) ...@@ -130,13 +130,22 @@ CRYPT_CONTEXT DLLCALL get_ssl_cert(scfg_t *cfg, char estr[SSL_ESTR_LEN])
if(!DO(cryptSetAttributeString(ssl_cert, CRYPT_CERTINFO_COMMONNAME, cfg->sys_inetaddr, strlen(cfg->sys_inetaddr)))) if(!DO(cryptSetAttributeString(ssl_cert, CRYPT_CERTINFO_COMMONNAME, cfg->sys_inetaddr, strlen(cfg->sys_inetaddr))))
goto failure_return_3; goto failure_return_3;
sprintf(sysop_email, "sysop@%s", scfg.sys_inetaddr); sprintf(sysop_email, "sysop@%s", scfg.sys_inetaddr);
if(!DO(cryptSetAttributeString(ssl_cert, CRYPT_CERTINFO_RFC822NAME, cfg->sys_inetaddr, strlen(cfg->sys_inetaddr)))) if(!DO(cryptSetAttributeString(ssl_cert, CRYPT_CERTINFO_RFC822NAME, sesop_email, strlen(sesop_email))))
goto failure_return_3; goto failure_return_3;
if(!DO(cryptSignCert(ssl_cert, ssl_context))) if(!DO(cryptSignCert(ssl_cert, ssl_context)))
goto failure_return_3; goto failure_return_3;
if(!DO(cryptAddPublicKey(ssl_keyset, ssl_cert))) if(!DO(cryptAddPublicKey(ssl_keyset, ssl_cert)))
goto failure_return_3; goto failure_return_3;
cryptDestroyCert(ssl_cert); cryptDestroyCert(ssl_cert);
cryptKeysetClose(ssl_keyset);
cryptDestroyContext(ssl_context);
// Finally, load it from the file.
if(cryptStatusOK(cryptKeysetOpen(&ssl_keyset, CRYPT_UNUSED, CRYPT_KEYSET_FILE, str, CRYPT_KEYOPT_NONE))) {
if(!DO(cryptGetPrivateKey(ssl_keyset, &ssl_context, CRYPT_KEYID_NAME, "ssl_cert", cfg->sys_pass))) {
pthread_mutex_unlock(&ssl_cert_mutex);
return -1;
}
}
} }
cryptKeysetClose(ssl_keyset); cryptKeysetClose(ssl_keyset);
......
...@@ -6196,6 +6196,7 @@ void http_session_thread(void* arg) ...@@ -6196,6 +6196,7 @@ void http_session_thread(void* arg)
} }
#endif #endif
if (tls_context != -1) { if (tls_context != -1) {
HANDLE_CRYPT_CALL(cryptSetAttribute(session.tls_sess, CRYPT_SESSINFO_SSL_OPTIONS, CRYPT_SSLOPTION_DISABLE_CERTVERIFY), &session);
HANDLE_CRYPT_CALL(cryptSetAttribute(session.tls_sess, CRYPT_SESSINFO_PRIVATEKEY, tls_context), &session); HANDLE_CRYPT_CALL(cryptSetAttribute(session.tls_sess, CRYPT_SESSINFO_PRIVATEKEY, tls_context), &session);
} }
BOOL nodelay=TRUE; BOOL nodelay=TRUE;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment