close(fd);
return 1;
}
- tls = tls_socket_create(FALSE, server, client, fd, cache,
+ tls = tls_socket_create(FALSE, server, client, fd, cache, TLS_1_0,
TLS_1_3, TRUE);
if (!tls)
{
}
DBG1(DBG_TLS, "%#H connected", host);
- tls = tls_socket_create(TRUE, server, NULL, cfd, cache, TLS_1_2, TRUE);
+ tls = tls_socket_create(TRUE, server, NULL, cfd, cache, TLS_1_0,
+ TLS_1_2, TRUE);
if (!tls)
{
close(fd);
/* open TLS socket */
this->tls = tls_socket_create(FALSE, server_id, client_id, this->fd,
- NULL, TLS_1_2, FALSE);
+ NULL, TLS_1_0, TLS_1_2, FALSE);
if (!this->tls)
{
DBG1(DBG_TNC, "creating TLS socket failed");
}
this->tls = tls_socket_create(FALSE, this->server, this->client, fd,
- NULL, TLS_1_2, FALSE);
+ NULL, TLS_1_0, TLS_1_2, FALSE);
if (!this->tls)
{
close(fd);
.destroy = _destroy,
},
.state = PT_TLS_SERVER_VERSION,
- .tls = tls_socket_create(TRUE, server, NULL, fd, NULL, TLS_1_2, FALSE),
+ .tls = tls_socket_create(TRUE, server, NULL, fd, NULL, TLS_1_0, TLS_1_2,
+ FALSE),
.tnccs = (tls_t*)tnccs,
.auth = auth,
);
}
tls = tls_socket_create(TRUE, server, client, cfd, NULL,
- config->version, TRUE);
+ TLS_1_0, config->version, TRUE);
ck_assert(tls != NULL);
while (TRUE)
ck_assert(connect(fd, host->get_sockaddr(host),
*host->get_sockaddr_len(host)) != -1);
tls = tls_socket_create(FALSE, server, client, fd, NULL,
- config->version, TRUE);
+ TLS_1_0, config->version, TRUE);
ck_assert(tls != NULL);
wr = rd = 0;
* See header
*/
tls_socket_t *tls_socket_create(bool is_server, identification_t *server,
- identification_t *peer, int fd, tls_cache_t *cache,
- tls_version_t max_version, bool nullok)
+ identification_t *peer, int fd,
+ tls_cache_t *cache, tls_version_t min_version,
+ tls_version_t max_version, bool nullok)
{
private_tls_socket_t *this;
tls_purpose_t purpose;
this->tls = tls_create(is_server, server, peer, purpose,
&this->app.application, cache);
- if (!this->tls)
+ if (!this->tls ||
+ !this->tls->set_version(this->tls, min_version, max_version))
{
free(this);
return NULL;
}
- this->tls->set_version(this->tls, TLS_1_0, max_version);
-
return &this->public;
}
* @param peer client identity, NULL for no client authentication
* @param fd socket to read/write from
* @param cache session cache to use, or NULL
+ * @param min_version minimum TLS version to negotiate
* @param max_version maximum TLS version to negotiate
* @param nullok accept NULL encryption ciphers
* @return TLS socket wrapper
*/
tls_socket_t *tls_socket_create(bool is_server, identification_t *server,
- identification_t *peer, int fd, tls_cache_t *cache,
- tls_version_t max_version, bool nullok);
+ identification_t *peer, int fd,
+ tls_cache_t *cache, tls_version_t min_version,
+ tls_version_t max_version, bool nullok);
#endif /** TLS_SOCKET_H_ @}*/