17d37aa17SJuan Castillo /* 266b4c166Sdp-arm * Copyright (c) 2015-2017, ARM Limited and Contributors. All rights reserved. 37d37aa17SJuan Castillo * 482cb2c1aSdp-arm * SPDX-License-Identifier: BSD-3-Clause 57d37aa17SJuan Castillo */ 67d37aa17SJuan Castillo 7ab1794f5SAntonio Nino Diaz #include <debug.h> 87d37aa17SJuan Castillo 97d37aa17SJuan Castillo /* mbed TLS headers */ 10649dbf6fSJuan Castillo #include <mbedtls/memory_buffer_alloc.h> 11ab1794f5SAntonio Nino Diaz #include <mbedtls/platform.h> 12*c46c18c5SAntonio Nino Diaz #include <mbedtls_config.h> 137d37aa17SJuan Castillo 147d37aa17SJuan Castillo /* 157d37aa17SJuan Castillo * mbed TLS heap 167d37aa17SJuan Castillo */ 17b1883510SDavid Cunado #if (TF_MBEDTLS_KEY_ALG_ID == TF_MBEDTLS_ECDSA) 187d37aa17SJuan Castillo #define MBEDTLS_HEAP_SIZE (14*1024) 19b1883510SDavid Cunado #elif (TF_MBEDTLS_KEY_ALG_ID == TF_MBEDTLS_RSA) 2005fd893eSAntonio Nino Diaz #define MBEDTLS_HEAP_SIZE (6*1024) 217d37aa17SJuan Castillo #endif 227d37aa17SJuan Castillo static unsigned char heap[MBEDTLS_HEAP_SIZE]; 237d37aa17SJuan Castillo 247d37aa17SJuan Castillo /* 257d37aa17SJuan Castillo * mbed TLS initialization function 267d37aa17SJuan Castillo */ 277d37aa17SJuan Castillo void mbedtls_init(void) 287d37aa17SJuan Castillo { 297d37aa17SJuan Castillo static int ready; 307d37aa17SJuan Castillo 317d37aa17SJuan Castillo if (!ready) { 327d37aa17SJuan Castillo /* Initialize the mbed TLS heap */ 33649dbf6fSJuan Castillo mbedtls_memory_buffer_alloc_init(heap, MBEDTLS_HEAP_SIZE); 34ab1794f5SAntonio Nino Diaz 35*c46c18c5SAntonio Nino Diaz #ifdef MBEDTLS_PLATFORM_SNPRINTF_ALT 36ab1794f5SAntonio Nino Diaz /* Use reduced version of snprintf to save space. */ 37ab1794f5SAntonio Nino Diaz mbedtls_platform_set_snprintf(tf_snprintf); 38*c46c18c5SAntonio Nino Diaz #endif 39ab1794f5SAntonio Nino Diaz 407d37aa17SJuan Castillo ready = 1; 417d37aa17SJuan Castillo } 427d37aa17SJuan Castillo } 43