diff options
| author | jsing <> | 2015-09-14 16:16:38 +0000 |
|---|---|---|
| committer | jsing <> | 2015-09-14 16:16:38 +0000 |
| commit | 3e5c8273f252e9fe9e751d6fc17106fffbb4979d (patch) | |
| tree | c19ebb2220b683828ca94f71006134cbdaa38ebd /src | |
| parent | 33cb993a8d2c13b5765b3a3f9538892658ae6665 (diff) | |
| download | openbsd-3e5c8273f252e9fe9e751d6fc17106fffbb4979d.tar.gz openbsd-3e5c8273f252e9fe9e751d6fc17106fffbb4979d.tar.bz2 openbsd-3e5c8273f252e9fe9e751d6fc17106fffbb4979d.zip | |
Provide tls_config_insecure_noverifytime() in order to be able to disable
certificate validity checking.
ok beck@
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/libtls/Makefile | 3 | ||||
| -rw-r--r-- | src/lib/libtls/tls.c | 7 | ||||
| -rw-r--r-- | src/lib/libtls/tls.h | 3 | ||||
| -rw-r--r-- | src/lib/libtls/tls_config.c | 9 | ||||
| -rw-r--r-- | src/lib/libtls/tls_init.3 | 10 | ||||
| -rw-r--r-- | src/lib/libtls/tls_internal.h | 3 |
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 | ||
| 3 | CFLAGS+= -Wall -Werror -Wimplicit | 3 | CFLAGS+= -Wall -Werror -Wimplicit |
| 4 | CFLAGS+= -DLIBRESSL_INTERNAL | 4 | CFLAGS+= -DLIBRESSL_INTERNAL |
| @@ -44,6 +44,7 @@ MLINKS+=tls_init.3 tls_config_prefer_ciphers_server.3 | |||
| 44 | MLINKS+=tls_init.3 tls_config_clear_keys.3 | 44 | MLINKS+=tls_init.3 tls_config_clear_keys.3 |
| 45 | MLINKS+=tls_init.3 tls_config_insecure_noverifycert.3 | 45 | MLINKS+=tls_init.3 tls_config_insecure_noverifycert.3 |
| 46 | MLINKS+=tls_init.3 tls_config_insecure_noverifyname.3 | 46 | MLINKS+=tls_init.3 tls_config_insecure_noverifyname.3 |
| 47 | MLINKS+=tls_init.3 tls_config_insecure_noverifytime.3 | ||
| 47 | MLINKS+=tls_init.3 tls_config_verify.3 | 48 | MLINKS+=tls_init.3 tls_config_verify.3 |
| 48 | MLINKS+=tls_init.3 tls_config_verify_client.3 | 49 | MLINKS+=tls_init.3 tls_config_verify_client.3 |
| 49 | MLINKS+=tls_init.3 tls_config_verify_client_optional.3 | 50 | MLINKS+=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 | ||
| 72 | void tls_config_insecure_noverifycert(struct tls_config *_config); | 72 | void tls_config_insecure_noverifycert(struct tls_config *_config); |
| 73 | void tls_config_insecure_noverifyname(struct tls_config *_config); | 73 | void tls_config_insecure_noverifyname(struct tls_config *_config); |
| 74 | void tls_config_insecure_noverifytime(struct tls_config *_config); | ||
| 74 | void tls_config_verify(struct tls_config *_config); | 75 | void tls_config_verify(struct tls_config *_config); |
| 75 | 76 | ||
| 76 | void tls_config_verify_client(struct tls_config *_config); | 77 | void 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 | ||
| 311 | void | 311 | void |
| 312 | tls_config_insecure_noverifytime(struct tls_config *config) | ||
| 313 | { | ||
| 314 | config->verify_time = 0; | ||
| 315 | } | ||
| 316 | |||
| 317 | void | ||
| 312 | tls_config_verify(struct tls_config *config) | 318 | tls_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 | ||
| 318 | void | 325 | void |
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. | |||
| 365 | Be careful when using this option. | 368 | Be careful when using this option. |
| 366 | .Em (Client) | 369 | .Em (Client) |
| 367 | .It | 370 | .It |
| 371 | .Fn tls_config_insecure_noverifytime | ||
| 372 | disables validity checking of certificate. | ||
| 373 | Be careful when using this option. | ||
| 374 | .Em (Client and server) | ||
| 375 | .It | ||
| 368 | .Fn tls_config_verify | 376 | .Fn tls_config_verify |
| 369 | reenables server name and certificate verification. | 377 | reenables 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 | ||
| 51 | struct tls_conninfo { | 52 | struct tls_conninfo { |
