summaryrefslogtreecommitdiff
path: root/src/lib/libssl/ssl_locl.h
diff options
context:
space:
mode:
authorjsing <>2022-08-21 19:32:38 +0000
committerjsing <>2022-08-21 19:32:38 +0000
commit3c351e711595523526ff652c526430c9865244a9 (patch)
treef5484c592e752999edfb43ac5fd4dba1a5e88914 /src/lib/libssl/ssl_locl.h
parent14c1d07ebeba51e7c5d52a7a218214dcd39548d4 (diff)
downloadopenbsd-3c351e711595523526ff652c526430c9865244a9.tar.gz
openbsd-3c351e711595523526ff652c526430c9865244a9.tar.bz2
openbsd-3c351e711595523526ff652c526430c9865244a9.zip
Provide SSL_QUIC_METHOD.
This provides SSL_QUIC_METHOD (aka ssl_quic_method_st), which allows for QUIC callback hooks to be passed to an SSL_CTX or SSL. This is largely ported/adapted from BoringSSL. It is worth noting that this struct is not opaque and the original interface exposed by BoringSSL differs to the one they now use. The original interface was copied by quictls and it appears that this API will not be updated to match BoringSSL. To make things even more challenging, at least one consumer does not use named initialisers, making code completely dependent on the order in which the function pointers are defined as struct members. In order to try to support both variants, the set_read_secret/set_write_secret functions are included, however they have to go at the end. ok tb@
Diffstat (limited to 'src/lib/libssl/ssl_locl.h')
-rw-r--r--src/lib/libssl/ssl_locl.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/lib/libssl/ssl_locl.h b/src/lib/libssl/ssl_locl.h
index 6a4f14d281..d45983ac1e 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.422 2022/08/18 07:00:59 tb Exp $ */ 1/* $OpenBSD: ssl_locl.h,v 1.423 2022/08/21 19:32:38 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 *
@@ -882,6 +882,7 @@ typedef struct ssl_ctx_internal_st {
882 882
883struct ssl_ctx_st { 883struct ssl_ctx_st {
884 const SSL_METHOD *method; 884 const SSL_METHOD *method;
885 const SSL_QUIC_METHOD *quic_method;
885 886
886 STACK_OF(SSL_CIPHER) *cipher_list; 887 STACK_OF(SSL_CIPHER) *cipher_list;
887 888
@@ -1073,7 +1074,7 @@ struct ssl_st {
1073 int version; 1074 int version;
1074 1075
1075 const SSL_METHOD *method; 1076 const SSL_METHOD *method;
1076 const void *quic_method; /* XXX */ 1077 const SSL_QUIC_METHOD *quic_method;
1077 1078
1078 /* There are 2 BIO's even though they are normally both the 1079 /* There are 2 BIO's even though they are normally both the
1079 * same. This is so data can be read and written to different 1080 * same. This is so data can be read and written to different