1 /* 2 * Copyright (c) 2015-2018, ARM Limited and Contributors. All rights reserved. 3 * 4 * SPDX-License-Identifier: BSD-3-Clause 5 */ 6 7 #include <debug.h> 8 9 /* mbed TLS headers */ 10 #include <mbedtls/memory_buffer_alloc.h> 11 #include <mbedtls/platform.h> 12 #include <mbedtls_config.h> 13 #include <mbedtls_common.h> 14 15 /* 16 * mbed TLS heap 17 */ 18 #if (TF_MBEDTLS_KEY_ALG_ID == TF_MBEDTLS_ECDSA) \ 19 || (TF_MBEDTLS_KEY_ALG_ID == TF_MBEDTLS_RSA_AND_ECDSA) 20 #define MBEDTLS_HEAP_SIZE (13*1024) 21 #elif (TF_MBEDTLS_KEY_ALG_ID == TF_MBEDTLS_RSA) 22 #define MBEDTLS_HEAP_SIZE (7*1024) 23 #endif 24 static unsigned char heap[MBEDTLS_HEAP_SIZE]; 25 26 /* 27 * mbed TLS initialization function 28 */ 29 void mbedtls_init(void) 30 { 31 static int ready; 32 33 if (!ready) { 34 /* Initialize the mbed TLS heap */ 35 mbedtls_memory_buffer_alloc_init(heap, MBEDTLS_HEAP_SIZE); 36 37 #ifdef MBEDTLS_PLATFORM_SNPRINTF_ALT 38 /* Use reduced version of snprintf to save space. */ 39 mbedtls_platform_set_snprintf(tf_snprintf); 40 #endif 41 42 ready = 1; 43 } 44 } 45