summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorjsing <>2022-07-17 14:49:01 +0000
committerjsing <>2022-07-17 14:49:01 +0000
commit3100db9e08c1bf8ebeaea72f76c09b995e5a3159 (patch)
tree001241ad56345d0205d73382768f030dbfa74ebd /src
parent829a175777a008e2d7293b56bb0b6fb5056b0d29 (diff)
downloadopenbsd-3100db9e08c1bf8ebeaea72f76c09b995e5a3159.tar.gz
openbsd-3100db9e08c1bf8ebeaea72f76c09b995e5a3159.tar.bz2
openbsd-3100db9e08c1bf8ebeaea72f76c09b995e5a3159.zip
Provide SSL_is_quic()
This function will allow code to know if the SSL connection is configured for use with QUIC or not. Also move existing SSL_.*quic.* functions under LIBRESSL_HAS_QUIC to prevent exposing them prematurely. ok beck@ tb@
Diffstat (limited to 'src')
-rw-r--r--src/lib/libssl/ssl.h6
-rw-r--r--src/lib/libssl/ssl_lib.c8
-rw-r--r--src/lib/libssl/ssl_locl.h5
3 files changed, 14 insertions, 5 deletions
diff --git a/src/lib/libssl/ssl.h b/src/lib/libssl/ssl.h
index d475cb24ba..03e30441e0 100644
--- a/src/lib/libssl/ssl.h
+++ b/src/lib/libssl/ssl.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: ssl.h,v 1.220 2022/07/12 14:42:48 kn Exp $ */ 1/* $OpenBSD: ssl.h,v 1.221 2022/07/17 14:49:01 jsing Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -1576,7 +1576,9 @@ int SSL_get_security_level(const SSL *ssl);
1576void SSL_CTX_set_security_level(SSL_CTX *ctx, int level); 1576void SSL_CTX_set_security_level(SSL_CTX *ctx, int level);
1577int SSL_CTX_get_security_level(const SSL_CTX *ctx); 1577int SSL_CTX_get_security_level(const SSL_CTX *ctx);
1578 1578
1579#ifdef LIBRESSL_INTERNAL 1579#if defined(LIBRESSL_HAS_QUIC) || defined(LIBRESSL_INTERNAL)
1580int SSL_is_quic(const SSL *ssl);
1581
1580/* 1582/*
1581 * SSL_set_quic_transport_params configures |ssl| to send |params| (of length 1583 * SSL_set_quic_transport_params configures |ssl| to send |params| (of length
1582 * |params_len|) in the quic_transport_parameters extension in either the 1584 * |params_len|) in the quic_transport_parameters extension in either the
diff --git a/src/lib/libssl/ssl_lib.c b/src/lib/libssl/ssl_lib.c
index 2cdcef444c..860a58ddd1 100644
--- a/src/lib/libssl/ssl_lib.c
+++ b/src/lib/libssl/ssl_lib.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: ssl_lib.c,v 1.295 2022/07/02 16:31:04 tb Exp $ */ 1/* $OpenBSD: ssl_lib.c,v 1.296 2022/07/17 14:49:01 jsing Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -3316,6 +3316,12 @@ OBJ_bsearch_ssl_cipher_id(SSL_CIPHER *key, SSL_CIPHER const *base, int num)
3316} 3316}
3317 3317
3318int 3318int
3319SSL_is_quic(const SSL *ssl)
3320{
3321 return ssl->quic_method != NULL;
3322}
3323
3324int
3319SSL_set_quic_transport_params(SSL *ssl, const uint8_t *params, 3325SSL_set_quic_transport_params(SSL *ssl, const uint8_t *params,
3320 size_t params_len) 3326 size_t params_len)
3321{ 3327{
diff --git a/src/lib/libssl/ssl_locl.h b/src/lib/libssl/ssl_locl.h
index 0dc555f9db..a1b36e549a 100644
--- a/src/lib/libssl/ssl_locl.h
+++ b/src/lib/libssl/ssl_locl.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: ssl_locl.h,v 1.413 2022/07/10 18:40:55 tb Exp $ */ 1/* $OpenBSD: ssl_locl.h,v 1.414 2022/07/17 14:49:01 jsing Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -1066,7 +1066,8 @@ struct ssl_st {
1066 */ 1066 */
1067 int version; 1067 int version;
1068 1068
1069 const SSL_METHOD *method; /* SSLv3 */ 1069 const SSL_METHOD *method;
1070 const void *quic_method; /* XXX */
1070 1071
1071 /* There are 2 BIO's even though they are normally both the 1072 /* There are 2 BIO's even though they are normally both the
1072 * same. This is so data can be read and written to different 1073 * same. This is so data can be read and written to different