• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2015-2017, 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 
14 /*
15  * mbed TLS heap
16  */
17 #if (TF_MBEDTLS_KEY_ALG_ID == TF_MBEDTLS_ECDSA) \
18 	|| (TF_MBEDTLS_KEY_ALG_ID == TF_MBEDTLS_RSA_AND_ECDSA)
19 #define MBEDTLS_HEAP_SIZE		(13*1024)
20 #elif (TF_MBEDTLS_KEY_ALG_ID == TF_MBEDTLS_RSA)
21 #define MBEDTLS_HEAP_SIZE		(7*1024)
22 #endif
23 static unsigned char heap[MBEDTLS_HEAP_SIZE];
24 
25 /*
26  * mbed TLS initialization function
27  */
mbedtls_init(void)28 void mbedtls_init(void)
29 {
30 	static int ready;
31 
32 	if (!ready) {
33 		/* Initialize the mbed TLS heap */
34 		mbedtls_memory_buffer_alloc_init(heap, MBEDTLS_HEAP_SIZE);
35 
36 #ifdef MBEDTLS_PLATFORM_SNPRINTF_ALT
37 		/* Use reduced version of snprintf to save space. */
38 		mbedtls_platform_set_snprintf(tf_snprintf);
39 #endif
40 
41 		ready = 1;
42 	}
43 }
44