wolfSSL SSL/TLS library, support up to TLS1.3

Dependents:   CyaSSL-Twitter-OAuth4Tw Example-client-tls-cert TwitterReader TweetTest ... more

Committer:
wolfSSL
Date:
Tue Jul 21 11:37:09 2015 +0000
Revision:
2:28278596c2a2
Parent:
1:e27310ce7654
Child:
3:6f956bdb3073
better MBED option set

Who changed what in which revision?

UserRevisionLine numberNew contents of line
wolfSSL 0:d92f9d21154c 1 /* settings.h
wolfSSL 0:d92f9d21154c 2 *
wolfSSL 0:d92f9d21154c 3 * Copyright (C) 2006-2015 wolfSSL Inc.
wolfSSL 0:d92f9d21154c 4 *
wolfSSL 0:d92f9d21154c 5 * This file is part of wolfSSL. (formerly known as CyaSSL)
wolfSSL 0:d92f9d21154c 6 *
wolfSSL 0:d92f9d21154c 7 * wolfSSL is free software; you can redistribute it and/or modify
wolfSSL 0:d92f9d21154c 8 * it under the terms of the GNU General Public License as published by
wolfSSL 0:d92f9d21154c 9 * the Free Software Foundation; either version 2 of the License, or
wolfSSL 0:d92f9d21154c 10 * (at your option) any later version.
wolfSSL 0:d92f9d21154c 11 *
wolfSSL 0:d92f9d21154c 12 * wolfSSL is distributed in the hope that it will be useful,
wolfSSL 0:d92f9d21154c 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
wolfSSL 0:d92f9d21154c 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
wolfSSL 0:d92f9d21154c 15 * GNU General Public License for more details.
wolfSSL 0:d92f9d21154c 16 *
wolfSSL 0:d92f9d21154c 17 * You should have received a copy of the GNU General Public License
wolfSSL 0:d92f9d21154c 18 * along with this program; if not, write to the Free Software
wolfSSL 0:d92f9d21154c 19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
wolfSSL 0:d92f9d21154c 20 */
wolfSSL 0:d92f9d21154c 21
wolfSSL 0:d92f9d21154c 22 /* Place OS specific preprocessor flags, defines, includes here, will be
wolfSSL 0:d92f9d21154c 23 included into every file because types.h includes it */
wolfSSL 0:d92f9d21154c 24
wolfSSL 0:d92f9d21154c 25
wolfSSL 0:d92f9d21154c 26 #ifndef WOLF_CRYPT_SETTINGS_H
wolfSSL 0:d92f9d21154c 27 #define WOLF_CRYPT_SETTINGS_H
wolfSSL 0:d92f9d21154c 28
wolfSSL 0:d92f9d21154c 29 #ifdef __cplusplus
wolfSSL 0:d92f9d21154c 30 extern "C" {
wolfSSL 0:d92f9d21154c 31 #endif
wolfSSL 0:d92f9d21154c 32
wolfSSL 0:d92f9d21154c 33 /* Uncomment next line if using IPHONE */
wolfSSL 0:d92f9d21154c 34 /* #define IPHONE */
wolfSSL 0:d92f9d21154c 35
wolfSSL 0:d92f9d21154c 36 /* Uncomment next line if using ThreadX */
wolfSSL 0:d92f9d21154c 37 /* #define THREADX */
wolfSSL 0:d92f9d21154c 38
wolfSSL 0:d92f9d21154c 39 /* Uncomment next line if using Micrium ucOS */
wolfSSL 0:d92f9d21154c 40 /* #define MICRIUM */
wolfSSL 0:d92f9d21154c 41
wolfSSL 0:d92f9d21154c 42 /* Uncomment next line if using Mbed */
wolfSSL 0:d92f9d21154c 43 /* #define MBED */
wolfSSL 0:d92f9d21154c 44
wolfSSL 0:d92f9d21154c 45 /* Uncomment next line if using Microchip PIC32 ethernet starter kit */
wolfSSL 0:d92f9d21154c 46 /* #define MICROCHIP_PIC32 */
wolfSSL 0:d92f9d21154c 47
wolfSSL 0:d92f9d21154c 48 /* Uncomment next line if using Microchip TCP/IP stack, version 5 */
wolfSSL 0:d92f9d21154c 49 /* #define MICROCHIP_TCPIP_V5 */
wolfSSL 0:d92f9d21154c 50
wolfSSL 0:d92f9d21154c 51 /* Uncomment next line if using Microchip TCP/IP stack, version 6 or later */
wolfSSL 0:d92f9d21154c 52 /* #define MICROCHIP_TCPIP */
wolfSSL 0:d92f9d21154c 53
wolfSSL 0:d92f9d21154c 54 /* Uncomment next line if using PIC32MZ Crypto Engine */
wolfSSL 0:d92f9d21154c 55 /* #define WOLFSSL_MICROCHIP_PIC32MZ */
wolfSSL 0:d92f9d21154c 56
wolfSSL 0:d92f9d21154c 57 /* Uncomment next line if using FreeRTOS */
wolfSSL 0:d92f9d21154c 58 /* #define FREERTOS */
wolfSSL 0:d92f9d21154c 59
wolfSSL 0:d92f9d21154c 60 /* Uncomment next line if using FreeRTOS Windows Simulator */
wolfSSL 0:d92f9d21154c 61 /* #define FREERTOS_WINSIM */
wolfSSL 0:d92f9d21154c 62
wolfSSL 0:d92f9d21154c 63 /* Uncomment next line if using RTIP */
wolfSSL 0:d92f9d21154c 64 /* #define EBSNET */
wolfSSL 0:d92f9d21154c 65
wolfSSL 0:d92f9d21154c 66 /* Uncomment next line if using lwip */
wolfSSL 0:d92f9d21154c 67 /* #define WOLFSSL_LWIP */
wolfSSL 0:d92f9d21154c 68
wolfSSL 0:d92f9d21154c 69 /* Uncomment next line if building wolfSSL for a game console */
wolfSSL 0:d92f9d21154c 70 /* #define WOLFSSL_GAME_BUILD */
wolfSSL 0:d92f9d21154c 71
wolfSSL 0:d92f9d21154c 72 /* Uncomment next line if building wolfSSL for LSR */
wolfSSL 0:d92f9d21154c 73 /* #define WOLFSSL_LSR */
wolfSSL 0:d92f9d21154c 74
wolfSSL 0:d92f9d21154c 75 /* Uncomment next line if building wolfSSL for Freescale MQX/RTCS/MFS */
wolfSSL 0:d92f9d21154c 76 /* #define FREESCALE_MQX */
wolfSSL 0:d92f9d21154c 77
wolfSSL 0:d92f9d21154c 78 /* Uncomment next line if using STM32F2 */
wolfSSL 0:d92f9d21154c 79 /* #define WOLFSSL_STM32F2 */
wolfSSL 0:d92f9d21154c 80
wolfSSL 0:d92f9d21154c 81 /* Uncomment next line if using Comverge settings */
wolfSSL 0:d92f9d21154c 82 /* #define COMVERGE */
wolfSSL 0:d92f9d21154c 83
wolfSSL 0:d92f9d21154c 84 /* Uncomment next line if using QL SEP settings */
wolfSSL 0:d92f9d21154c 85 /* #define WOLFSSL_QL */
wolfSSL 0:d92f9d21154c 86
wolfSSL 0:d92f9d21154c 87 /* Uncomment next line if building for EROAD */
wolfSSL 0:d92f9d21154c 88 /* #define WOLFSSL_EROAD */
wolfSSL 0:d92f9d21154c 89
wolfSSL 0:d92f9d21154c 90 /* Uncomment next line if building for IAR EWARM */
wolfSSL 0:d92f9d21154c 91 /* #define WOLFSSL_IAR_ARM */
wolfSSL 0:d92f9d21154c 92
wolfSSL 0:d92f9d21154c 93 /* Uncomment next line if using TI-RTOS settings */
wolfSSL 0:d92f9d21154c 94 /* #define WOLFSSL_TIRTOS */
wolfSSL 0:d92f9d21154c 95
wolfSSL 0:d92f9d21154c 96 /* Uncomment next line if building with PicoTCP */
wolfSSL 0:d92f9d21154c 97 /* #define WOLFSSL_PICOTCP */
wolfSSL 0:d92f9d21154c 98
wolfSSL 0:d92f9d21154c 99 /* Uncomment next line if building for PicoTCP demo bundle */
wolfSSL 0:d92f9d21154c 100 /* #define WOLFSSL_PICOTCP_DEMO */
wolfSSL 0:d92f9d21154c 101
wolfSSL 0:d92f9d21154c 102 /* Uncomment next line if building for uITRON4 */
wolfSSL 0:d92f9d21154c 103 /* #define WOLFSSL_uITRON4 */
wolfSSL 0:d92f9d21154c 104
wolfSSL 0:d92f9d21154c 105 /* Uncomment next line if building for uT-Kernel */
wolfSSL 0:d92f9d21154c 106 /* #define WOLFSSL_uTKERNEL2 */
wolfSSL 0:d92f9d21154c 107
wolfSSL 0:d92f9d21154c 108 /* Uncomment next line if using Max Strength build */
wolfSSL 0:d92f9d21154c 109 /* #define WOLFSSL_MAX_STRENGTH */
wolfSSL 0:d92f9d21154c 110
wolfSSL 0:d92f9d21154c 111 /* Uncomment next line if building for VxWorks */
wolfSSL 0:d92f9d21154c 112 /* #define WOLFSSL_VXWORKS */
wolfSSL 0:d92f9d21154c 113
wolfSSL 0:d92f9d21154c 114 #include <wolfssl/wolfcrypt/visibility.h>
wolfSSL 0:d92f9d21154c 115
wolfSSL 0:d92f9d21154c 116 #define WOLFSSL_USER_SETTINGS
wolfSSL 0:d92f9d21154c 117 #ifdef WOLFSSL_USER_SETTINGS
wolfSSL 0:d92f9d21154c 118 #include <user_settings.h>
wolfSSL 0:d92f9d21154c 119 #endif
wolfSSL 0:d92f9d21154c 120
wolfSSL 0:d92f9d21154c 121
wolfSSL 0:d92f9d21154c 122 #ifdef IPHONE
wolfSSL 0:d92f9d21154c 123 #define SIZEOF_LONG_LONG 8
wolfSSL 0:d92f9d21154c 124 #endif
wolfSSL 0:d92f9d21154c 125
wolfSSL 0:d92f9d21154c 126
wolfSSL 0:d92f9d21154c 127 #ifdef COMVERGE
wolfSSL 0:d92f9d21154c 128 #define THREADX
wolfSSL 0:d92f9d21154c 129 #define HAVE_NETX
wolfSSL 0:d92f9d21154c 130 #define WOLFSSL_USER_IO
wolfSSL 0:d92f9d21154c 131 #define NO_WRITEV
wolfSSL 0:d92f9d21154c 132 #define NO_DEV_RANDOM
wolfSSL 0:d92f9d21154c 133 #define NO_FILESYSTEM
wolfSSL 0:d92f9d21154c 134 #define NO_SHA512
wolfSSL 0:d92f9d21154c 135 #define NO_DH
wolfSSL 0:d92f9d21154c 136 #define NO_DSA
wolfSSL 0:d92f9d21154c 137 #define NO_HC128
wolfSSL 0:d92f9d21154c 138 #define NO_RSA
wolfSSL 0:d92f9d21154c 139 #define NO_SESSION_CACHE
wolfSSL 0:d92f9d21154c 140 #define HAVE_ECC
wolfSSL 0:d92f9d21154c 141 #endif
wolfSSL 0:d92f9d21154c 142
wolfSSL 0:d92f9d21154c 143
wolfSSL 0:d92f9d21154c 144 #ifdef THREADX
wolfSSL 0:d92f9d21154c 145 #define SIZEOF_LONG_LONG 8
wolfSSL 0:d92f9d21154c 146 #endif
wolfSSL 0:d92f9d21154c 147
wolfSSL 0:d92f9d21154c 148 #ifdef HAVE_NETX
wolfSSL 0:d92f9d21154c 149 #include "nx_api.h"
wolfSSL 0:d92f9d21154c 150 #endif
wolfSSL 0:d92f9d21154c 151
wolfSSL 0:d92f9d21154c 152 #if defined(HAVE_LWIP_NATIVE) /* using LwIP native TCP socket */
wolfSSL 0:d92f9d21154c 153 #define WOLFSSL_LWIP
wolfSSL 0:d92f9d21154c 154 #define NO_WRITEV
wolfSSL 0:d92f9d21154c 155 #define SINGLE_THREADED
wolfSSL 0:d92f9d21154c 156 #define WOLFSSL_USER_IO
wolfSSL 0:d92f9d21154c 157 #define NO_FILESYSTEM
wolfSSL 0:d92f9d21154c 158 #endif
wolfSSL 0:d92f9d21154c 159
wolfSSL 0:d92f9d21154c 160 #if defined(WOLFSSL_IAR_ARM)
wolfSSL 0:d92f9d21154c 161 #define NO_MAIN_DRIVER
wolfSSL 0:d92f9d21154c 162 #define SINGLE_THREADED
wolfSSL 0:d92f9d21154c 163 #define USE_CERT_BUFFERS_1024
wolfSSL 0:d92f9d21154c 164 #define BENCH_EMBEDDED
wolfSSL 0:d92f9d21154c 165 #define NO_FILESYSTEM
wolfSSL 0:d92f9d21154c 166 #define NO_WRITEV
wolfSSL 0:d92f9d21154c 167 #define WOLFSSL_USER_IO
wolfSSL 0:d92f9d21154c 168 #define BENCH_EMBEDDED
wolfSSL 0:d92f9d21154c 169 #endif
wolfSSL 0:d92f9d21154c 170
wolfSSL 0:d92f9d21154c 171 #ifdef MICROCHIP_PIC32
wolfSSL 0:d92f9d21154c 172 /* #define WOLFSSL_MICROCHIP_PIC32MZ */
wolfSSL 0:d92f9d21154c 173 #define SIZEOF_LONG_LONG 8
wolfSSL 0:d92f9d21154c 174 #define SINGLE_THREADED
wolfSSL 0:d92f9d21154c 175 #define WOLFSSL_USER_IO
wolfSSL 0:d92f9d21154c 176 #define NO_WRITEV
wolfSSL 0:d92f9d21154c 177 #define NO_DEV_RANDOM
wolfSSL 0:d92f9d21154c 178 #define NO_FILESYSTEM
wolfSSL 0:d92f9d21154c 179 #define USE_FAST_MATH
wolfSSL 0:d92f9d21154c 180 #define TFM_TIMING_RESISTANT
wolfSSL 0:d92f9d21154c 181 #define NEED_AES_TABLES
wolfSSL 0:d92f9d21154c 182 #endif
wolfSSL 0:d92f9d21154c 183
wolfSSL 0:d92f9d21154c 184 #ifdef WOLFSSL_MICROCHIP_PIC32MZ
wolfSSL 0:d92f9d21154c 185 #define WOLFSSL_PIC32MZ_CE
wolfSSL 0:d92f9d21154c 186 #define WOLFSSL_PIC32MZ_CRYPT
wolfSSL 0:d92f9d21154c 187 #define HAVE_AES_ENGINE
wolfSSL 0:d92f9d21154c 188 #define WOLFSSL_PIC32MZ_RNG
wolfSSL 0:d92f9d21154c 189 /* #define WOLFSSL_PIC32MZ_HASH */
wolfSSL 0:d92f9d21154c 190 #define WOLFSSL_AES_COUNTER
wolfSSL 0:d92f9d21154c 191 #define HAVE_AESGCM
wolfSSL 0:d92f9d21154c 192 #define NO_BIG_INT
wolfSSL 0:d92f9d21154c 193 #endif
wolfSSL 0:d92f9d21154c 194
wolfSSL 0:d92f9d21154c 195 #ifdef MICROCHIP_TCPIP_V5
wolfSSL 0:d92f9d21154c 196 /* include timer functions */
wolfSSL 0:d92f9d21154c 197 #include "TCPIP Stack/TCPIP.h"
wolfSSL 0:d92f9d21154c 198 #endif
wolfSSL 0:d92f9d21154c 199
wolfSSL 0:d92f9d21154c 200 #ifdef MICROCHIP_TCPIP
wolfSSL 0:d92f9d21154c 201 /* include timer, NTP functions */
wolfSSL 0:d92f9d21154c 202 #ifdef MICROCHIP_MPLAB_HARMONY
wolfSSL 0:d92f9d21154c 203 #include "tcpip/tcpip.h"
wolfSSL 0:d92f9d21154c 204 #else
wolfSSL 0:d92f9d21154c 205 #include "system/system_services.h"
wolfSSL 0:d92f9d21154c 206 #include "tcpip/sntp.h"
wolfSSL 0:d92f9d21154c 207 #endif
wolfSSL 0:d92f9d21154c 208 #endif
wolfSSL 0:d92f9d21154c 209
wolfSSL 0:d92f9d21154c 210 #ifdef MBED
wolfSSL 0:d92f9d21154c 211 #define WOLFSSL_USER_IO
wolfSSL 0:d92f9d21154c 212 #define NO_WRITEV
wolfSSL 0:d92f9d21154c 213 #define NO_DEV_RANDOM
wolfSSL 0:d92f9d21154c 214 #define WOLFSSL_CMSIS_RTOS
wolfSSL 0:d92f9d21154c 215 #endif
wolfSSL 0:d92f9d21154c 216
wolfSSL 0:d92f9d21154c 217 #ifdef WOLFSSL_EROAD
wolfSSL 0:d92f9d21154c 218 #define FREESCALE_MQX
wolfSSL 0:d92f9d21154c 219 #define FREESCALE_MMCAU
wolfSSL 0:d92f9d21154c 220 #define SINGLE_THREADED
wolfSSL 0:d92f9d21154c 221 #define NO_STDIO_FILESYSTEM
wolfSSL 0:d92f9d21154c 222 #define WOLFSSL_LEANPSK
wolfSSL 0:d92f9d21154c 223 #define HAVE_NULL_CIPHER
wolfSSL 0:d92f9d21154c 224 #define NO_OLD_TLS
wolfSSL 0:d92f9d21154c 225 #define NO_ASN
wolfSSL 0:d92f9d21154c 226 #define NO_BIG_INT
wolfSSL 0:d92f9d21154c 227 #define NO_RSA
wolfSSL 0:d92f9d21154c 228 #define NO_DSA
wolfSSL 0:d92f9d21154c 229 #define NO_DH
wolfSSL 0:d92f9d21154c 230 #define NO_CERTS
wolfSSL 0:d92f9d21154c 231 #define NO_PWDBASED
wolfSSL 0:d92f9d21154c 232 #define NO_DES3
wolfSSL 0:d92f9d21154c 233 #define NO_MD4
wolfSSL 0:d92f9d21154c 234 #define NO_RC4
wolfSSL 0:d92f9d21154c 235 #define NO_MD5
wolfSSL 0:d92f9d21154c 236 #define NO_SESSION_CACHE
wolfSSL 0:d92f9d21154c 237 #define NO_MAIN_DRIVER
wolfSSL 0:d92f9d21154c 238 #endif
wolfSSL 0:d92f9d21154c 239
wolfSSL 0:d92f9d21154c 240 #ifdef WOLFSSL_PICOTCP
wolfSSL 0:d92f9d21154c 241 #ifndef errno
wolfSSL 0:d92f9d21154c 242 #define errno pico_err
wolfSSL 0:d92f9d21154c 243 #endif
wolfSSL 0:d92f9d21154c 244 #include "pico_defines.h"
wolfSSL 0:d92f9d21154c 245 #include "pico_stack.h"
wolfSSL 0:d92f9d21154c 246 #include "pico_constants.h"
wolfSSL 0:d92f9d21154c 247 #include "pico_protocol.h"
wolfSSL 0:d92f9d21154c 248 #define CUSTOM_RAND_GENERATE pico_rand
wolfSSL 0:d92f9d21154c 249 #endif
wolfSSL 0:d92f9d21154c 250
wolfSSL 0:d92f9d21154c 251 #ifdef WOLFSSL_PICOTCP_DEMO
wolfSSL 0:d92f9d21154c 252 #define WOLFSSL_STM32
wolfSSL 0:d92f9d21154c 253 #define USE_FAST_MATH
wolfSSL 0:d92f9d21154c 254 #define TFM_TIMING_RESISTANT
wolfSSL 0:d92f9d21154c 255 #define XMALLOC(s, h, type) PICO_ZALLOC((s))
wolfSSL 0:d92f9d21154c 256 #define XFREE(p, h, type) PICO_FREE((p))
wolfSSL 0:d92f9d21154c 257 #define SINGLE_THREADED
wolfSSL 0:d92f9d21154c 258 #define NO_WRITEV
wolfSSL 0:d92f9d21154c 259 #define WOLFSSL_USER_IO
wolfSSL 0:d92f9d21154c 260 #define NO_DEV_RANDOM
wolfSSL 0:d92f9d21154c 261 #define NO_FILESYSTEM
wolfSSL 0:d92f9d21154c 262 #endif
wolfSSL 0:d92f9d21154c 263
wolfSSL 0:d92f9d21154c 264 #ifdef FREERTOS_WINSIM
wolfSSL 0:d92f9d21154c 265 #define FREERTOS
wolfSSL 0:d92f9d21154c 266 #define USE_WINDOWS_API
wolfSSL 0:d92f9d21154c 267 #endif
wolfSSL 0:d92f9d21154c 268
wolfSSL 0:d92f9d21154c 269
wolfSSL 0:d92f9d21154c 270 #ifdef WOLFSSL_VXWORKS
wolfSSL 0:d92f9d21154c 271 #define NO_DEV_RANDOM
wolfSSL 0:d92f9d21154c 272 #define NO_WRITEV
wolfSSL 0:d92f9d21154c 273 #endif
wolfSSL 0:d92f9d21154c 274
wolfSSL 0:d92f9d21154c 275
wolfSSL 0:d92f9d21154c 276 /* Micrium will use Visual Studio for compilation but not the Win32 API */
wolfSSL 0:d92f9d21154c 277 #if defined(_WIN32) && !defined(MICRIUM) && !defined(FREERTOS) \
wolfSSL 0:d92f9d21154c 278 && !defined(EBSNET) && !defined(WOLFSSL_EROAD)
wolfSSL 0:d92f9d21154c 279 #define USE_WINDOWS_API
wolfSSL 0:d92f9d21154c 280 #endif
wolfSSL 0:d92f9d21154c 281
wolfSSL 0:d92f9d21154c 282
wolfSSL 0:d92f9d21154c 283 #if defined(WOLFSSL_LEANPSK) && !defined(XMALLOC_USER)
wolfSSL 0:d92f9d21154c 284 #include <stdlib.h>
wolfSSL 0:d92f9d21154c 285 #define XMALLOC(s, h, type) malloc((s))
wolfSSL 0:d92f9d21154c 286 #define XFREE(p, h, type) free((p))
wolfSSL 0:d92f9d21154c 287 #define XREALLOC(p, n, h, t) realloc((p), (n))
wolfSSL 0:d92f9d21154c 288 #endif
wolfSSL 0:d92f9d21154c 289
wolfSSL 0:d92f9d21154c 290 #if defined(XMALLOC_USER) && defined(SSN_BUILDING_LIBYASSL)
wolfSSL 0:d92f9d21154c 291 #undef XMALLOC
wolfSSL 0:d92f9d21154c 292 #define XMALLOC yaXMALLOC
wolfSSL 0:d92f9d21154c 293 #undef XFREE
wolfSSL 0:d92f9d21154c 294 #define XFREE yaXFREE
wolfSSL 0:d92f9d21154c 295 #undef XREALLOC
wolfSSL 0:d92f9d21154c 296 #define XREALLOC yaXREALLOC
wolfSSL 0:d92f9d21154c 297 #endif
wolfSSL 0:d92f9d21154c 298
wolfSSL 0:d92f9d21154c 299
wolfSSL 0:d92f9d21154c 300 #ifdef FREERTOS
wolfSSL 0:d92f9d21154c 301 #ifndef NO_WRITEV
wolfSSL 0:d92f9d21154c 302 #define NO_WRITEV
wolfSSL 0:d92f9d21154c 303 #endif
wolfSSL 0:d92f9d21154c 304 #ifndef HAVE_SHA512
wolfSSL 0:d92f9d21154c 305 #ifndef NO_SHA512
wolfSSL 0:d92f9d21154c 306 #define NO_SHA512
wolfSSL 0:d92f9d21154c 307 #endif
wolfSSL 0:d92f9d21154c 308 #endif
wolfSSL 0:d92f9d21154c 309 #ifndef HAVE_DH
wolfSSL 0:d92f9d21154c 310 #ifndef NO_DH
wolfSSL 0:d92f9d21154c 311 #define NO_DH
wolfSSL 0:d92f9d21154c 312 #endif
wolfSSL 0:d92f9d21154c 313 #endif
wolfSSL 0:d92f9d21154c 314 #ifndef NO_DSA
wolfSSL 0:d92f9d21154c 315 #define NO_DSA
wolfSSL 0:d92f9d21154c 316 #endif
wolfSSL 0:d92f9d21154c 317 #ifndef NO_HC128
wolfSSL 0:d92f9d21154c 318 #define NO_HC128
wolfSSL 0:d92f9d21154c 319 #endif
wolfSSL 0:d92f9d21154c 320
wolfSSL 0:d92f9d21154c 321 #ifndef SINGLE_THREADED
wolfSSL 0:d92f9d21154c 322 #include "FreeRTOS.h"
wolfSSL 0:d92f9d21154c 323 #include "semphr.h"
wolfSSL 0:d92f9d21154c 324 #endif
wolfSSL 0:d92f9d21154c 325 #endif
wolfSSL 0:d92f9d21154c 326
wolfSSL 0:d92f9d21154c 327 #ifdef WOLFSSL_TIRTOS
wolfSSL 0:d92f9d21154c 328 #define SIZEOF_LONG_LONG 8
wolfSSL 0:d92f9d21154c 329 #define NO_WRITEV
wolfSSL 0:d92f9d21154c 330 #define NO_WOLFSSL_DIR
wolfSSL 0:d92f9d21154c 331 #define USE_FAST_MATH
wolfSSL 0:d92f9d21154c 332 #define TFM_TIMING_RESISTANT
wolfSSL 0:d92f9d21154c 333 #define NO_DEV_RANDOM
wolfSSL 0:d92f9d21154c 334 #define NO_FILESYSTEM
wolfSSL 0:d92f9d21154c 335 #define USE_CERT_BUFFERS_2048
wolfSSL 0:d92f9d21154c 336 #define NO_ERROR_STRINGS
wolfSSL 0:d92f9d21154c 337 #define USER_TIME
wolfSSL 0:d92f9d21154c 338
wolfSSL 0:d92f9d21154c 339 #ifdef __IAR_SYSTEMS_ICC__
wolfSSL 0:d92f9d21154c 340 #pragma diag_suppress=Pa089
wolfSSL 0:d92f9d21154c 341 #elif !defined(__GNUC__)
wolfSSL 0:d92f9d21154c 342 /* Suppress the sslpro warning */
wolfSSL 0:d92f9d21154c 343 #pragma diag_suppress=11
wolfSSL 0:d92f9d21154c 344 #endif
wolfSSL 0:d92f9d21154c 345
wolfSSL 0:d92f9d21154c 346 #include <ti/sysbios/hal/Seconds.h>
wolfSSL 0:d92f9d21154c 347 #endif
wolfSSL 0:d92f9d21154c 348
wolfSSL 0:d92f9d21154c 349 #ifdef EBSNET
wolfSSL 0:d92f9d21154c 350 #include "rtip.h"
wolfSSL 0:d92f9d21154c 351
wolfSSL 0:d92f9d21154c 352 /* #define DEBUG_WOLFSSL */
wolfSSL 0:d92f9d21154c 353 #define NO_WOLFSSL_DIR /* tbd */
wolfSSL 0:d92f9d21154c 354
wolfSSL 0:d92f9d21154c 355 #if (POLLOS)
wolfSSL 0:d92f9d21154c 356 #define SINGLE_THREADED
wolfSSL 0:d92f9d21154c 357 #endif
wolfSSL 0:d92f9d21154c 358
wolfSSL 0:d92f9d21154c 359 #if (RTPLATFORM)
wolfSSL 0:d92f9d21154c 360 #if (!RTP_LITTLE_ENDIAN)
wolfSSL 0:d92f9d21154c 361 #define BIG_ENDIAN_ORDER
wolfSSL 0:d92f9d21154c 362 #endif
wolfSSL 0:d92f9d21154c 363 #else
wolfSSL 0:d92f9d21154c 364 #if (!KS_LITTLE_ENDIAN)
wolfSSL 0:d92f9d21154c 365 #define BIG_ENDIAN_ORDER
wolfSSL 0:d92f9d21154c 366 #endif
wolfSSL 0:d92f9d21154c 367 #endif
wolfSSL 0:d92f9d21154c 368
wolfSSL 0:d92f9d21154c 369 #if (WINMSP3)
wolfSSL 0:d92f9d21154c 370 #undef SIZEOF_LONG
wolfSSL 0:d92f9d21154c 371 #define SIZEOF_LONG_LONG 8
wolfSSL 0:d92f9d21154c 372 #else
wolfSSL 0:d92f9d21154c 373 #sslpro: settings.h - please implement SIZEOF_LONG and SIZEOF_LONG_LONG
wolfSSL 0:d92f9d21154c 374 #endif
wolfSSL 0:d92f9d21154c 375
wolfSSL 0:d92f9d21154c 376 #define XMALLOC(s, h, type) ((void *)rtp_malloc((s), SSL_PRO_MALLOC))
wolfSSL 0:d92f9d21154c 377 #define XFREE(p, h, type) (rtp_free(p))
wolfSSL 0:d92f9d21154c 378 #define XREALLOC(p, n, h, t) realloc((p), (n))
wolfSSL 0:d92f9d21154c 379
wolfSSL 0:d92f9d21154c 380 #endif /* EBSNET */
wolfSSL 0:d92f9d21154c 381
wolfSSL 0:d92f9d21154c 382 #ifdef WOLFSSL_GAME_BUILD
wolfSSL 0:d92f9d21154c 383 #define SIZEOF_LONG_LONG 8
wolfSSL 0:d92f9d21154c 384 #if defined(__PPU) || defined(__XENON)
wolfSSL 0:d92f9d21154c 385 #define BIG_ENDIAN_ORDER
wolfSSL 0:d92f9d21154c 386 #endif
wolfSSL 0:d92f9d21154c 387 #endif
wolfSSL 0:d92f9d21154c 388
wolfSSL 0:d92f9d21154c 389 #ifdef WOLFSSL_LSR
wolfSSL 0:d92f9d21154c 390 #define HAVE_WEBSERVER
wolfSSL 0:d92f9d21154c 391 #define SIZEOF_LONG_LONG 8
wolfSSL 0:d92f9d21154c 392 #define WOLFSSL_LOW_MEMORY
wolfSSL 0:d92f9d21154c 393 #define NO_WRITEV
wolfSSL 0:d92f9d21154c 394 #define NO_SHA512
wolfSSL 0:d92f9d21154c 395 #define NO_DH
wolfSSL 0:d92f9d21154c 396 #define NO_DSA
wolfSSL 0:d92f9d21154c 397 #define NO_HC128
wolfSSL 0:d92f9d21154c 398 #define NO_DEV_RANDOM
wolfSSL 0:d92f9d21154c 399 #define NO_WOLFSSL_DIR
wolfSSL 0:d92f9d21154c 400 #define NO_RABBIT
wolfSSL 0:d92f9d21154c 401 #ifndef NO_FILESYSTEM
wolfSSL 0:d92f9d21154c 402 #define LSR_FS
wolfSSL 0:d92f9d21154c 403 #include "inc/hw_types.h"
wolfSSL 0:d92f9d21154c 404 #include "fs.h"
wolfSSL 0:d92f9d21154c 405 #endif
wolfSSL 0:d92f9d21154c 406 #define WOLFSSL_LWIP
wolfSSL 0:d92f9d21154c 407 #include <errno.h> /* for tcp errno */
wolfSSL 0:d92f9d21154c 408 #define WOLFSSL_SAFERTOS
wolfSSL 0:d92f9d21154c 409 #if defined(__IAR_SYSTEMS_ICC__)
wolfSSL 0:d92f9d21154c 410 /* enum uses enum */
wolfSSL 0:d92f9d21154c 411 #pragma diag_suppress=Pa089
wolfSSL 0:d92f9d21154c 412 #endif
wolfSSL 0:d92f9d21154c 413 #endif
wolfSSL 0:d92f9d21154c 414
wolfSSL 0:d92f9d21154c 415 #ifdef WOLFSSL_SAFERTOS
wolfSSL 0:d92f9d21154c 416 #ifndef SINGLE_THREADED
wolfSSL 0:d92f9d21154c 417 #include "SafeRTOS/semphr.h"
wolfSSL 0:d92f9d21154c 418 #endif
wolfSSL 0:d92f9d21154c 419
wolfSSL 0:d92f9d21154c 420 #include "SafeRTOS/heap.h"
wolfSSL 0:d92f9d21154c 421 #define XMALLOC(s, h, type) pvPortMalloc((s))
wolfSSL 0:d92f9d21154c 422 #define XFREE(p, h, type) vPortFree((p))
wolfSSL 0:d92f9d21154c 423 #define XREALLOC(p, n, h, t) pvPortRealloc((p), (n))
wolfSSL 0:d92f9d21154c 424 #endif
wolfSSL 0:d92f9d21154c 425
wolfSSL 0:d92f9d21154c 426 #ifdef WOLFSSL_LOW_MEMORY
wolfSSL 0:d92f9d21154c 427 #undef RSA_LOW_MEM
wolfSSL 0:d92f9d21154c 428 #define RSA_LOW_MEM
wolfSSL 0:d92f9d21154c 429 #undef WOLFSSL_SMALL_STACK
wolfSSL 0:d92f9d21154c 430 #define WOLFSSL_SMALL_STACK
wolfSSL 0:d92f9d21154c 431 #undef TFM_TIMING_RESISTANT
wolfSSL 0:d92f9d21154c 432 #define TFM_TIMING_RESISTANT
wolfSSL 0:d92f9d21154c 433 #endif
wolfSSL 0:d92f9d21154c 434
wolfSSL 0:d92f9d21154c 435 #ifdef FREESCALE_MQX
wolfSSL 0:d92f9d21154c 436 #define SIZEOF_LONG_LONG 8
wolfSSL 0:d92f9d21154c 437 #define NO_WRITEV
wolfSSL 0:d92f9d21154c 438 #define NO_DEV_RANDOM
wolfSSL 0:d92f9d21154c 439 #define NO_RABBIT
wolfSSL 0:d92f9d21154c 440 #define NO_WOLFSSL_DIR
wolfSSL 0:d92f9d21154c 441 #define USE_FAST_MATH
wolfSSL 0:d92f9d21154c 442 #define TFM_TIMING_RESISTANT
wolfSSL 0:d92f9d21154c 443 #define FREESCALE_K70_RNGA
wolfSSL 0:d92f9d21154c 444 /* #define FREESCALE_K53_RNGB */
wolfSSL 0:d92f9d21154c 445 #include "mqx.h"
wolfSSL 0:d92f9d21154c 446 #ifndef NO_FILESYSTEM
wolfSSL 0:d92f9d21154c 447 #include "mfs.h"
wolfSSL 0:d92f9d21154c 448 #include "fio.h"
wolfSSL 0:d92f9d21154c 449 #endif
wolfSSL 0:d92f9d21154c 450 #ifndef SINGLE_THREADED
wolfSSL 0:d92f9d21154c 451 #include "mutex.h"
wolfSSL 0:d92f9d21154c 452 #endif
wolfSSL 0:d92f9d21154c 453
wolfSSL 0:d92f9d21154c 454 #define XMALLOC(s, h, t) (void *)_mem_alloc_system((s))
wolfSSL 0:d92f9d21154c 455 #define XFREE(p, h, t) {void* xp = (p); if ((xp)) _mem_free((xp));}
wolfSSL 0:d92f9d21154c 456 /* Note: MQX has no realloc, using fastmath above */
wolfSSL 0:d92f9d21154c 457 #endif
wolfSSL 0:d92f9d21154c 458
wolfSSL 0:d92f9d21154c 459 #ifdef WOLFSSL_STM32F2
wolfSSL 0:d92f9d21154c 460 #define SIZEOF_LONG_LONG 8
wolfSSL 0:d92f9d21154c 461 #define NO_DEV_RANDOM
wolfSSL 0:d92f9d21154c 462 #define NO_WOLFSSL_DIR
wolfSSL 0:d92f9d21154c 463 #define NO_RABBIT
wolfSSL 0:d92f9d21154c 464 #define STM32F2_RNG
wolfSSL 0:d92f9d21154c 465 #define STM32F2_CRYPTO
wolfSSL 0:d92f9d21154c 466 #define KEIL_INTRINSICS
wolfSSL 0:d92f9d21154c 467 #endif
wolfSSL 0:d92f9d21154c 468
wolfSSL 0:d92f9d21154c 469 #ifdef MICRIUM
wolfSSL 0:d92f9d21154c 470
wolfSSL 0:d92f9d21154c 471 #include "stdlib.h"
wolfSSL 0:d92f9d21154c 472 #include "net_cfg.h"
wolfSSL 0:d92f9d21154c 473 #include "ssl_cfg.h"
wolfSSL 0:d92f9d21154c 474 #include "net_secure_os.h"
wolfSSL 0:d92f9d21154c 475
wolfSSL 0:d92f9d21154c 476 #define WOLFSSL_TYPES
wolfSSL 0:d92f9d21154c 477
wolfSSL 0:d92f9d21154c 478 typedef CPU_INT08U byte;
wolfSSL 0:d92f9d21154c 479 typedef CPU_INT16U word16;
wolfSSL 0:d92f9d21154c 480 typedef CPU_INT32U word32;
wolfSSL 0:d92f9d21154c 481
wolfSSL 0:d92f9d21154c 482 #if (NET_SECURE_MGR_CFG_WORD_SIZE == CPU_WORD_SIZE_32)
wolfSSL 0:d92f9d21154c 483 #define SIZEOF_LONG 4
wolfSSL 0:d92f9d21154c 484 #undef SIZEOF_LONG_LONG
wolfSSL 0:d92f9d21154c 485 #else
wolfSSL 0:d92f9d21154c 486 #undef SIZEOF_LONG
wolfSSL 0:d92f9d21154c 487 #define SIZEOF_LONG_LONG 8
wolfSSL 0:d92f9d21154c 488 #endif
wolfSSL 0:d92f9d21154c 489
wolfSSL 0:d92f9d21154c 490 #define STRING_USER
wolfSSL 0:d92f9d21154c 491
wolfSSL 0:d92f9d21154c 492 #define XSTRLEN(pstr) ((CPU_SIZE_T)Str_Len((CPU_CHAR *)(pstr)))
wolfSSL 0:d92f9d21154c 493 #define XSTRNCPY(pstr_dest, pstr_src, len_max) \
wolfSSL 0:d92f9d21154c 494 ((CPU_CHAR *)Str_Copy_N((CPU_CHAR *)(pstr_dest), \
wolfSSL 0:d92f9d21154c 495 (CPU_CHAR *)(pstr_src), (CPU_SIZE_T)(len_max)))
wolfSSL 0:d92f9d21154c 496 #define XSTRNCMP(pstr_1, pstr_2, len_max) \
wolfSSL 0:d92f9d21154c 497 ((CPU_INT16S)Str_Cmp_N((CPU_CHAR *)(pstr_1), \
wolfSSL 0:d92f9d21154c 498 (CPU_CHAR *)(pstr_2), (CPU_SIZE_T)(len_max)))
wolfSSL 0:d92f9d21154c 499 #define XSTRSTR(pstr, pstr_srch) \
wolfSSL 0:d92f9d21154c 500 ((CPU_CHAR *)Str_Str((CPU_CHAR *)(pstr), \
wolfSSL 0:d92f9d21154c 501 (CPU_CHAR *)(pstr_srch)))
wolfSSL 0:d92f9d21154c 502 #define XMEMSET(pmem, data_val, size) \
wolfSSL 0:d92f9d21154c 503 ((void)Mem_Set((void *)(pmem), (CPU_INT08U) (data_val), \
wolfSSL 0:d92f9d21154c 504 (CPU_SIZE_T)(size)))
wolfSSL 0:d92f9d21154c 505 #define XMEMCPY(pdest, psrc, size) ((void)Mem_Copy((void *)(pdest), \
wolfSSL 0:d92f9d21154c 506 (void *)(psrc), (CPU_SIZE_T)(size)))
wolfSSL 0:d92f9d21154c 507 #define XMEMCMP(pmem_1, pmem_2, size) \
wolfSSL 0:d92f9d21154c 508 (((CPU_BOOLEAN)Mem_Cmp((void *)(pmem_1), (void *)(pmem_2), \
wolfSSL 0:d92f9d21154c 509 (CPU_SIZE_T)(size))) ? DEF_NO : DEF_YES)
wolfSSL 0:d92f9d21154c 510 #define XMEMMOVE XMEMCPY
wolfSSL 0:d92f9d21154c 511
wolfSSL 0:d92f9d21154c 512 #if (NET_SECURE_MGR_CFG_EN == DEF_ENABLED)
wolfSSL 0:d92f9d21154c 513 #define MICRIUM_MALLOC
wolfSSL 0:d92f9d21154c 514 #define XMALLOC(s, h, type) ((void *)NetSecure_BlkGet((CPU_INT08U)(type), \
wolfSSL 0:d92f9d21154c 515 (CPU_SIZE_T)(s), (void *)0))
wolfSSL 0:d92f9d21154c 516 #define XFREE(p, h, type) (NetSecure_BlkFree((CPU_INT08U)(type), \
wolfSSL 0:d92f9d21154c 517 (p), (void *)0))
wolfSSL 0:d92f9d21154c 518 #define XREALLOC(p, n, h, t) realloc((p), (n))
wolfSSL 0:d92f9d21154c 519 #endif
wolfSSL 0:d92f9d21154c 520
wolfSSL 0:d92f9d21154c 521 #if (NET_SECURE_MGR_CFG_FS_EN == DEF_ENABLED)
wolfSSL 0:d92f9d21154c 522 #undef NO_FILESYSTEM
wolfSSL 0:d92f9d21154c 523 #else
wolfSSL 0:d92f9d21154c 524 #define NO_FILESYSTEM
wolfSSL 0:d92f9d21154c 525 #endif
wolfSSL 0:d92f9d21154c 526
wolfSSL 0:d92f9d21154c 527 #if (SSL_CFG_TRACE_LEVEL == WOLFSSL_TRACE_LEVEL_DBG)
wolfSSL 0:d92f9d21154c 528 #define DEBUG_WOLFSSL
wolfSSL 0:d92f9d21154c 529 #else
wolfSSL 0:d92f9d21154c 530 #undef DEBUG_WOLFSSL
wolfSSL 0:d92f9d21154c 531 #endif
wolfSSL 0:d92f9d21154c 532
wolfSSL 0:d92f9d21154c 533 #if (SSL_CFG_OPENSSL_EN == DEF_ENABLED)
wolfSSL 0:d92f9d21154c 534 #define OPENSSL_EXTRA
wolfSSL 0:d92f9d21154c 535 #else
wolfSSL 0:d92f9d21154c 536 #undef OPENSSL_EXTRA
wolfSSL 0:d92f9d21154c 537 #endif
wolfSSL 0:d92f9d21154c 538
wolfSSL 0:d92f9d21154c 539 #if (SSL_CFG_MULTI_THREAD_EN == DEF_ENABLED)
wolfSSL 0:d92f9d21154c 540 #undef SINGLE_THREADED
wolfSSL 0:d92f9d21154c 541 #else
wolfSSL 0:d92f9d21154c 542 #define SINGLE_THREADED
wolfSSL 0:d92f9d21154c 543 #endif
wolfSSL 0:d92f9d21154c 544
wolfSSL 0:d92f9d21154c 545 #if (SSL_CFG_DH_EN == DEF_ENABLED)
wolfSSL 0:d92f9d21154c 546 #undef NO_DH
wolfSSL 0:d92f9d21154c 547 #else
wolfSSL 0:d92f9d21154c 548 #define NO_DH
wolfSSL 0:d92f9d21154c 549 #endif
wolfSSL 0:d92f9d21154c 550
wolfSSL 0:d92f9d21154c 551 #if (SSL_CFG_DSA_EN == DEF_ENABLED)
wolfSSL 0:d92f9d21154c 552 #undef NO_DSA
wolfSSL 0:d92f9d21154c 553 #else
wolfSSL 0:d92f9d21154c 554 #define NO_DSA
wolfSSL 0:d92f9d21154c 555 #endif
wolfSSL 0:d92f9d21154c 556
wolfSSL 0:d92f9d21154c 557 #if (SSL_CFG_PSK_EN == DEF_ENABLED)
wolfSSL 0:d92f9d21154c 558 #undef NO_PSK
wolfSSL 0:d92f9d21154c 559 #else
wolfSSL 0:d92f9d21154c 560 #define NO_PSK
wolfSSL 0:d92f9d21154c 561 #endif
wolfSSL 0:d92f9d21154c 562
wolfSSL 0:d92f9d21154c 563 #if (SSL_CFG_3DES_EN == DEF_ENABLED)
wolfSSL 0:d92f9d21154c 564 #undef NO_DES
wolfSSL 0:d92f9d21154c 565 #else
wolfSSL 0:d92f9d21154c 566 #define NO_DES
wolfSSL 0:d92f9d21154c 567 #endif
wolfSSL 0:d92f9d21154c 568
wolfSSL 0:d92f9d21154c 569 #if (SSL_CFG_AES_EN == DEF_ENABLED)
wolfSSL 0:d92f9d21154c 570 #undef NO_AES
wolfSSL 0:d92f9d21154c 571 #else
wolfSSL 0:d92f9d21154c 572 #define NO_AES
wolfSSL 0:d92f9d21154c 573 #endif
wolfSSL 0:d92f9d21154c 574
wolfSSL 0:d92f9d21154c 575 #if (SSL_CFG_RC4_EN == DEF_ENABLED)
wolfSSL 0:d92f9d21154c 576 #undef NO_RC4
wolfSSL 0:d92f9d21154c 577 #else
wolfSSL 0:d92f9d21154c 578 #define NO_RC4
wolfSSL 0:d92f9d21154c 579 #endif
wolfSSL 0:d92f9d21154c 580
wolfSSL 0:d92f9d21154c 581 #if (SSL_CFG_RABBIT_EN == DEF_ENABLED)
wolfSSL 0:d92f9d21154c 582 #undef NO_RABBIT
wolfSSL 0:d92f9d21154c 583 #else
wolfSSL 0:d92f9d21154c 584 #define NO_RABBIT
wolfSSL 0:d92f9d21154c 585 #endif
wolfSSL 0:d92f9d21154c 586
wolfSSL 0:d92f9d21154c 587 #if (SSL_CFG_HC128_EN == DEF_ENABLED)
wolfSSL 0:d92f9d21154c 588 #undef NO_HC128
wolfSSL 0:d92f9d21154c 589 #else
wolfSSL 0:d92f9d21154c 590 #define NO_HC128
wolfSSL 0:d92f9d21154c 591 #endif
wolfSSL 0:d92f9d21154c 592
wolfSSL 0:d92f9d21154c 593 #if (CPU_CFG_ENDIAN_TYPE == CPU_ENDIAN_TYPE_BIG)
wolfSSL 0:d92f9d21154c 594 #define BIG_ENDIAN_ORDER
wolfSSL 0:d92f9d21154c 595 #else
wolfSSL 0:d92f9d21154c 596 #undef BIG_ENDIAN_ORDER
wolfSSL 0:d92f9d21154c 597 #define LITTLE_ENDIAN_ORDER
wolfSSL 0:d92f9d21154c 598 #endif
wolfSSL 0:d92f9d21154c 599
wolfSSL 0:d92f9d21154c 600 #if (SSL_CFG_MD4_EN == DEF_ENABLED)
wolfSSL 0:d92f9d21154c 601 #undef NO_MD4
wolfSSL 0:d92f9d21154c 602 #else
wolfSSL 0:d92f9d21154c 603 #define NO_MD4
wolfSSL 0:d92f9d21154c 604 #endif
wolfSSL 0:d92f9d21154c 605
wolfSSL 0:d92f9d21154c 606 #if (SSL_CFG_WRITEV_EN == DEF_ENABLED)
wolfSSL 0:d92f9d21154c 607 #undef NO_WRITEV
wolfSSL 0:d92f9d21154c 608 #else
wolfSSL 0:d92f9d21154c 609 #define NO_WRITEV
wolfSSL 0:d92f9d21154c 610 #endif
wolfSSL 0:d92f9d21154c 611
wolfSSL 0:d92f9d21154c 612 #if (SSL_CFG_USER_RNG_SEED_EN == DEF_ENABLED)
wolfSSL 0:d92f9d21154c 613 #define NO_DEV_RANDOM
wolfSSL 0:d92f9d21154c 614 #else
wolfSSL 0:d92f9d21154c 615 #undef NO_DEV_RANDOM
wolfSSL 0:d92f9d21154c 616 #endif
wolfSSL 0:d92f9d21154c 617
wolfSSL 0:d92f9d21154c 618 #if (SSL_CFG_USER_IO_EN == DEF_ENABLED)
wolfSSL 0:d92f9d21154c 619 #define WOLFSSL_USER_IO
wolfSSL 0:d92f9d21154c 620 #else
wolfSSL 0:d92f9d21154c 621 #undef WOLFSSL_USER_IO
wolfSSL 0:d92f9d21154c 622 #endif
wolfSSL 0:d92f9d21154c 623
wolfSSL 0:d92f9d21154c 624 #if (SSL_CFG_DYNAMIC_BUFFERS_EN == DEF_ENABLED)
wolfSSL 0:d92f9d21154c 625 #undef LARGE_STATIC_BUFFERS
wolfSSL 0:d92f9d21154c 626 #undef STATIC_CHUNKS_ONLY
wolfSSL 0:d92f9d21154c 627 #else
wolfSSL 0:d92f9d21154c 628 #define LARGE_STATIC_BUFFERS
wolfSSL 0:d92f9d21154c 629 #define STATIC_CHUNKS_ONLY
wolfSSL 0:d92f9d21154c 630 #endif
wolfSSL 0:d92f9d21154c 631
wolfSSL 0:d92f9d21154c 632 #if (SSL_CFG_DER_LOAD_EN == DEF_ENABLED)
wolfSSL 0:d92f9d21154c 633 #define WOLFSSL_DER_LOAD
wolfSSL 0:d92f9d21154c 634 #else
wolfSSL 0:d92f9d21154c 635 #undef WOLFSSL_DER_LOAD
wolfSSL 0:d92f9d21154c 636 #endif
wolfSSL 0:d92f9d21154c 637
wolfSSL 0:d92f9d21154c 638 #if (SSL_CFG_DTLS_EN == DEF_ENABLED)
wolfSSL 0:d92f9d21154c 639 #define WOLFSSL_DTLS
wolfSSL 0:d92f9d21154c 640 #else
wolfSSL 0:d92f9d21154c 641 #undef WOLFSSL_DTLS
wolfSSL 0:d92f9d21154c 642 #endif
wolfSSL 0:d92f9d21154c 643
wolfSSL 0:d92f9d21154c 644 #if (SSL_CFG_CALLBACKS_EN == DEF_ENABLED)
wolfSSL 0:d92f9d21154c 645 #define WOLFSSL_CALLBACKS
wolfSSL 0:d92f9d21154c 646 #else
wolfSSL 0:d92f9d21154c 647 #undef WOLFSSL_CALLBACKS
wolfSSL 0:d92f9d21154c 648 #endif
wolfSSL 0:d92f9d21154c 649
wolfSSL 0:d92f9d21154c 650 #if (SSL_CFG_FAST_MATH_EN == DEF_ENABLED)
wolfSSL 0:d92f9d21154c 651 #define USE_FAST_MATH
wolfSSL 0:d92f9d21154c 652 #else
wolfSSL 0:d92f9d21154c 653 #undef USE_FAST_MATH
wolfSSL 0:d92f9d21154c 654 #endif
wolfSSL 0:d92f9d21154c 655
wolfSSL 0:d92f9d21154c 656 #if (SSL_CFG_TFM_TIMING_RESISTANT_EN == DEF_ENABLED)
wolfSSL 0:d92f9d21154c 657 #define TFM_TIMING_RESISTANT
wolfSSL 0:d92f9d21154c 658 #else
wolfSSL 0:d92f9d21154c 659 #undef TFM_TIMING_RESISTANT
wolfSSL 0:d92f9d21154c 660 #endif
wolfSSL 0:d92f9d21154c 661
wolfSSL 0:d92f9d21154c 662 #endif /* MICRIUM */
wolfSSL 0:d92f9d21154c 663
wolfSSL 0:d92f9d21154c 664
wolfSSL 0:d92f9d21154c 665 #ifdef WOLFSSL_QL
wolfSSL 0:d92f9d21154c 666 #ifndef WOLFSSL_SEP
wolfSSL 0:d92f9d21154c 667 #define WOLFSSL_SEP
wolfSSL 0:d92f9d21154c 668 #endif
wolfSSL 0:d92f9d21154c 669 #ifndef OPENSSL_EXTRA
wolfSSL 0:d92f9d21154c 670 #define OPENSSL_EXTRA
wolfSSL 0:d92f9d21154c 671 #endif
wolfSSL 0:d92f9d21154c 672 #ifndef SESSION_CERTS
wolfSSL 0:d92f9d21154c 673 #define SESSION_CERTS
wolfSSL 0:d92f9d21154c 674 #endif
wolfSSL 0:d92f9d21154c 675 #ifndef HAVE_AESCCM
wolfSSL 0:d92f9d21154c 676 #define HAVE_AESCCM
wolfSSL 0:d92f9d21154c 677 #endif
wolfSSL 0:d92f9d21154c 678 #ifndef ATOMIC_USER
wolfSSL 0:d92f9d21154c 679 #define ATOMIC_USER
wolfSSL 0:d92f9d21154c 680 #endif
wolfSSL 0:d92f9d21154c 681 #ifndef WOLFSSL_DER_LOAD
wolfSSL 0:d92f9d21154c 682 #define WOLFSSL_DER_LOAD
wolfSSL 0:d92f9d21154c 683 #endif
wolfSSL 0:d92f9d21154c 684 #ifndef KEEP_PEER_CERT
wolfSSL 0:d92f9d21154c 685 #define KEEP_PEER_CERT
wolfSSL 0:d92f9d21154c 686 #endif
wolfSSL 0:d92f9d21154c 687 #ifndef HAVE_ECC
wolfSSL 0:d92f9d21154c 688 #define HAVE_ECC
wolfSSL 0:d92f9d21154c 689 #endif
wolfSSL 0:d92f9d21154c 690 #ifndef SESSION_INDEX
wolfSSL 0:d92f9d21154c 691 #define SESSION_INDEX
wolfSSL 0:d92f9d21154c 692 #endif
wolfSSL 0:d92f9d21154c 693 #endif /* WOLFSSL_QL */
wolfSSL 0:d92f9d21154c 694
wolfSSL 0:d92f9d21154c 695
wolfSSL 0:d92f9d21154c 696 #if !defined(XMALLOC_USER) && !defined(MICRIUM_MALLOC) && \
wolfSSL 0:d92f9d21154c 697 !defined(WOLFSSL_LEANPSK) && !defined(NO_WOLFSSL_MEMORY)
wolfSSL 0:d92f9d21154c 698 #define USE_WOLFSSL_MEMORY
wolfSSL 0:d92f9d21154c 699 #endif
wolfSSL 0:d92f9d21154c 700
wolfSSL 0:d92f9d21154c 701
wolfSSL 0:d92f9d21154c 702 #if defined(OPENSSL_EXTRA) && !defined(NO_CERTS)
wolfSSL 0:d92f9d21154c 703 #undef KEEP_PEER_CERT
wolfSSL 0:d92f9d21154c 704 #define KEEP_PEER_CERT
wolfSSL 0:d92f9d21154c 705 #endif
wolfSSL 0:d92f9d21154c 706
wolfSSL 0:d92f9d21154c 707
wolfSSL 0:d92f9d21154c 708 /* stream ciphers except arc4 need 32bit alignment, intel ok without */
wolfSSL 0:d92f9d21154c 709 #ifndef XSTREAM_ALIGN
wolfSSL 0:d92f9d21154c 710 #if defined(__x86_64__) || defined(__ia64__) || defined(__i386__)
wolfSSL 0:d92f9d21154c 711 #define NO_XSTREAM_ALIGN
wolfSSL 0:d92f9d21154c 712 #else
wolfSSL 0:d92f9d21154c 713 #define XSTREAM_ALIGN
wolfSSL 0:d92f9d21154c 714 #endif
wolfSSL 0:d92f9d21154c 715 #endif
wolfSSL 0:d92f9d21154c 716
wolfSSL 0:d92f9d21154c 717
wolfSSL 0:d92f9d21154c 718 /* FreeScale MMCAU hardware crypto has 4 byte alignment */
wolfSSL 0:d92f9d21154c 719 #ifdef FREESCALE_MMCAU
wolfSSL 0:d92f9d21154c 720 #define WOLFSSL_MMCAU_ALIGNMENT 4
wolfSSL 0:d92f9d21154c 721 #endif
wolfSSL 0:d92f9d21154c 722
wolfSSL 0:d92f9d21154c 723 /* if using hardware crypto and have alignment requirements, specify the
wolfSSL 0:d92f9d21154c 724 requirement here. The record header of SSL/TLS will prvent easy alignment.
wolfSSL 0:d92f9d21154c 725 This hint tries to help as much as possible. */
wolfSSL 0:d92f9d21154c 726 #ifndef WOLFSSL_GENERAL_ALIGNMENT
wolfSSL 0:d92f9d21154c 727 #ifdef WOLFSSL_AESNI
wolfSSL 0:d92f9d21154c 728 #define WOLFSSL_GENERAL_ALIGNMENT 16
wolfSSL 0:d92f9d21154c 729 #elif defined(XSTREAM_ALIGN)
wolfSSL 0:d92f9d21154c 730 #define WOLFSSL_GENERAL_ALIGNMENT 4
wolfSSL 0:d92f9d21154c 731 #elif defined(FREESCALE_MMCAU)
wolfSSL 0:d92f9d21154c 732 #define WOLFSSL_GENERAL_ALIGNMENT WOLFSSL_MMCAU_ALIGNMENT
wolfSSL 0:d92f9d21154c 733 #else
wolfSSL 0:d92f9d21154c 734 #define WOLFSSL_GENERAL_ALIGNMENT 0
wolfSSL 0:d92f9d21154c 735 #endif
wolfSSL 0:d92f9d21154c 736 #endif
wolfSSL 0:d92f9d21154c 737
wolfSSL 0:d92f9d21154c 738 #if defined(WOLFSSL_GENERAL_ALIGNMENT) && (WOLFSSL_GENERAL_ALIGNMENT > 0)
wolfSSL 0:d92f9d21154c 739 #if defined(_MSC_VER)
wolfSSL 0:d92f9d21154c 740 #define XGEN_ALIGN __declspec(align(WOLFSSL_GENERAL_ALIGNMENT))
wolfSSL 0:d92f9d21154c 741 #elif defined(__GNUC__)
wolfSSL 0:d92f9d21154c 742 #define XGEN_ALIGN __attribute__((aligned(WOLFSSL_GENERAL_ALIGNMENT)))
wolfSSL 0:d92f9d21154c 743 #else
wolfSSL 0:d92f9d21154c 744 #define XGEN_ALIGN
wolfSSL 0:d92f9d21154c 745 #endif
wolfSSL 0:d92f9d21154c 746 #else
wolfSSL 0:d92f9d21154c 747 #define XGEN_ALIGN
wolfSSL 0:d92f9d21154c 748 #endif
wolfSSL 0:d92f9d21154c 749
wolfSSL 0:d92f9d21154c 750 #ifdef HAVE_CRL
wolfSSL 0:d92f9d21154c 751 /* not widely supported yet */
wolfSSL 0:d92f9d21154c 752 #undef NO_SKID
wolfSSL 0:d92f9d21154c 753 #define NO_SKID
wolfSSL 0:d92f9d21154c 754 #endif
wolfSSL 0:d92f9d21154c 755
wolfSSL 0:d92f9d21154c 756
wolfSSL 0:d92f9d21154c 757 #ifdef __INTEL_COMPILER
wolfSSL 0:d92f9d21154c 758 #pragma warning(disable:2259) /* explicit casts to smaller sizes, disable */
wolfSSL 0:d92f9d21154c 759 #endif
wolfSSL 0:d92f9d21154c 760
wolfSSL 0:d92f9d21154c 761 /* user can specify what curves they want with ECC_USER_CURVES otherwise
wolfSSL 0:d92f9d21154c 762 * all curves are on by default for now */
wolfSSL 0:d92f9d21154c 763 #ifndef ECC_USER_CURVES
wolfSSL 0:d92f9d21154c 764 #ifndef HAVE_ALL_CURVES
wolfSSL 0:d92f9d21154c 765 #define HAVE_ALL_CURVES
wolfSSL 0:d92f9d21154c 766 #endif
wolfSSL 0:d92f9d21154c 767 #endif
wolfSSL 0:d92f9d21154c 768
wolfSSL 0:d92f9d21154c 769 /* if desktop type system and fastmath increase default max bits */
wolfSSL 0:d92f9d21154c 770 #ifdef WOLFSSL_X86_64_BUILD
wolfSSL 0:d92f9d21154c 771 #ifdef USE_FAST_MATH
wolfSSL 0:d92f9d21154c 772 #ifndef FP_MAX_BITS
wolfSSL 0:d92f9d21154c 773 #define FP_MAX_BITS 8192
wolfSSL 0:d92f9d21154c 774 #endif
wolfSSL 0:d92f9d21154c 775 #endif
wolfSSL 0:d92f9d21154c 776 #endif
wolfSSL 0:d92f9d21154c 777
wolfSSL 0:d92f9d21154c 778 /* If using the max strength build, ensure OLD TLS is disabled. */
wolfSSL 0:d92f9d21154c 779 #ifdef WOLFSSL_MAX_STRENGTH
wolfSSL 0:d92f9d21154c 780 #undef NO_OLD_TLS
wolfSSL 0:d92f9d21154c 781 #define NO_OLD_TLS
wolfSSL 0:d92f9d21154c 782 #endif
wolfSSL 0:d92f9d21154c 783
wolfSSL 0:d92f9d21154c 784 /* Place any other flags or defines here */
wolfSSL 0:d92f9d21154c 785
wolfSSL 0:d92f9d21154c 786
wolfSSL 0:d92f9d21154c 787 #ifdef __cplusplus
wolfSSL 0:d92f9d21154c 788 } /* extern "C" */
wolfSSL 0:d92f9d21154c 789 #endif
wolfSSL 0:d92f9d21154c 790
wolfSSL 0:d92f9d21154c 791 #endif
wolfSSL 0:d92f9d21154c 792