int evt_ctx_init(evt_ctx_t *tls) { tls_begin(); //Currently we support only TLS, No DTLS tls->ctx = SSL_CTX_new(SSLv23_method()); if(!tls->ctx) { return ENOMEM; } long options = SSL_OP_NO_SSLv2 | SSL_OP_NO_SSLv3; SSL_CTX_set_options(tls->ctx, options); SSL_CTX_set_mode(tls->ctx, SSL_MODE_AUTO_RETRY | SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER | SSL_MODE_ENABLE_PARTIAL_WRITE | SSL_MODE_RELEASE_BUFFERS ); tls->cert_set = 0; tls->key_set = 0; tls->ssl_err_ = 0; tls->writer = NULL; QUEUE_INIT(&(tls->live_con)); return 0; }
//int uv_tls_ctx_init(tls_engine *tls, char *cert, char *key) int uv_tls_ctx_init(tls_engine *tls) { tls_begin(); //Currently we support only TLS, No DTLS tls->ctx = SSL_CTX_new(SSLv23_method()); if(!tls->ctx) { return ERR_TLS_ERROR; } SSL_CTX_set_options(tls->ctx, SSL_OP_NO_SSLv2); SSL_CTX_set_options(tls->ctx, SSL_OP_NO_SSLv3); SSL_CTX_set_mode(tls->ctx, SSL_MODE_AUTO_RETRY | SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER | SSL_MODE_ENABLE_PARTIAL_WRITE); SSL_CTX_set_mode(tls->ctx, SSL_MODE_RELEASE_BUFFERS); return ERR_TLS_OK; }