Home | History | Annotate | Download | only in mbedtls
      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  */
     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