40 drizzle_return_t drizzle_set_ssl(drizzle_con_st *con,
const char *key,
const char *cert,
const char *ca,
const char *capath,
const char *cipher)
42 con->ssl_context= SSL_CTX_new(TLSv1_client_method());
46 drizzle_set_error(con->drizzle,
"drizzle_set_ssl",
"Cannot set the SSL cipher list");
47 return DRIZZLE_RETURN_SSL_ERROR;
50 if (SSL_CTX_load_verify_locations(con->ssl_context, ca, capath) != 1)
52 drizzle_set_error(con->drizzle,
"drizzle_set_ssl",
"Cannot load the SSL certificate authority file");
53 return DRIZZLE_RETURN_SSL_ERROR;
58 if (SSL_CTX_use_certificate_file(con->ssl_context, cert, SSL_FILETYPE_PEM) != 1)
60 drizzle_set_error(con->drizzle,
"drizzle_set_ssl",
"Cannot load the SSL certificate file");
61 return DRIZZLE_RETURN_SSL_ERROR;
67 if (SSL_CTX_use_PrivateKey_file(con->ssl_context, key, SSL_FILETYPE_PEM) != 1)
69 drizzle_set_error(con->drizzle,
"drizzle_set_ssl",
"Cannot load the SSL key file");
70 return DRIZZLE_RETURN_SSL_ERROR;
73 if (SSL_CTX_check_private_key(con->ssl_context) != 1)
75 drizzle_set_error(con->drizzle,
"drizzle_set_ssl",
"Error validating the SSL private key");
76 return DRIZZLE_RETURN_SSL_ERROR;
80 con->ssl= SSL_new(con->ssl_context);
82 return DRIZZLE_RETURN_OK;
void drizzle_set_error(drizzle_st *drizzle, const char *function, const char *format,...)