summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorjsing <>2015-09-14 16:16:38 +0000
committerjsing <>2015-09-14 16:16:38 +0000
commit0e84a3939e912f6a384416b3af214fe8d44ff343 (patch)
treec19ebb2220b683828ca94f71006134cbdaa38ebd /src/lib
parent0f763b25777f63f3832ab70f6b1fccb6ee041476 (diff)
downloadopenbsd-0e84a3939e912f6a384416b3af214fe8d44ff343.tar.gz
openbsd-0e84a3939e912f6a384416b3af214fe8d44ff343.tar.bz2
openbsd-0e84a3939e912f6a384416b3af214fe8d44ff343.zip
Provide tls_config_insecure_noverifytime() in order to be able to disable
certificate validity checking. ok beck@
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/libtls/Makefile3
-rw-r--r--src/lib/libtls/tls.c7
-rw-r--r--src/lib/libtls/tls.h3
-rw-r--r--src/lib/libtls/tls_config.c9
-rw-r--r--src/lib/libtls/tls_init.310
-rw-r--r--src/lib/libtls/tls_internal.h3
6 files changed, 29 insertions, 6 deletions
diff --git a/src/lib/libtls/Makefile b/src/lib/libtls/Makefile
index 2e6c48716c..679aabb9ed 100644
--- a/src/lib/libtls/Makefile
+++ b/src/lib/libtls/Makefile
@@ -1,4 +1,4 @@
1# $OpenBSD: Makefile,v 1.20 2015/09/14 14:29:30 jmc Exp $ 1# $OpenBSD: Makefile,v 1.21 2015/09/14 16:16:38 jsing Exp $
2 2
3CFLAGS+= -Wall -Werror -Wimplicit 3CFLAGS+= -Wall -Werror -Wimplicit
4CFLAGS+= -DLIBRESSL_INTERNAL 4CFLAGS+= -DLIBRESSL_INTERNAL
@@ -44,6 +44,7 @@ MLINKS+=tls_init.3 tls_config_prefer_ciphers_server.3
44MLINKS+=tls_init.3 tls_config_clear_keys.3 44MLINKS+=tls_init.3 tls_config_clear_keys.3
45MLINKS+=tls_init.3 tls_config_insecure_noverifycert.3 45MLINKS+=tls_init.3 tls_config_insecure_noverifycert.3
46MLINKS+=tls_init.3 tls_config_insecure_noverifyname.3 46MLINKS+=tls_init.3 tls_config_insecure_noverifyname.3
47MLINKS+=tls_init.3 tls_config_insecure_noverifytime.3
47MLINKS+=tls_init.3 tls_config_verify.3 48MLINKS+=tls_init.3 tls_config_verify.3
48MLINKS+=tls_init.3 tls_config_verify_client.3 49MLINKS+=tls_init.3 tls_config_verify_client.3
49MLINKS+=tls_init.3 tls_config_verify_client_optional.3 50MLINKS+=tls_init.3 tls_config_verify_client_optional.3
diff --git a/src/lib/libtls/tls.c b/src/lib/libtls/tls.c
index 236ed9185b..ac9262a4fc 100644
--- a/src/lib/libtls/tls.c
+++ b/src/lib/libtls/tls.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: tls.c,v 1.31 2015/09/14 12:29:16 jsing Exp $ */ 1/* $OpenBSD: tls.c,v 1.32 2015/09/14 16:16:38 jsing Exp $ */
2/* 2/*
3 * Copyright (c) 2014 Joel Sing <jsing@openbsd.org> 3 * Copyright (c) 2014 Joel Sing <jsing@openbsd.org>
4 * 4 *
@@ -257,6 +257,11 @@ tls_configure_ssl(struct tls *ctx)
257 } 257 }
258 } 258 }
259 259
260 if (ctx->config->verify_time == 0) {
261 X509_VERIFY_PARAM_set_flags(ctx->ssl_ctx->param,
262 X509_V_FLAG_NO_CHECK_TIME);
263 }
264
260 return (0); 265 return (0);
261 266
262 err: 267 err:
diff --git a/src/lib/libtls/tls.h b/src/lib/libtls/tls.h
index 442fe35064..670ad0d711 100644
--- a/src/lib/libtls/tls.h
+++ b/src/lib/libtls/tls.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: tls.h,v 1.23 2015/09/13 10:32:46 beck Exp $ */ 1/* $OpenBSD: tls.h,v 1.24 2015/09/14 16:16:38 jsing Exp $ */
2/* 2/*
3 * Copyright (c) 2014 Joel Sing <jsing@openbsd.org> 3 * Copyright (c) 2014 Joel Sing <jsing@openbsd.org>
4 * 4 *
@@ -71,6 +71,7 @@ void tls_config_prefer_ciphers_server(struct tls_config *_config);
71 71
72void tls_config_insecure_noverifycert(struct tls_config *_config); 72void tls_config_insecure_noverifycert(struct tls_config *_config);
73void tls_config_insecure_noverifyname(struct tls_config *_config); 73void tls_config_insecure_noverifyname(struct tls_config *_config);
74void tls_config_insecure_noverifytime(struct tls_config *_config);
74void tls_config_verify(struct tls_config *_config); 75void tls_config_verify(struct tls_config *_config);
75 76
76void tls_config_verify_client(struct tls_config *_config); 77void tls_config_verify_client(struct tls_config *_config);
diff --git a/src/lib/libtls/tls_config.c b/src/lib/libtls/tls_config.c
index 4d536853c8..d5beb38f3e 100644
--- a/src/lib/libtls/tls_config.c
+++ b/src/lib/libtls/tls_config.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: tls_config.c,v 1.12 2015/09/10 09:10:42 jsing Exp $ */ 1/* $OpenBSD: tls_config.c,v 1.13 2015/09/14 16:16:38 jsing Exp $ */
2/* 2/*
3 * Copyright (c) 2014 Joel Sing <jsing@openbsd.org> 3 * Copyright (c) 2014 Joel Sing <jsing@openbsd.org>
4 * 4 *
@@ -309,10 +309,17 @@ tls_config_insecure_noverifyname(struct tls_config *config)
309} 309}
310 310
311void 311void
312tls_config_insecure_noverifytime(struct tls_config *config)
313{
314 config->verify_time = 0;
315}
316
317void
312tls_config_verify(struct tls_config *config) 318tls_config_verify(struct tls_config *config)
313{ 319{
314 config->verify_cert = 1; 320 config->verify_cert = 1;
315 config->verify_name = 1; 321 config->verify_name = 1;
322 config->verify_time = 1;
316} 323}
317 324
318void 325void
diff --git a/src/lib/libtls/tls_init.3 b/src/lib/libtls/tls_init.3
index feef85dcb6..12a8e4bcf7 100644
--- a/src/lib/libtls/tls_init.3
+++ b/src/lib/libtls/tls_init.3
@@ -1,4 +1,4 @@
1.\" $OpenBSD: tls_init.3,v 1.47 2015/09/14 15:14:55 schwarze Exp $ 1.\" $OpenBSD: tls_init.3,v 1.48 2015/09/14 16:16:38 jsing Exp $
2.\" 2.\"
3.\" Copyright (c) 2014 Ted Unangst <tedu@openbsd.org> 3.\" Copyright (c) 2014 Ted Unangst <tedu@openbsd.org>
4.\" 4.\"
@@ -40,6 +40,7 @@
40.Nm tls_config_clear_keys , 40.Nm tls_config_clear_keys ,
41.Nm tls_config_insecure_noverifycert , 41.Nm tls_config_insecure_noverifycert ,
42.Nm tls_config_insecure_noverifyname , 42.Nm tls_config_insecure_noverifyname ,
43.Nm tls_config_insecure_noverifytime ,
43.Nm tls_config_verify , 44.Nm tls_config_verify ,
44.Nm tls_config_verify_client , 45.Nm tls_config_verify_client ,
45.Nm tls_config_verify_client_optional , 46.Nm tls_config_verify_client_optional ,
@@ -114,6 +115,8 @@
114.Ft "void" 115.Ft "void"
115.Fn tls_config_insecure_noverifyname "struct tls_config *config" 116.Fn tls_config_insecure_noverifyname "struct tls_config *config"
116.Ft "void" 117.Ft "void"
118.Fn tls_config_insecure_noverifytime "struct tls_config *config"
119.Ft "void"
117.Fn tls_config_verify "struct tls_config *config" 120.Fn tls_config_verify "struct tls_config *config"
118.Ft "void" 121.Ft "void"
119.Fn tls_config_verify_client "struct tls_config *config" 122.Fn tls_config_verify_client "struct tls_config *config"
@@ -365,6 +368,11 @@ disables server name verification.
365Be careful when using this option. 368Be careful when using this option.
366.Em (Client) 369.Em (Client)
367.It 370.It
371.Fn tls_config_insecure_noverifytime
372disables validity checking of certificate.
373Be careful when using this option.
374.Em (Client and server)
375.It
368.Fn tls_config_verify 376.Fn tls_config_verify
369reenables server name and certificate verification. 377reenables server name and certificate verification.
370.Em (Client) 378.Em (Client)
diff --git a/src/lib/libtls/tls_internal.h b/src/lib/libtls/tls_internal.h
index 320f1fbfaa..8128c05dfc 100644
--- a/src/lib/libtls/tls_internal.h
+++ b/src/lib/libtls/tls_internal.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: tls_internal.h,v 1.23 2015/09/14 12:29:16 jsing Exp $ */ 1/* $OpenBSD: tls_internal.h,v 1.24 2015/09/14 16:16:38 jsing Exp $ */
2/* 2/*
3 * Copyright (c) 2014 Jeremie Courreges-Anglas <jca@openbsd.org> 3 * Copyright (c) 2014 Jeremie Courreges-Anglas <jca@openbsd.org>
4 * Copyright (c) 2014 Joel Sing <jsing@openbsd.org> 4 * Copyright (c) 2014 Joel Sing <jsing@openbsd.org>
@@ -46,6 +46,7 @@ struct tls_config {
46 int verify_client; 46 int verify_client;
47 int verify_depth; 47 int verify_depth;
48 int verify_name; 48 int verify_name;
49 int verify_time;
49}; 50};
50 51
51struct tls_conninfo { 52struct tls_conninfo {