diff --git a/library/psa_crypto.c b/library/psa_crypto.c index 9def0a793..f0599d751 100644 --- a/library/psa_crypto.c +++ b/library/psa_crypto.c @@ -5600,4 +5600,18 @@ error: return ret; } +psa_status_t psa_crypto_copy_and_free(psa_crypto_buffer_copy_t *buffers) +{ + if (buffers->output != NULL) { + memcpy(buffers->output_original, buffers->output, buffers->output_len); + } + + mbedtls_free(buffers->input); + buffers->input = NULL; + mbedtls_free(buffers->output); + buffers->output = NULL; + + return PSA_SUCCESS; +} + #endif /* MBEDTLS_PSA_CRYPTO_C */