BOOL tls_prepare(rdpTls* tls, BIO *underlying, const SSL_METHOD *method, int options, BOOL clientMode) #endif { tls->ctx = SSL_CTX_new(method); if (!tls->ctx) { DEBUG_WARN( "%s: SSL_CTX_new failed\n", __FUNCTION__); return FALSE; } SSL_CTX_set_mode(tls->ctx, SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER | SSL_MODE_ENABLE_PARTIAL_WRITE); SSL_CTX_set_options(tls->ctx, options); SSL_CTX_set_read_ahead(tls->ctx, 1); if (tls->settings->PermittedTLSCiphers) { if(!SSL_CTX_set_cipher_list(tls->ctx, tls->settings->PermittedTLSCiphers)) { DEBUG_WARN( "SSL_CTX_set_cipher_list %s failed\n", tls->settings->PermittedTLSCiphers); return FALSE; } } tls->bio = BIO_new_rdp_tls(tls->ctx, clientMode); if (BIO_get_ssl(tls->bio, &tls->ssl) < 0) { DEBUG_WARN( "%s: unable to retrieve the SSL of the connection\n", __FUNCTION__); return FALSE; } BIO_push(tls->bio, underlying); return TRUE; }
BOOL tls_prepare(rdpTls* tls, BIO *underlying, const SSL_METHOD *method, int options, BOOL clientMode) #endif { tls->ctx = SSL_CTX_new(method); if (!tls->ctx) { fprintf(stderr, "%s: SSL_CTX_new failed\n", __FUNCTION__); return FALSE; } SSL_CTX_set_mode(tls->ctx, SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER | SSL_MODE_ENABLE_PARTIAL_WRITE); SSL_CTX_set_options(tls->ctx, options); SSL_CTX_set_read_ahead(tls->ctx, 1); tls->bio = BIO_new_rdp_tls(tls->ctx, clientMode); if (BIO_get_ssl(tls->bio, &tls->ssl) < 0) { fprintf(stderr, "%s: unable to retrieve the SSL of the connection\n", __FUNCTION__); return FALSE; } BIO_push(tls->bio, underlying); return TRUE; }
BOOL tls_prepare(rdpTls* tls, BIO* underlying, const SSL_METHOD* method, int options, BOOL clientMode) #endif { rdpSettings* settings = tls->settings; tls->ctx = SSL_CTX_new(method); if (!tls->ctx) { WLog_ERR(TAG, "SSL_CTX_new failed"); return FALSE; } SSL_CTX_set_mode(tls->ctx, SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER | SSL_MODE_ENABLE_PARTIAL_WRITE); SSL_CTX_set_options(tls->ctx, options); SSL_CTX_set_read_ahead(tls->ctx, 1); if (settings->AllowedTlsCiphers) { if (!SSL_CTX_set_cipher_list(tls->ctx, settings->AllowedTlsCiphers)) { WLog_ERR(TAG, "SSL_CTX_set_cipher_list %s failed", settings->AllowedTlsCiphers); return FALSE; } } tls->bio = BIO_new_rdp_tls(tls->ctx, clientMode); if (BIO_get_ssl(tls->bio, &tls->ssl) < 0) { WLog_ERR(TAG, "unable to retrieve the SSL of the connection"); return FALSE; } BIO_push(tls->bio, underlying); tls->underlying = underlying; return TRUE; }