summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjsing <>2019-11-18 02:44:20 +0000
committerjsing <>2019-11-18 02:44:20 +0000
commitd29c2aa42ff08eae9d602f68ded7137c5fc198b7 (patch)
treedcc8866cbf81ac5c1b835c9fd0bdc702dc8029ed
parent34c3a0b06b3b47e9a51dc4ba51a5aef8bb2e5004 (diff)
downloadopenbsd-d29c2aa42ff08eae9d602f68ded7137c5fc198b7.tar.gz
openbsd-d29c2aa42ff08eae9d602f68ded7137c5fc198b7.tar.bz2
openbsd-d29c2aa42ff08eae9d602f68ded7137c5fc198b7.zip
Provide a clean interface for sending TLSv1.3 alerts.
ok beck@
-rw-r--r--src/lib/libssl/tls13_internal.h6
-rw-r--r--src/lib/libssl/tls13_record_layer.c16
2 files changed, 17 insertions, 5 deletions
diff --git a/src/lib/libssl/tls13_internal.h b/src/lib/libssl/tls13_internal.h
index df5f13eb66..5fd1956cfd 100644
--- a/src/lib/libssl/tls13_internal.h
+++ b/src/lib/libssl/tls13_internal.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: tls13_internal.h,v 1.32 2019/11/17 21:47:01 jsing Exp $ */ 1/* $OpenBSD: tls13_internal.h,v 1.33 2019/11/18 02:44:20 jsing Exp $ */
2/* 2/*
3 * Copyright (c) 2018 Bob Beck <beck@openbsd.org> 3 * Copyright (c) 2018 Bob Beck <beck@openbsd.org>
4 * Copyright (c) 2018 Theo Buehler <tb@openbsd.org> 4 * Copyright (c) 2018 Theo Buehler <tb@openbsd.org>
@@ -120,8 +120,6 @@ int tls13_record_layer_set_read_traffic_key(struct tls13_record_layer *rl,
120 struct tls13_secret *read_key); 120 struct tls13_secret *read_key);
121int tls13_record_layer_set_write_traffic_key(struct tls13_record_layer *rl, 121int tls13_record_layer_set_write_traffic_key(struct tls13_record_layer *rl,
122 struct tls13_secret *write_key); 122 struct tls13_secret *write_key);
123ssize_t tls13_record_layer_alert(struct tls13_record_layer *rl,
124 uint8_t alert_level, uint8_t alert_desc);
125ssize_t tls13_record_layer_phh(struct tls13_record_layer *rl, CBS *cbs); 123ssize_t tls13_record_layer_phh(struct tls13_record_layer *rl, CBS *cbs);
126 124
127ssize_t tls13_read_handshake_data(struct tls13_record_layer *rl, uint8_t *buf, size_t n); 125ssize_t tls13_read_handshake_data(struct tls13_record_layer *rl, uint8_t *buf, size_t n);
@@ -131,6 +129,8 @@ ssize_t tls13_read_application_data(struct tls13_record_layer *rl, uint8_t *buf,
131ssize_t tls13_write_application_data(struct tls13_record_layer *rl, const uint8_t *buf, 129ssize_t tls13_write_application_data(struct tls13_record_layer *rl, const uint8_t *buf,
132 size_t n); 130 size_t n);
133 131
132ssize_t tls13_send_alert(struct tls13_record_layer *rl, uint8_t alert_desc);
133
134/* 134/*
135 * Handshake Messages. 135 * Handshake Messages.
136 */ 136 */
diff --git a/src/lib/libssl/tls13_record_layer.c b/src/lib/libssl/tls13_record_layer.c
index ebefac0a25..188f56e0b4 100644
--- a/src/lib/libssl/tls13_record_layer.c
+++ b/src/lib/libssl/tls13_record_layer.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: tls13_record_layer.c,v 1.14 2019/11/17 21:47:01 jsing Exp $ */ 1/* $OpenBSD: tls13_record_layer.c,v 1.15 2019/11/18 02:44:20 jsing Exp $ */
2/* 2/*
3 * Copyright (c) 2018, 2019 Joel Sing <jsing@openbsd.org> 3 * Copyright (c) 2018, 2019 Joel Sing <jsing@openbsd.org>
4 * 4 *
@@ -328,7 +328,7 @@ tls13_record_layer_send_pending(struct tls13_record_layer *rl)
328 return TLS13_IO_SUCCESS; 328 return TLS13_IO_SUCCESS;
329} 329}
330 330
331ssize_t 331static ssize_t
332tls13_record_layer_alert(struct tls13_record_layer *rl, 332tls13_record_layer_alert(struct tls13_record_layer *rl,
333 uint8_t alert_level, uint8_t alert_desc) 333 uint8_t alert_level, uint8_t alert_desc)
334{ 334{
@@ -967,3 +967,15 @@ tls13_write_application_data(struct tls13_record_layer *rl, const uint8_t *buf,
967 967
968 return tls13_record_layer_write(rl, SSL3_RT_APPLICATION_DATA, buf, n); 968 return tls13_record_layer_write(rl, SSL3_RT_APPLICATION_DATA, buf, n);
969} 969}
970
971ssize_t
972tls13_send_alert(struct tls13_record_layer *rl, uint8_t alert_desc)
973{
974 uint8_t alert_level = SSL3_AL_FATAL;
975
976 if (alert_desc == SSL_AD_CLOSE_NOTIFY ||
977 alert_desc == SSL_AD_USER_CANCELLED)
978 alert_level = SSL3_AL_WARNING;
979
980 return tls13_record_layer_alert(rl, alert_level, alert_desc);
981}