blob: 3799d4181e7e23ffa1c2018cafc99fb92ba6fbf7 [file] [log] [blame]
Juan Castillo7d37aa12015-04-02 15:44:20 +01001/*
dp-arm66b4c162017-03-07 10:08:42 +00002 * Copyright (c) 2015-2017, ARM Limited and Contributors. All rights reserved.
Juan Castillo7d37aa12015-04-02 15:44:20 +01003 *
dp-arm82cb2c12017-05-03 09:38:09 +01004 * SPDX-License-Identifier: BSD-3-Clause
Juan Castillo7d37aa12015-04-02 15:44:20 +01005 */
6
Antonio Nino Diazab1794f2017-05-19 11:37:22 +01007#include <debug.h>
Juan Castillo7d37aa12015-04-02 15:44:20 +01008
Juan Castillo649dbf62015-11-05 09:24:53 +00009/* mbed TLS headers */
10#include <mbedtls/memory_buffer_alloc.h>
Antonio Nino Diazab1794f2017-05-19 11:37:22 +010011#include <mbedtls/platform.h>
Juan Castillo7d37aa12015-04-02 15:44:20 +010012
13/*
Juan Castillo649dbf62015-11-05 09:24:53 +000014 * mbed TLS heap
Juan Castillo7d37aa12015-04-02 15:44:20 +010015 */
David Cunadob1883512017-05-10 16:38:44 +010016#if (TF_MBEDTLS_KEY_ALG_ID == TF_MBEDTLS_ECDSA)
Juan Castillo7d37aa12015-04-02 15:44:20 +010017#define MBEDTLS_HEAP_SIZE (14*1024)
David Cunadob1883512017-05-10 16:38:44 +010018#elif (TF_MBEDTLS_KEY_ALG_ID == TF_MBEDTLS_RSA)
Soby Mathew38aacad2017-06-05 12:18:04 +010019#define MBEDTLS_HEAP_SIZE (7*1024)
Juan Castillo7d37aa12015-04-02 15:44:20 +010020#endif
21static unsigned char heap[MBEDTLS_HEAP_SIZE];
22
23/*
Juan Castillo649dbf62015-11-05 09:24:53 +000024 * mbed TLS initialization function
Juan Castillo7d37aa12015-04-02 15:44:20 +010025 */
26void mbedtls_init(void)
27{
28 static int ready;
Juan Castillo7d37aa12015-04-02 15:44:20 +010029
30 if (!ready) {
Juan Castillo649dbf62015-11-05 09:24:53 +000031 /* Initialize the mbed TLS heap */
32 mbedtls_memory_buffer_alloc_init(heap, MBEDTLS_HEAP_SIZE);
Antonio Nino Diazab1794f2017-05-19 11:37:22 +010033
34 /* Use reduced version of snprintf to save space. */
35 mbedtls_platform_set_snprintf(tf_snprintf);
36
Juan Castillo649dbf62015-11-05 09:24:53 +000037 ready = 1;
Juan Castillo7d37aa12015-04-02 15:44:20 +010038 }
39}