1*cfb92d14SAndroid Build Coastguard Worker /* 2*cfb92d14SAndroid Build Coastguard Worker * Copyright (c) 2018, The OpenThread Authors. 3*cfb92d14SAndroid Build Coastguard Worker * All rights reserved. 4*cfb92d14SAndroid Build Coastguard Worker * 5*cfb92d14SAndroid Build Coastguard Worker * Redistribution and use in source and binary forms, with or without 6*cfb92d14SAndroid Build Coastguard Worker * modification, are permitted provided that the following conditions are met: 7*cfb92d14SAndroid Build Coastguard Worker * 1. Redistributions of source code must retain the above copyright 8*cfb92d14SAndroid Build Coastguard Worker * notice, this list of conditions and the following disclaimer. 9*cfb92d14SAndroid Build Coastguard Worker * 2. Redistributions in binary form must reproduce the above copyright 10*cfb92d14SAndroid Build Coastguard Worker * notice, this list of conditions and the following disclaimer in the 11*cfb92d14SAndroid Build Coastguard Worker * documentation and/or other materials provided with the distribution. 12*cfb92d14SAndroid Build Coastguard Worker * 3. Neither the name of the copyright holder nor the 13*cfb92d14SAndroid Build Coastguard Worker * names of its contributors may be used to endorse or promote products 14*cfb92d14SAndroid Build Coastguard Worker * derived from this software without specific prior written permission. 15*cfb92d14SAndroid Build Coastguard Worker * 16*cfb92d14SAndroid Build Coastguard Worker * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 17*cfb92d14SAndroid Build Coastguard Worker * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18*cfb92d14SAndroid Build Coastguard Worker * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19*cfb92d14SAndroid Build Coastguard Worker * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE 20*cfb92d14SAndroid Build Coastguard Worker * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 21*cfb92d14SAndroid Build Coastguard Worker * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 22*cfb92d14SAndroid Build Coastguard Worker * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 23*cfb92d14SAndroid Build Coastguard Worker * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 24*cfb92d14SAndroid Build Coastguard Worker * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 25*cfb92d14SAndroid Build Coastguard Worker * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 26*cfb92d14SAndroid Build Coastguard Worker * POSSIBILITY OF SUCH DAMAGE. 27*cfb92d14SAndroid Build Coastguard Worker */ 28*cfb92d14SAndroid Build Coastguard Worker 29*cfb92d14SAndroid Build Coastguard Worker // Spans multiple lines to avoid being processed by unifdef 30*cfb92d14SAndroid Build Coastguard Worker #ifndef \ 31*cfb92d14SAndroid Build Coastguard Worker MBEDTLS_CONFIG_H 32*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_CONFIG_H 33*cfb92d14SAndroid Build Coastguard Worker 34*cfb92d14SAndroid Build Coastguard Worker #include "openthread-core-config.h" 35*cfb92d14SAndroid Build Coastguard Worker 36*cfb92d14SAndroid Build Coastguard Worker #include <stdio.h> 37*cfb92d14SAndroid Build Coastguard Worker #include <stdlib.h> 38*cfb92d14SAndroid Build Coastguard Worker 39*cfb92d14SAndroid Build Coastguard Worker #include <openthread/config.h> 40*cfb92d14SAndroid Build Coastguard Worker #include <openthread/platform/logging.h> 41*cfb92d14SAndroid Build Coastguard Worker #include <openthread/platform/memory.h> 42*cfb92d14SAndroid Build Coastguard Worker 43*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_PLATFORM_SNPRINTF_MACRO snprintf 44*cfb92d14SAndroid Build Coastguard Worker 45*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_AES_C 46*cfb92d14SAndroid Build Coastguard Worker #if (MBEDTLS_VERSION_NUMBER >= 0x03050000) 47*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH 48*cfb92d14SAndroid Build Coastguard Worker #endif 49*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_AES_ROM_TABLES 50*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_ASN1_PARSE_C 51*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_ASN1_WRITE_C 52*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_BIGNUM_C 53*cfb92d14SAndroid Build Coastguard Worker #if (MBEDTLS_VERSION_NUMBER >= 0x03050000) 54*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_BLOCK_CIPHER_NO_DECRYPT 55*cfb92d14SAndroid Build Coastguard Worker #endif 56*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_CCM_C 57*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_CIPHER_C 58*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_CMAC_C 59*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_CTR_DRBG_C 60*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_DEPRECATED_REMOVED 61*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_DEPRECATED_WARNING 62*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_ECJPAKE_C 63*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_ECP_C 64*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_ECP_DP_SECP256R1_ENABLED 65*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_ECP_NIST_OPTIM 66*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_ENTROPY_C 67*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_HAVE_ASM 68*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_HMAC_DRBG_C 69*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED 70*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_MD_C 71*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES 72*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_NO_PLATFORM_ENTROPY 73*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_OID_C 74*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_PK_C 75*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_PK_PARSE_C 76*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_PLATFORM_C 77*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_PLATFORM_MEMORY 78*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_PLATFORM_NO_STD_FUNCTIONS 79*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_SHA224_C 80*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_SHA256_C 81*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_SHA256_SMALLER 82*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_SSL_CLI_C 83*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_SSL_DTLS_ANTI_REPLAY 84*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_SSL_DTLS_HELLO_VERIFY 85*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_SSL_EXPORT_KEYS 86*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_SSL_MAX_FRAGMENT_LENGTH 87*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_SSL_PROTO_TLS1_2 88*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_SSL_PROTO_DTLS 89*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_SSL_TLS_C 90*cfb92d14SAndroid Build Coastguard Worker 91*cfb92d14SAndroid Build Coastguard Worker #if OPENTHREAD_CONFIG_BORDER_AGENT_ENABLE || OPENTHREAD_CONFIG_COMMISSIONER_ENABLE || OPENTHREAD_CONFIG_COAP_SECURE_API_ENABLE 92*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_SSL_COOKIE_C 93*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_SSL_SRV_C 94*cfb92d14SAndroid Build Coastguard Worker #endif 95*cfb92d14SAndroid Build Coastguard Worker 96*cfb92d14SAndroid Build Coastguard Worker #if OPENTHREAD_CONFIG_COAP_SECURE_API_ENABLE 97*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_KEY_EXCHANGE_PSK_ENABLED 98*cfb92d14SAndroid Build Coastguard Worker #endif 99*cfb92d14SAndroid Build Coastguard Worker 100*cfb92d14SAndroid Build Coastguard Worker #if OPENTHREAD_CONFIG_COAP_SECURE_API_ENABLE || OPENTHREAD_CONFIG_TLS_ENABLE 101*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED 102*cfb92d14SAndroid Build Coastguard Worker #endif 103*cfb92d14SAndroid Build Coastguard Worker 104*cfb92d14SAndroid Build Coastguard Worker #if OPENTHREAD_CONFIG_BLE_TCAT_ENABLE 105*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_SSL_KEEP_PEER_CERTIFICATE 106*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_GCM_C 107*cfb92d14SAndroid Build Coastguard Worker #endif 108*cfb92d14SAndroid Build Coastguard Worker 109*cfb92d14SAndroid Build Coastguard Worker #ifdef MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED 110*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_BASE64_C 111*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_ECDH_C 112*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_ECDSA_C 113*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_PEM_PARSE_C 114*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_X509_USE_C 115*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_X509_CRT_PARSE_C 116*cfb92d14SAndroid Build Coastguard Worker #endif 117*cfb92d14SAndroid Build Coastguard Worker 118*cfb92d14SAndroid Build Coastguard Worker #if OPENTHREAD_CONFIG_ECDSA_ENABLE 119*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_BASE64_C 120*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_ECDH_C 121*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_ECDSA_C 122*cfb92d14SAndroid Build Coastguard Worker #if OPENTHREAD_CONFIG_DETERMINISTIC_ECDSA_ENABLE 123*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_ECDSA_DETERMINISTIC 124*cfb92d14SAndroid Build Coastguard Worker #endif 125*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_PEM_PARSE_C 126*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_PK_WRITE_C 127*cfb92d14SAndroid Build Coastguard Worker #endif 128*cfb92d14SAndroid Build Coastguard Worker 129*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_MPI_WINDOW_SIZE 1 /**< Maximum windows size used. */ 130*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_MPI_MAX_SIZE 32 /**< Maximum number of bytes for usable MPIs. */ 131*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_ECP_MAX_BITS 256 /**< Maximum bit size of groups */ 132*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_ECP_WINDOW_SIZE 2 /**< Maximum window size used */ 133*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_ECP_FIXED_POINT_OPTIM 0 /**< Enable fixed-point speed-up */ 134*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_ENTROPY_MAX_SOURCES 1 /**< Maximum number of sources supported */ 135*cfb92d14SAndroid Build Coastguard Worker 136*cfb92d14SAndroid Build Coastguard Worker #if OPENTHREAD_CONFIG_HEAP_EXTERNAL_ENABLE 137*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_PLATFORM_STD_CALLOC otPlatCAlloc /**< Default allocator to use, can be undefined */ 138*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_PLATFORM_STD_FREE otPlatFree /**< Default free to use, can be undefined */ 139*cfb92d14SAndroid Build Coastguard Worker #else 140*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_MEMORY_BUFFER_ALLOC_C 141*cfb92d14SAndroid Build Coastguard Worker #endif 142*cfb92d14SAndroid Build Coastguard Worker 143*cfb92d14SAndroid Build Coastguard Worker #if OPENTHREAD_CONFIG_BLE_TCAT_ENABLE 144*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_SSL_MAX_CONTENT_LEN 2000 /**< Maxium fragment length in bytes */ 145*cfb92d14SAndroid Build Coastguard Worker #elif OPENTHREAD_CONFIG_COAP_SECURE_API_ENABLE 146*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_SSL_MAX_CONTENT_LEN 900 /**< Maxium fragment length in bytes */ 147*cfb92d14SAndroid Build Coastguard Worker #else 148*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_SSL_MAX_CONTENT_LEN 768 /**< Maxium fragment length in bytes */ 149*cfb92d14SAndroid Build Coastguard Worker #endif 150*cfb92d14SAndroid Build Coastguard Worker 151*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_SSL_IN_CONTENT_LEN MBEDTLS_SSL_MAX_CONTENT_LEN 152*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_SSL_OUT_CONTENT_LEN MBEDTLS_SSL_MAX_CONTENT_LEN 153*cfb92d14SAndroid Build Coastguard Worker #define MBEDTLS_SSL_CIPHERSUITES MBEDTLS_TLS_ECJPAKE_WITH_AES_128_CCM_8 154*cfb92d14SAndroid Build Coastguard Worker 155*cfb92d14SAndroid Build Coastguard Worker // Spans multiple lines to avoid being processed by unifdef 156*cfb92d14SAndroid Build Coastguard Worker #if defined(\ 157*cfb92d14SAndroid Build Coastguard Worker MBEDTLS_USER_CONFIG_FILE) 158*cfb92d14SAndroid Build Coastguard Worker #include MBEDTLS_USER_CONFIG_FILE 159*cfb92d14SAndroid Build Coastguard Worker #endif 160*cfb92d14SAndroid Build Coastguard Worker 161*cfb92d14SAndroid Build Coastguard Worker #include "mbedtls/version.h" 162*cfb92d14SAndroid Build Coastguard Worker #if (MBEDTLS_VERSION_NUMBER < 0x03000000) 163*cfb92d14SAndroid Build Coastguard Worker // Configuration sanity check. Done automatically in Mbed TLS >= 3.0. 164*cfb92d14SAndroid Build Coastguard Worker #include "mbedtls/check_config.h" 165*cfb92d14SAndroid Build Coastguard Worker #endif 166*cfb92d14SAndroid Build Coastguard Worker 167*cfb92d14SAndroid Build Coastguard Worker #endif /* MBEDTLS_CONFIG_H */ 168