static SSL_CTX *context;
static EVP_PKEY *pkey;
+static char const * ciphers = "EECDH+AESGCM:AES256-SHA:AES128-SHA";
+
static int verify_callback(int preverify_ok, X509_STORE_CTX *ctx);
static int SSL_add_ext(X509 * crt, int nid, char *value) {
char *key = (char *)getStrConf(KEY);
if (context) {
- bool did_load_cert = SSL_CTX_use_certificate_chain_file(context, crt);
+ bool_t did_load_cert = SSL_CTX_use_certificate_chain_file(context, crt);
rsa = SSL_readprivatekey(key);
if (!rsa || !did_load_cert) {
ERR_load_crypto_strings();
context = SSL_CTX_new(SSLv23_server_method());
+ SSL_CTX_set_options(context, SSL_OP_NO_SSLv2);
+ SSL_CTX_set_options(context, SSL_OP_NO_SSLv3);
if (context == NULL)
{
ERR_print_errors_fp(stderr);
abort();
}
+ SSL_CTX_set_cipher_list(context, ciphers);
+
+ EC_KEY *ecdhkey = EC_KEY_new_by_curve_name(NID_X9_62_prime256v1);
+ SSL_CTX_set_tmp_ecdh(context, ecdhkey);
+ EC_KEY_free(ecdhkey);
+
char const * sslCAPath = getStrConf(CAPATH);
if(sslCAPath != NULL)
{