summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authortb <>2022-06-03 13:31:49 +0000
committertb <>2022-06-03 13:31:49 +0000
commit2caafd751c9c4e121a80400e066e85dab685cc21 (patch)
treebdb7e020fb9de6303e716c3d7b5153aab90cff3f /src/lib
parent7cb311c754f101f16354b2e8efc8f44a20dcdd22 (diff)
downloadopenbsd-2caafd751c9c4e121a80400e066e85dab685cc21.tar.gz
openbsd-2caafd751c9c4e121a80400e066e85dab685cc21.tar.bz2
openbsd-2caafd751c9c4e121a80400e066e85dab685cc21.zip
Add stubbed out handlers for the pre_shared_key extension
ok jsing
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/libssl/ssl_tlsext.c58
-rw-r--r--src/lib/libssl/ssl_tlsext.h9
2 files changed, 65 insertions, 2 deletions
diff --git a/src/lib/libssl/ssl_tlsext.c b/src/lib/libssl/ssl_tlsext.c
index de2c1c19d2..f0490de508 100644
--- a/src/lib/libssl/ssl_tlsext.c
+++ b/src/lib/libssl/ssl_tlsext.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: ssl_tlsext.c,v 1.111 2022/06/03 13:29:39 tb Exp $ */ 1/* $OpenBSD: ssl_tlsext.c,v 1.112 2022/06/03 13:31:49 tb Exp $ */
2/* 2/*
3 * Copyright (c) 2016, 2017, 2019 Joel Sing <jsing@openbsd.org> 3 * Copyright (c) 2016, 2017, 2019 Joel Sing <jsing@openbsd.org>
4 * Copyright (c) 2017 Doug Hogan <doug@openbsd.org> 4 * Copyright (c) 2017 Doug Hogan <doug@openbsd.org>
@@ -1902,6 +1902,46 @@ tlsext_psk_kex_modes_client_parse(SSL *s, uint16_t msg_type, CBS *cbs,
1902 return 0; 1902 return 0;
1903} 1903}
1904 1904
1905/*
1906 * Pre-Shared Key Extension - RFC 8446, 4.2.11
1907 */
1908
1909int
1910tlsext_psk_client_needs(SSL *s, uint16_t msg_type)
1911{
1912 return 0;
1913}
1914
1915int
1916tlsext_psk_client_build(SSL *s, uint16_t msg_type, CBB *cbb)
1917{
1918 return 0;
1919}
1920
1921int
1922tlsext_psk_client_parse(SSL *s, uint16_t msg_type, CBS *cbs, int *alert)
1923{
1924 return 0;
1925}
1926
1927int
1928tlsext_psk_server_needs(SSL *s, uint16_t msg_type)
1929{
1930 return 0;
1931}
1932
1933int
1934tlsext_psk_server_build(SSL *s, uint16_t msg_type, CBB *cbb)
1935{
1936 return 0;
1937}
1938
1939int
1940tlsext_psk_server_parse(SSL *s, uint16_t msg_type, CBS *cbs, int *alert)
1941{
1942 return 0;
1943}
1944
1905struct tls_extension_funcs { 1945struct tls_extension_funcs {
1906 int (*needs)(SSL *s, uint16_t msg_type); 1946 int (*needs)(SSL *s, uint16_t msg_type);
1907 int (*build)(SSL *s, uint16_t msg_type, CBB *cbb); 1947 int (*build)(SSL *s, uint16_t msg_type, CBB *cbb);
@@ -2104,6 +2144,22 @@ static const struct tls_extension tls_extensions[] = {
2104 .parse = tlsext_psk_kex_modes_server_parse, 2144 .parse = tlsext_psk_kex_modes_server_parse,
2105 }, 2145 },
2106 }, 2146 },
2147 {
2148 /* MUST be last extension in CH per RFC 8446 section 4.2. */
2149
2150 .type = TLSEXT_TYPE_pre_shared_key,
2151 .messages = SSL_TLSEXT_MSG_CH | SSL_TLSEXT_MSG_SH,
2152 .client = {
2153 .needs = tlsext_psk_client_needs,
2154 .build = tlsext_psk_client_build,
2155 .parse = tlsext_psk_client_parse,
2156 },
2157 .server = {
2158 .needs = tlsext_psk_server_needs,
2159 .build = tlsext_psk_server_build,
2160 .parse = tlsext_psk_server_parse,
2161 },
2162 },
2107}; 2163};
2108 2164
2109#define N_TLS_EXTENSIONS (sizeof(tls_extensions) / sizeof(*tls_extensions)) 2165#define N_TLS_EXTENSIONS (sizeof(tls_extensions) / sizeof(*tls_extensions))
diff --git a/src/lib/libssl/ssl_tlsext.h b/src/lib/libssl/ssl_tlsext.h
index 5f5a852abe..3439255fd6 100644
--- a/src/lib/libssl/ssl_tlsext.h
+++ b/src/lib/libssl/ssl_tlsext.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: ssl_tlsext.h,v 1.28 2022/06/03 13:29:39 tb Exp $ */ 1/* $OpenBSD: ssl_tlsext.h,v 1.29 2022/06/03 13:31:49 tb Exp $ */
2/* 2/*
3 * Copyright (c) 2016, 2017 Joel Sing <jsing@openbsd.org> 3 * Copyright (c) 2016, 2017 Joel Sing <jsing@openbsd.org>
4 * Copyright (c) 2017 Doug Hogan <doug@openbsd.org> 4 * Copyright (c) 2017 Doug Hogan <doug@openbsd.org>
@@ -128,6 +128,13 @@ int tlsext_psk_kex_modes_server_build(SSL *s, uint16_t msg_type, CBB *cbb);
128int tlsext_psk_kex_modes_server_parse(SSL *s, uint16_t msg_type, CBS *cbs, 128int tlsext_psk_kex_modes_server_parse(SSL *s, uint16_t msg_type, CBS *cbs,
129 int *alert); 129 int *alert);
130 130
131int tlsext_psk_client_needs(SSL *s, uint16_t msg_type);
132int tlsext_psk_client_build(SSL *s, uint16_t msg_type, CBB *cbb);
133int tlsext_psk_client_parse(SSL *s, uint16_t msg_type, CBS *cbs, int *alert);
134int tlsext_psk_server_needs(SSL *s, uint16_t msg_type);
135int tlsext_psk_server_build(SSL *s, uint16_t msg_type, CBB *cbb);
136int tlsext_psk_server_parse(SSL *s, uint16_t msg_type, CBS *cbs, int *alert);
137
131#ifndef OPENSSL_NO_SRTP 138#ifndef OPENSSL_NO_SRTP
132int tlsext_srtp_client_needs(SSL *s, uint16_t msg_type); 139int tlsext_srtp_client_needs(SSL *s, uint16_t msg_type);
133int tlsext_srtp_client_build(SSL *s, uint16_t msg_type, CBB *cbb); 140int tlsext_srtp_client_build(SSL *s, uint16_t msg_type, CBB *cbb);