Add mbedtls_ssl_session_set_alpn() function
Signed-off-by: Waleed Elmelegy <waleed.elmelegy@arm.com>
diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c
index 291d645..9c73c7a 100644
--- a/library/ssl_tls13_server.c
+++ b/library/ssl_tls13_server.c
@@ -469,12 +469,10 @@
dst->max_early_data_size = src->max_early_data_size;
#if defined(MBEDTLS_SSL_ALPN)
- if (src->alpn != NULL) {
- dst->alpn = mbedtls_calloc(strlen(src->alpn) + 1, sizeof(char));
- if (dst->alpn == NULL) {
- return MBEDTLS_ERR_SSL_ALLOC_FAILED;
- }
- memcpy(dst->alpn, src->alpn, strlen(src->alpn) + 1);
+ int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
+ ret = mbedtls_ssl_session_set_alpn(dst, src->ticket_alpn);
+ if (ret != 0) {
+ return ret;
}
#endif /* MBEDTLS_SSL_ALPN */
#endif /* MBEDTLS_SSL_EARLY_DATA*/
@@ -3148,12 +3146,9 @@
MBEDTLS_SSL_PRINT_TICKET_FLAGS(4, session->ticket_flags);
#if defined(MBEDTLS_SSL_EARLY_DATA) && defined(MBEDTLS_SSL_ALPN)
- if (ssl->alpn_chosen != NULL) {
- session->alpn = mbedtls_calloc(strlen(ssl->alpn_chosen) + 1, sizeof(char));
- if (session->alpn == NULL) {
- return MBEDTLS_ERR_SSL_ALLOC_FAILED;
- }
- memcpy(session->alpn, ssl->alpn_chosen, strlen(ssl->alpn_chosen) + 1);
+ ret = mbedtls_ssl_session_set_alpn(session, ssl->alpn_chosen);
+ if (ret != 0) {
+ return ret;
}
#endif