summaryrefslogtreecommitdiff
path: root/src/lib/libssl/ssl_lib.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libssl/ssl_lib.c')
-rw-r--r--src/lib/libssl/ssl_lib.c30
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
3318int
3319SSL_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
3336void
3337SSL_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}