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 | } | ||