diff options
author | jsing <> | 2022-08-21 19:32:38 +0000 |
---|---|---|
committer | jsing <> | 2022-08-21 19:32:38 +0000 |
commit | 3c351e711595523526ff652c526430c9865244a9 (patch) | |
tree | f5484c592e752999edfb43ac5fd4dba1a5e88914 /src/lib/libssl/ssl_locl.h | |
parent | 14c1d07ebeba51e7c5d52a7a218214dcd39548d4 (diff) | |
download | openbsd-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.h | 5 |
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 | ||
883 | struct ssl_ctx_st { | 883 | struct 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 |