diff options
Diffstat (limited to 'src/lib/libtls/tls_client.c')
-rw-r--r-- | src/lib/libtls/tls_client.c | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/src/lib/libtls/tls_client.c b/src/lib/libtls/tls_client.c index 907c334f15..baa4805f57 100644 --- a/src/lib/libtls/tls_client.c +++ b/src/lib/libtls/tls_client.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: tls_client.c,v 1.13 2015/02/09 09:23:39 reyk Exp $ */ | 1 | /* $OpenBSD: tls_client.c,v 1.14 2015/02/11 06:46:33 jsing Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2014 Joel Sing <jsing@openbsd.org> | 3 | * Copyright (c) 2014 Joel Sing <jsing@openbsd.org> |
4 | * | 4 | * |
@@ -144,16 +144,16 @@ err: | |||
144 | } | 144 | } |
145 | 145 | ||
146 | int | 146 | int |
147 | tls_connect_socket(struct tls *ctx, int s, const char *hostname) | 147 | tls_connect_socket(struct tls *ctx, int s, const char *servername) |
148 | { | 148 | { |
149 | ctx->socket = s; | 149 | ctx->socket = s; |
150 | 150 | ||
151 | return tls_connect_fds(ctx, s, s, hostname); | 151 | return tls_connect_fds(ctx, s, s, servername); |
152 | } | 152 | } |
153 | 153 | ||
154 | int | 154 | int |
155 | tls_connect_fds(struct tls *ctx, int fd_read, int fd_write, | 155 | tls_connect_fds(struct tls *ctx, int fd_read, int fd_write, |
156 | const char *hostname) | 156 | const char *servername) |
157 | { | 157 | { |
158 | union { struct in_addr ip4; struct in6_addr ip6; } addrbuf; | 158 | union { struct in_addr ip4; struct in6_addr ip6; } addrbuf; |
159 | X509 *cert = NULL; | 159 | X509 *cert = NULL; |
@@ -180,8 +180,8 @@ tls_connect_fds(struct tls *ctx, int fd_read, int fd_write, | |||
180 | if (tls_configure_ssl(ctx) != 0) | 180 | if (tls_configure_ssl(ctx) != 0) |
181 | goto err; | 181 | goto err; |
182 | 182 | ||
183 | if (ctx->config->verify_host) { | 183 | if (ctx->config->verify_name) { |
184 | if (hostname == NULL) { | 184 | if (servername == NULL) { |
185 | tls_set_error(ctx, "server name not specified"); | 185 | tls_set_error(ctx, "server name not specified"); |
186 | goto err; | 186 | goto err; |
187 | } | 187 | } |
@@ -226,11 +226,11 @@ tls_connect_fds(struct tls *ctx, int fd_read, int fd_write, | |||
226 | * RFC4366 (SNI): Literal IPv4 and IPv6 addresses are not | 226 | * RFC4366 (SNI): Literal IPv4 and IPv6 addresses are not |
227 | * permitted in "HostName". | 227 | * permitted in "HostName". |
228 | */ | 228 | */ |
229 | if (hostname != NULL && | 229 | if (servername != NULL && |
230 | inet_pton(AF_INET, hostname, &addrbuf) != 1 && | 230 | inet_pton(AF_INET, servername, &addrbuf) != 1 && |
231 | inet_pton(AF_INET6, hostname, &addrbuf) != 1) { | 231 | inet_pton(AF_INET6, servername, &addrbuf) != 1) { |
232 | if (SSL_set_tlsext_host_name(ctx->ssl_conn, hostname) == 0) { | 232 | if (SSL_set_tlsext_host_name(ctx->ssl_conn, servername) == 0) { |
233 | tls_set_error(ctx, "SNI host name failed"); | 233 | tls_set_error(ctx, "server name indication failure"); |
234 | goto err; | 234 | goto err; |
235 | } | 235 | } |
236 | } | 236 | } |
@@ -246,16 +246,16 @@ tls_connect_fds(struct tls *ctx, int fd_read, int fd_write, | |||
246 | } | 246 | } |
247 | ctx->flags &= ~TLS_CONNECTING; | 247 | ctx->flags &= ~TLS_CONNECTING; |
248 | 248 | ||
249 | if (ctx->config->verify_host) { | 249 | if (ctx->config->verify_name) { |
250 | cert = SSL_get_peer_certificate(ctx->ssl_conn); | 250 | cert = SSL_get_peer_certificate(ctx->ssl_conn); |
251 | if (cert == NULL) { | 251 | if (cert == NULL) { |
252 | tls_set_error(ctx, "no server certificate"); | 252 | tls_set_error(ctx, "no server certificate"); |
253 | goto err; | 253 | goto err; |
254 | } | 254 | } |
255 | if ((ret = tls_check_hostname(ctx, cert, hostname)) != 0) { | 255 | if ((ret = tls_check_servername(ctx, cert, servername)) != 0) { |
256 | if (ret != -2) | 256 | if (ret != -2) |
257 | tls_set_error(ctx, "host `%s' not present in" | 257 | tls_set_error(ctx, "name `%s' not present in" |
258 | " server certificate", hostname); | 258 | " server certificate", servername); |
259 | goto err; | 259 | goto err; |
260 | } | 260 | } |
261 | } | 261 | } |