diff options
Diffstat (limited to 'src/lib/libssl/ssl_lib.c')
| -rw-r--r-- | src/lib/libssl/ssl_lib.c | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/src/lib/libssl/ssl_lib.c b/src/lib/libssl/ssl_lib.c index be01f771e0..b959d3428f 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.292 2022/06/29 08:39:08 tb Exp $ */ | 1 | /* $OpenBSD: ssl_lib.c,v 1.293 2022/06/29 17:39:20 beck 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 | * |
| @@ -573,6 +573,8 @@ SSL_free(SSL *s) | |||
| 573 | 573 | ||
| 574 | free(s->internal->alpn_client_proto_list); | 574 | free(s->internal->alpn_client_proto_list); |
| 575 | 575 | ||
| 576 | free(s->internal->quic_transport_params); | ||
| 577 | |||
| 576 | #ifndef OPENSSL_NO_SRTP | 578 | #ifndef OPENSSL_NO_SRTP |
| 577 | sk_SRTP_PROTECTION_PROFILE_free(s->internal->srtp_profiles); | 579 | sk_SRTP_PROTECTION_PROFILE_free(s->internal->srtp_profiles); |
| 578 | #endif | 580 | #endif |
| @@ -3312,3 +3314,29 @@ OBJ_bsearch_ssl_cipher_id(SSL_CIPHER *key, SSL_CIPHER const *base, int num) | |||
| 3312 | return (SSL_CIPHER *)OBJ_bsearch_(key, base, num, sizeof(SSL_CIPHER), | 3314 | return (SSL_CIPHER *)OBJ_bsearch_(key, base, num, sizeof(SSL_CIPHER), |
| 3313 | ssl_cipher_id_cmp_BSEARCH_CMP_FN); | 3315 | ssl_cipher_id_cmp_BSEARCH_CMP_FN); |
| 3314 | } | 3316 | } |
| 3317 | |||
| 3318 | int | ||
| 3319 | SSL_set_quic_transport_params(SSL *ssl, const uint8_t *params, | ||
| 3320 | size_t params_len) | ||
| 3321 | { | ||
| 3322 | freezero(ssl->internal->quic_transport_params, | ||
| 3323 | ssl->internal->quic_transport_params_len); | ||
| 3324 | ssl->internal->quic_transport_params = NULL; | ||
| 3325 | ssl->internal->quic_transport_params_len = 0; | ||
| 3326 | |||
| 3327 | if ((ssl->internal->quic_transport_params = malloc(params_len)) == NULL) | ||
| 3328 | return 0; | ||
| 3329 | |||
| 3330 | memcpy(ssl->internal->quic_transport_params, params, params_len); | ||
| 3331 | ssl->internal->quic_transport_params_len = params_len; | ||
| 3332 | |||
| 3333 | return 1; | ||
| 3334 | } | ||
| 3335 | |||
| 3336 | void | ||
| 3337 | SSL_get_peer_quic_transport_params(const SSL *ssl, const uint8_t **out_params, | ||
| 3338 | size_t *out_params_len) | ||
| 3339 | { | ||
| 3340 | *out_params = ssl->s3->peer_quic_transport_params; | ||
| 3341 | *out_params_len = ssl->s3->peer_quic_transport_params_len; | ||
| 3342 | } | ||
