diff --git a/library/ccm.c b/library/ccm.c index 75de8cb5b..aa2d6754b 100644 --- a/library/ccm.c +++ b/library/ccm.c @@ -81,6 +81,8 @@ int mbedtls_ccm_setkey( mbedtls_ccm_context *ctx, if( cipher_info->block_size != 16 ) return( MBEDTLS_ERR_CCM_BAD_INPUT ); + mbedtls_cipher_free( &ctx->cipher_ctx ); + if( ( ret = mbedtls_cipher_setup( &ctx->cipher_ctx, cipher_info ) ) != 0 ) return( ret ); diff --git a/library/gcm.c b/library/gcm.c index 79d433a17..a347c0677 100644 --- a/library/gcm.c +++ b/library/gcm.c @@ -174,6 +174,8 @@ int mbedtls_gcm_setkey( mbedtls_gcm_context *ctx, if( cipher_info->block_size != 16 ) return( MBEDTLS_ERR_GCM_BAD_INPUT ); + mbedtls_cipher_free( &ctx->cipher_ctx ); + if( ( ret = mbedtls_cipher_setup( &ctx->cipher_ctx, cipher_info ) ) != 0 ) return( ret );