From c7875b5f11d400f00f4ee6f8ccc83ffd4756dd08 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Sun, 5 Sep 2021 21:05:50 +0800 Subject: [PATCH] add set in/out transform utils Signed-off-by: Jerry Yu --- library/ssl_misc.h | 8 ++++++++ library/ssl_msg.c | 17 +++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/library/ssl_misc.h b/library/ssl_misc.h index 6206c6f5b1..8b2d50d2f0 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -986,6 +986,14 @@ void mbedtls_ssl_transform_free( mbedtls_ssl_transform *transform ); */ void mbedtls_ssl_handshake_free( mbedtls_ssl_context *ssl ); +/* set inbound transform of ssl context */ +void mbedtls_ssl_set_inbound_transform( mbedtls_ssl_context *ssl, + mbedtls_ssl_transform *transform ); + +/* set outbound transform of ssl context */ +void mbedtls_ssl_set_outbound_transform( mbedtls_ssl_context *ssl, + mbedtls_ssl_transform *transform ); + int mbedtls_ssl_handshake_client_step( mbedtls_ssl_context *ssl ); int mbedtls_ssl_handshake_server_step( mbedtls_ssl_context *ssl ); void mbedtls_ssl_handshake_wrapup( mbedtls_ssl_context *ssl ); diff --git a/library/ssl_msg.c b/library/ssl_msg.c index 2fe801a283..fcdd0249bc 100644 --- a/library/ssl_msg.c +++ b/library/ssl_msg.c @@ -5551,6 +5551,23 @@ void mbedtls_ssl_transform_free( mbedtls_ssl_transform *transform ) mbedtls_platform_zeroize( transform, sizeof( mbedtls_ssl_transform ) ); } +void mbedtls_ssl_set_inbound_transform( mbedtls_ssl_context *ssl, + mbedtls_ssl_transform *transform ) +{ + if( ssl->transform_in == transform ) + return; + + ssl->transform_in = transform; + mbedtls_platform_zeroize( ssl->in_ctr, 8 ); +} + +void mbedtls_ssl_set_outbound_transform( mbedtls_ssl_context *ssl, + mbedtls_ssl_transform *transform ) +{ + ssl->transform_out = transform; + mbedtls_platform_zeroize( ssl->cur_out_ctr, 8 ); +} + #if defined(MBEDTLS_SSL_PROTO_DTLS) void mbedtls_ssl_buffering_free( mbedtls_ssl_context *ssl )