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

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

Committer:
wolfSSL
Date:
Mon Jul 20 08:05:20 2015 +0000
Revision:
1:e27310ce7654
Parent:
0:d92f9d21154c
Child:
2:28278596c2a2
3.6.0 for mbed

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 1:e27310ce7654 212 /* #define NO_FILESYSTEM */
wolfSSL 0:d92f9d21154c 213 #define NO_CERT
wolfSSL 0:d92f9d21154c 214 #define USE_CERT_BUFFERS_1024
wolfSSL 0:d92f9d21154c 215 #define NO_WRITEV
wolfSSL 0:d92f9d21154c 216 #define NO_DEV_RANDOM
wolfSSL 0:d92f9d21154c 217 #define NO_SHA512
wolfSSL 0:d92f9d21154c 218 #define NO_DH
wolfSSL 0:d92f9d21154c 219 #define NO_DSA
wolfSSL 0:d92f9d21154c 220 #define NO_HC128
wolfSSL 0:d92f9d21154c 221 #define HAVE_ECC
wolfSSL 0:d92f9d21154c 222 #define NO_SESSION_CACHE
wolfSSL 0:d92f9d21154c 223 #define WOLFSSL_CMSIS_RTOS
wolfSSL 0:d92f9d21154c 224 #endif
wolfSSL 0:d92f9d21154c 225
wolfSSL 0:d92f9d21154c 226
wolfSSL 0:d92f9d21154c 227 #ifdef WOLFSSL_EROAD
wolfSSL 0:d92f9d21154c 228 #define FREESCALE_MQX
wolfSSL 0:d92f9d21154c 229 #define FREESCALE_MMCAU
wolfSSL 0:d92f9d21154c 230 #define SINGLE_THREADED
wolfSSL 0:d92f9d21154c 231 #define NO_STDIO_FILESYSTEM
wolfSSL 0:d92f9d21154c 232 #define WOLFSSL_LEANPSK
wolfSSL 0:d92f9d21154c 233 #define HAVE_NULL_CIPHER
wolfSSL 0:d92f9d21154c 234 #define NO_OLD_TLS
wolfSSL 0:d92f9d21154c 235 #define NO_ASN
wolfSSL 0:d92f9d21154c 236 #define NO_BIG_INT
wolfSSL 0:d92f9d21154c 237 #define NO_RSA
wolfSSL 0:d92f9d21154c 238 #define NO_DSA
wolfSSL 0:d92f9d21154c 239 #define NO_DH
wolfSSL 0:d92f9d21154c 240 #define NO_CERTS
wolfSSL 0:d92f9d21154c 241 #define NO_PWDBASED
wolfSSL 0:d92f9d21154c 242 #define NO_DES3
wolfSSL 0:d92f9d21154c 243 #define NO_MD4
wolfSSL 0:d92f9d21154c 244 #define NO_RC4
wolfSSL 0:d92f9d21154c 245 #define NO_MD5
wolfSSL 0:d92f9d21154c 246 #define NO_SESSION_CACHE
wolfSSL 0:d92f9d21154c 247 #define NO_MAIN_DRIVER
wolfSSL 0:d92f9d21154c 248 #endif
wolfSSL 0:d92f9d21154c 249
wolfSSL 0:d92f9d21154c 250 #ifdef WOLFSSL_PICOTCP
wolfSSL 0:d92f9d21154c 251 #ifndef errno
wolfSSL 0:d92f9d21154c 252 #define errno pico_err
wolfSSL 0:d92f9d21154c 253 #endif
wolfSSL 0:d92f9d21154c 254 #include "pico_defines.h"
wolfSSL 0:d92f9d21154c 255 #include "pico_stack.h"
wolfSSL 0:d92f9d21154c 256 #include "pico_constants.h"
wolfSSL 0:d92f9d21154c 257 #include "pico_protocol.h"
wolfSSL 0:d92f9d21154c 258 #define CUSTOM_RAND_GENERATE pico_rand
wolfSSL 0:d92f9d21154c 259 #endif
wolfSSL 0:d92f9d21154c 260
wolfSSL 0:d92f9d21154c 261 #ifdef WOLFSSL_PICOTCP_DEMO
wolfSSL 0:d92f9d21154c 262 #define WOLFSSL_STM32
wolfSSL 0:d92f9d21154c 263 #define USE_FAST_MATH
wolfSSL 0:d92f9d21154c 264 #define TFM_TIMING_RESISTANT
wolfSSL 0:d92f9d21154c 265 #define XMALLOC(s, h, type) PICO_ZALLOC((s))
wolfSSL 0:d92f9d21154c 266 #define XFREE(p, h, type) PICO_FREE((p))
wolfSSL 0:d92f9d21154c 267 #define SINGLE_THREADED
wolfSSL 0:d92f9d21154c 268 #define NO_WRITEV
wolfSSL 0:d92f9d21154c 269 #define WOLFSSL_USER_IO
wolfSSL 0:d92f9d21154c 270 #define NO_DEV_RANDOM
wolfSSL 0:d92f9d21154c 271 #define NO_FILESYSTEM
wolfSSL 0:d92f9d21154c 272 #endif
wolfSSL 0:d92f9d21154c 273
wolfSSL 0:d92f9d21154c 274 #ifdef FREERTOS_WINSIM
wolfSSL 0:d92f9d21154c 275 #define FREERTOS
wolfSSL 0:d92f9d21154c 276 #define USE_WINDOWS_API
wolfSSL 0:d92f9d21154c 277 #endif
wolfSSL 0:d92f9d21154c 278
wolfSSL 0:d92f9d21154c 279
wolfSSL 0:d92f9d21154c 280 #ifdef WOLFSSL_VXWORKS
wolfSSL 0:d92f9d21154c 281 #define NO_DEV_RANDOM
wolfSSL 0:d92f9d21154c 282 #define NO_WRITEV
wolfSSL 0:d92f9d21154c 283 #endif
wolfSSL 0:d92f9d21154c 284
wolfSSL 0:d92f9d21154c 285
wolfSSL 0:d92f9d21154c 286 /* Micrium will use Visual Studio for compilation but not the Win32 API */
wolfSSL 0:d92f9d21154c 287 #if defined(_WIN32) && !defined(MICRIUM) && !defined(FREERTOS) \
wolfSSL 0:d92f9d21154c 288 && !defined(EBSNET) && !defined(WOLFSSL_EROAD)
wolfSSL 0:d92f9d21154c 289 #define USE_WINDOWS_API
wolfSSL 0:d92f9d21154c 290 #endif
wolfSSL 0:d92f9d21154c 291
wolfSSL 0:d92f9d21154c 292
wolfSSL 0:d92f9d21154c 293 #if defined(WOLFSSL_LEANPSK) && !defined(XMALLOC_USER)
wolfSSL 0:d92f9d21154c 294 #include <stdlib.h>
wolfSSL 0:d92f9d21154c 295 #define XMALLOC(s, h, type) malloc((s))
wolfSSL 0:d92f9d21154c 296 #define XFREE(p, h, type) free((p))
wolfSSL 0:d92f9d21154c 297 #define XREALLOC(p, n, h, t) realloc((p), (n))
wolfSSL 0:d92f9d21154c 298 #endif
wolfSSL 0:d92f9d21154c 299
wolfSSL 0:d92f9d21154c 300 #if defined(XMALLOC_USER) && defined(SSN_BUILDING_LIBYASSL)
wolfSSL 0:d92f9d21154c 301 #undef XMALLOC
wolfSSL 0:d92f9d21154c 302 #define XMALLOC yaXMALLOC
wolfSSL 0:d92f9d21154c 303 #undef XFREE
wolfSSL 0:d92f9d21154c 304 #define XFREE yaXFREE
wolfSSL 0:d92f9d21154c 305 #undef XREALLOC
wolfSSL 0:d92f9d21154c 306 #define XREALLOC yaXREALLOC
wolfSSL 0:d92f9d21154c 307 #endif
wolfSSL 0:d92f9d21154c 308
wolfSSL 0:d92f9d21154c 309
wolfSSL 0:d92f9d21154c 310 #ifdef FREERTOS
wolfSSL 0:d92f9d21154c 311 #ifndef NO_WRITEV
wolfSSL 0:d92f9d21154c 312 #define NO_WRITEV
wolfSSL 0:d92f9d21154c 313 #endif
wolfSSL 0:d92f9d21154c 314 #ifndef HAVE_SHA512
wolfSSL 0:d92f9d21154c 315 #ifndef NO_SHA512
wolfSSL 0:d92f9d21154c 316 #define NO_SHA512
wolfSSL 0:d92f9d21154c 317 #endif
wolfSSL 0:d92f9d21154c 318 #endif
wolfSSL 0:d92f9d21154c 319 #ifndef HAVE_DH
wolfSSL 0:d92f9d21154c 320 #ifndef NO_DH
wolfSSL 0:d92f9d21154c 321 #define NO_DH
wolfSSL 0:d92f9d21154c 322 #endif
wolfSSL 0:d92f9d21154c 323 #endif
wolfSSL 0:d92f9d21154c 324 #ifndef NO_DSA
wolfSSL 0:d92f9d21154c 325 #define NO_DSA
wolfSSL 0:d92f9d21154c 326 #endif
wolfSSL 0:d92f9d21154c 327 #ifndef NO_HC128
wolfSSL 0:d92f9d21154c 328 #define NO_HC128
wolfSSL 0:d92f9d21154c 329 #endif
wolfSSL 0:d92f9d21154c 330
wolfSSL 0:d92f9d21154c 331 #ifndef SINGLE_THREADED
wolfSSL 0:d92f9d21154c 332 #include "FreeRTOS.h"
wolfSSL 0:d92f9d21154c 333 #include "semphr.h"
wolfSSL 0:d92f9d21154c 334 #endif
wolfSSL 0:d92f9d21154c 335 #endif
wolfSSL 0:d92f9d21154c 336
wolfSSL 0:d92f9d21154c 337 #ifdef WOLFSSL_TIRTOS
wolfSSL 0:d92f9d21154c 338 #define SIZEOF_LONG_LONG 8
wolfSSL 0:d92f9d21154c 339 #define NO_WRITEV
wolfSSL 0:d92f9d21154c 340 #define NO_WOLFSSL_DIR
wolfSSL 0:d92f9d21154c 341 #define USE_FAST_MATH
wolfSSL 0:d92f9d21154c 342 #define TFM_TIMING_RESISTANT
wolfSSL 0:d92f9d21154c 343 #define NO_DEV_RANDOM
wolfSSL 0:d92f9d21154c 344 #define NO_FILESYSTEM
wolfSSL 0:d92f9d21154c 345 #define USE_CERT_BUFFERS_2048
wolfSSL 0:d92f9d21154c 346 #define NO_ERROR_STRINGS
wolfSSL 0:d92f9d21154c 347 #define USER_TIME
wolfSSL 0:d92f9d21154c 348
wolfSSL 0:d92f9d21154c 349 #ifdef __IAR_SYSTEMS_ICC__
wolfSSL 0:d92f9d21154c 350 #pragma diag_suppress=Pa089
wolfSSL 0:d92f9d21154c 351 #elif !defined(__GNUC__)
wolfSSL 0:d92f9d21154c 352 /* Suppress the sslpro warning */
wolfSSL 0:d92f9d21154c 353 #pragma diag_suppress=11
wolfSSL 0:d92f9d21154c 354 #endif
wolfSSL 0:d92f9d21154c 355
wolfSSL 0:d92f9d21154c 356 #include <ti/sysbios/hal/Seconds.h>
wolfSSL 0:d92f9d21154c 357 #endif
wolfSSL 0:d92f9d21154c 358
wolfSSL 0:d92f9d21154c 359 #ifdef EBSNET
wolfSSL 0:d92f9d21154c 360 #include "rtip.h"
wolfSSL 0:d92f9d21154c 361
wolfSSL 0:d92f9d21154c 362 /* #define DEBUG_WOLFSSL */
wolfSSL 0:d92f9d21154c 363 #define NO_WOLFSSL_DIR /* tbd */
wolfSSL 0:d92f9d21154c 364
wolfSSL 0:d92f9d21154c 365 #if (POLLOS)
wolfSSL 0:d92f9d21154c 366 #define SINGLE_THREADED
wolfSSL 0:d92f9d21154c 367 #endif
wolfSSL 0:d92f9d21154c 368
wolfSSL 0:d92f9d21154c 369 #if (RTPLATFORM)
wolfSSL 0:d92f9d21154c 370 #if (!RTP_LITTLE_ENDIAN)
wolfSSL 0:d92f9d21154c 371 #define BIG_ENDIAN_ORDER
wolfSSL 0:d92f9d21154c 372 #endif
wolfSSL 0:d92f9d21154c 373 #else
wolfSSL 0:d92f9d21154c 374 #if (!KS_LITTLE_ENDIAN)
wolfSSL 0:d92f9d21154c 375 #define BIG_ENDIAN_ORDER
wolfSSL 0:d92f9d21154c 376 #endif
wolfSSL 0:d92f9d21154c 377 #endif
wolfSSL 0:d92f9d21154c 378
wolfSSL 0:d92f9d21154c 379 #if (WINMSP3)
wolfSSL 0:d92f9d21154c 380 #undef SIZEOF_LONG
wolfSSL 0:d92f9d21154c 381 #define SIZEOF_LONG_LONG 8
wolfSSL 0:d92f9d21154c 382 #else
wolfSSL 0:d92f9d21154c 383 #sslpro: settings.h - please implement SIZEOF_LONG and SIZEOF_LONG_LONG
wolfSSL 0:d92f9d21154c 384 #endif
wolfSSL 0:d92f9d21154c 385
wolfSSL 0:d92f9d21154c 386 #define XMALLOC(s, h, type) ((void *)rtp_malloc((s), SSL_PRO_MALLOC))
wolfSSL 0:d92f9d21154c 387 #define XFREE(p, h, type) (rtp_free(p))
wolfSSL 0:d92f9d21154c 388 #define XREALLOC(p, n, h, t) realloc((p), (n))
wolfSSL 0:d92f9d21154c 389
wolfSSL 0:d92f9d21154c 390 #endif /* EBSNET */
wolfSSL 0:d92f9d21154c 391
wolfSSL 0:d92f9d21154c 392 #ifdef WOLFSSL_GAME_BUILD
wolfSSL 0:d92f9d21154c 393 #define SIZEOF_LONG_LONG 8
wolfSSL 0:d92f9d21154c 394 #if defined(__PPU) || defined(__XENON)
wolfSSL 0:d92f9d21154c 395 #define BIG_ENDIAN_ORDER
wolfSSL 0:d92f9d21154c 396 #endif
wolfSSL 0:d92f9d21154c 397 #endif
wolfSSL 0:d92f9d21154c 398
wolfSSL 0:d92f9d21154c 399 #ifdef WOLFSSL_LSR
wolfSSL 0:d92f9d21154c 400 #define HAVE_WEBSERVER
wolfSSL 0:d92f9d21154c 401 #define SIZEOF_LONG_LONG 8
wolfSSL 0:d92f9d21154c 402 #define WOLFSSL_LOW_MEMORY
wolfSSL 0:d92f9d21154c 403 #define NO_WRITEV
wolfSSL 0:d92f9d21154c 404 #define NO_SHA512
wolfSSL 0:d92f9d21154c 405 #define NO_DH
wolfSSL 0:d92f9d21154c 406 #define NO_DSA
wolfSSL 0:d92f9d21154c 407 #define NO_HC128
wolfSSL 0:d92f9d21154c 408 #define NO_DEV_RANDOM
wolfSSL 0:d92f9d21154c 409 #define NO_WOLFSSL_DIR
wolfSSL 0:d92f9d21154c 410 #define NO_RABBIT
wolfSSL 0:d92f9d21154c 411 #ifndef NO_FILESYSTEM
wolfSSL 0:d92f9d21154c 412 #define LSR_FS
wolfSSL 0:d92f9d21154c 413 #include "inc/hw_types.h"
wolfSSL 0:d92f9d21154c 414 #include "fs.h"
wolfSSL 0:d92f9d21154c 415 #endif
wolfSSL 0:d92f9d21154c 416 #define WOLFSSL_LWIP
wolfSSL 0:d92f9d21154c 417 #include <errno.h> /* for tcp errno */
wolfSSL 0:d92f9d21154c 418 #define WOLFSSL_SAFERTOS
wolfSSL 0:d92f9d21154c 419 #if defined(__IAR_SYSTEMS_ICC__)
wolfSSL 0:d92f9d21154c 420 /* enum uses enum */
wolfSSL 0:d92f9d21154c 421 #pragma diag_suppress=Pa089
wolfSSL 0:d92f9d21154c 422 #endif
wolfSSL 0:d92f9d21154c 423 #endif
wolfSSL 0:d92f9d21154c 424
wolfSSL 0:d92f9d21154c 425 #ifdef WOLFSSL_SAFERTOS
wolfSSL 0:d92f9d21154c 426 #ifndef SINGLE_THREADED
wolfSSL 0:d92f9d21154c 427 #include "SafeRTOS/semphr.h"
wolfSSL 0:d92f9d21154c 428 #endif
wolfSSL 0:d92f9d21154c 429
wolfSSL 0:d92f9d21154c 430 #include "SafeRTOS/heap.h"
wolfSSL 0:d92f9d21154c 431 #define XMALLOC(s, h, type) pvPortMalloc((s))
wolfSSL 0:d92f9d21154c 432 #define XFREE(p, h, type) vPortFree((p))
wolfSSL 0:d92f9d21154c 433 #define XREALLOC(p, n, h, t) pvPortRealloc((p), (n))
wolfSSL 0:d92f9d21154c 434 #endif
wolfSSL 0:d92f9d21154c 435
wolfSSL 0:d92f9d21154c 436 #ifdef WOLFSSL_LOW_MEMORY
wolfSSL 0:d92f9d21154c 437 #undef RSA_LOW_MEM
wolfSSL 0:d92f9d21154c 438 #define RSA_LOW_MEM
wolfSSL 0:d92f9d21154c 439 #undef WOLFSSL_SMALL_STACK
wolfSSL 0:d92f9d21154c 440 #define WOLFSSL_SMALL_STACK
wolfSSL 0:d92f9d21154c 441 #undef TFM_TIMING_RESISTANT
wolfSSL 0:d92f9d21154c 442 #define TFM_TIMING_RESISTANT
wolfSSL 0:d92f9d21154c 443 #endif
wolfSSL 0:d92f9d21154c 444
wolfSSL 0:d92f9d21154c 445 #ifdef FREESCALE_MQX
wolfSSL 0:d92f9d21154c 446 #define SIZEOF_LONG_LONG 8
wolfSSL 0:d92f9d21154c 447 #define NO_WRITEV
wolfSSL 0:d92f9d21154c 448 #define NO_DEV_RANDOM
wolfSSL 0:d92f9d21154c 449 #define NO_RABBIT
wolfSSL 0:d92f9d21154c 450 #define NO_WOLFSSL_DIR
wolfSSL 0:d92f9d21154c 451 #define USE_FAST_MATH
wolfSSL 0:d92f9d21154c 452 #define TFM_TIMING_RESISTANT
wolfSSL 0:d92f9d21154c 453 #define FREESCALE_K70_RNGA
wolfSSL 0:d92f9d21154c 454 /* #define FREESCALE_K53_RNGB */
wolfSSL 0:d92f9d21154c 455 #include "mqx.h"
wolfSSL 0:d92f9d21154c 456 #ifndef NO_FILESYSTEM
wolfSSL 0:d92f9d21154c 457 #include "mfs.h"
wolfSSL 0:d92f9d21154c 458 #include "fio.h"
wolfSSL 0:d92f9d21154c 459 #endif
wolfSSL 0:d92f9d21154c 460 #ifndef SINGLE_THREADED
wolfSSL 0:d92f9d21154c 461 #include "mutex.h"
wolfSSL 0:d92f9d21154c 462 #endif
wolfSSL 0:d92f9d21154c 463
wolfSSL 0:d92f9d21154c 464 #define XMALLOC(s, h, t) (void *)_mem_alloc_system((s))
wolfSSL 0:d92f9d21154c 465 #define XFREE(p, h, t) {void* xp = (p); if ((xp)) _mem_free((xp));}
wolfSSL 0:d92f9d21154c 466 /* Note: MQX has no realloc, using fastmath above */
wolfSSL 0:d92f9d21154c 467 #endif
wolfSSL 0:d92f9d21154c 468
wolfSSL 0:d92f9d21154c 469 #ifdef WOLFSSL_STM32F2
wolfSSL 0:d92f9d21154c 470 #define SIZEOF_LONG_LONG 8
wolfSSL 0:d92f9d21154c 471 #define NO_DEV_RANDOM
wolfSSL 0:d92f9d21154c 472 #define NO_WOLFSSL_DIR
wolfSSL 0:d92f9d21154c 473 #define NO_RABBIT
wolfSSL 0:d92f9d21154c 474 #define STM32F2_RNG
wolfSSL 0:d92f9d21154c 475 #define STM32F2_CRYPTO
wolfSSL 0:d92f9d21154c 476 #define KEIL_INTRINSICS
wolfSSL 0:d92f9d21154c 477 #endif
wolfSSL 0:d92f9d21154c 478
wolfSSL 0:d92f9d21154c 479 #ifdef MICRIUM
wolfSSL 0:d92f9d21154c 480
wolfSSL 0:d92f9d21154c 481 #include "stdlib.h"
wolfSSL 0:d92f9d21154c 482 #include "net_cfg.h"
wolfSSL 0:d92f9d21154c 483 #include "ssl_cfg.h"
wolfSSL 0:d92f9d21154c 484 #include "net_secure_os.h"
wolfSSL 0:d92f9d21154c 485
wolfSSL 0:d92f9d21154c 486 #define WOLFSSL_TYPES
wolfSSL 0:d92f9d21154c 487
wolfSSL 0:d92f9d21154c 488 typedef CPU_INT08U byte;
wolfSSL 0:d92f9d21154c 489 typedef CPU_INT16U word16;
wolfSSL 0:d92f9d21154c 490 typedef CPU_INT32U word32;
wolfSSL 0:d92f9d21154c 491
wolfSSL 0:d92f9d21154c 492 #if (NET_SECURE_MGR_CFG_WORD_SIZE == CPU_WORD_SIZE_32)
wolfSSL 0:d92f9d21154c 493 #define SIZEOF_LONG 4
wolfSSL 0:d92f9d21154c 494 #undef SIZEOF_LONG_LONG
wolfSSL 0:d92f9d21154c 495 #else
wolfSSL 0:d92f9d21154c 496 #undef SIZEOF_LONG
wolfSSL 0:d92f9d21154c 497 #define SIZEOF_LONG_LONG 8
wolfSSL 0:d92f9d21154c 498 #endif
wolfSSL 0:d92f9d21154c 499
wolfSSL 0:d92f9d21154c 500 #define STRING_USER
wolfSSL 0:d92f9d21154c 501
wolfSSL 0:d92f9d21154c 502 #define XSTRLEN(pstr) ((CPU_SIZE_T)Str_Len((CPU_CHAR *)(pstr)))
wolfSSL 0:d92f9d21154c 503 #define XSTRNCPY(pstr_dest, pstr_src, len_max) \
wolfSSL 0:d92f9d21154c 504 ((CPU_CHAR *)Str_Copy_N((CPU_CHAR *)(pstr_dest), \
wolfSSL 0:d92f9d21154c 505 (CPU_CHAR *)(pstr_src), (CPU_SIZE_T)(len_max)))
wolfSSL 0:d92f9d21154c 506 #define XSTRNCMP(pstr_1, pstr_2, len_max) \
wolfSSL 0:d92f9d21154c 507 ((CPU_INT16S)Str_Cmp_N((CPU_CHAR *)(pstr_1), \
wolfSSL 0:d92f9d21154c 508 (CPU_CHAR *)(pstr_2), (CPU_SIZE_T)(len_max)))
wolfSSL 0:d92f9d21154c 509 #define XSTRSTR(pstr, pstr_srch) \
wolfSSL 0:d92f9d21154c 510 ((CPU_CHAR *)Str_Str((CPU_CHAR *)(pstr), \
wolfSSL 0:d92f9d21154c 511 (CPU_CHAR *)(pstr_srch)))
wolfSSL 0:d92f9d21154c 512 #define XMEMSET(pmem, data_val, size) \
wolfSSL 0:d92f9d21154c 513 ((void)Mem_Set((void *)(pmem), (CPU_INT08U) (data_val), \
wolfSSL 0:d92f9d21154c 514 (CPU_SIZE_T)(size)))
wolfSSL 0:d92f9d21154c 515 #define XMEMCPY(pdest, psrc, size) ((void)Mem_Copy((void *)(pdest), \
wolfSSL 0:d92f9d21154c 516 (void *)(psrc), (CPU_SIZE_T)(size)))
wolfSSL 0:d92f9d21154c 517 #define XMEMCMP(pmem_1, pmem_2, size) \
wolfSSL 0:d92f9d21154c 518 (((CPU_BOOLEAN)Mem_Cmp((void *)(pmem_1), (void *)(pmem_2), \
wolfSSL 0:d92f9d21154c 519 (CPU_SIZE_T)(size))) ? DEF_NO : DEF_YES)
wolfSSL 0:d92f9d21154c 520 #define XMEMMOVE XMEMCPY
wolfSSL 0:d92f9d21154c 521
wolfSSL 0:d92f9d21154c 522 #if (NET_SECURE_MGR_CFG_EN == DEF_ENABLED)
wolfSSL 0:d92f9d21154c 523 #define MICRIUM_MALLOC
wolfSSL 0:d92f9d21154c 524 #define XMALLOC(s, h, type) ((void *)NetSecure_BlkGet((CPU_INT08U)(type), \
wolfSSL 0:d92f9d21154c 525 (CPU_SIZE_T)(s), (void *)0))
wolfSSL 0:d92f9d21154c 526 #define XFREE(p, h, type) (NetSecure_BlkFree((CPU_INT08U)(type), \
wolfSSL 0:d92f9d21154c 527 (p), (void *)0))
wolfSSL 0:d92f9d21154c 528 #define XREALLOC(p, n, h, t) realloc((p), (n))
wolfSSL 0:d92f9d21154c 529 #endif
wolfSSL 0:d92f9d21154c 530
wolfSSL 0:d92f9d21154c 531 #if (NET_SECURE_MGR_CFG_FS_EN == DEF_ENABLED)
wolfSSL 0:d92f9d21154c 532 #undef NO_FILESYSTEM
wolfSSL 0:d92f9d21154c 533 #else
wolfSSL 0:d92f9d21154c 534 #define NO_FILESYSTEM
wolfSSL 0:d92f9d21154c 535 #endif
wolfSSL 0:d92f9d21154c 536
wolfSSL 0:d92f9d21154c 537 #if (SSL_CFG_TRACE_LEVEL == WOLFSSL_TRACE_LEVEL_DBG)
wolfSSL 0:d92f9d21154c 538 #define DEBUG_WOLFSSL
wolfSSL 0:d92f9d21154c 539 #else
wolfSSL 0:d92f9d21154c 540 #undef DEBUG_WOLFSSL
wolfSSL 0:d92f9d21154c 541 #endif
wolfSSL 0:d92f9d21154c 542
wolfSSL 0:d92f9d21154c 543 #if (SSL_CFG_OPENSSL_EN == DEF_ENABLED)
wolfSSL 0:d92f9d21154c 544 #define OPENSSL_EXTRA
wolfSSL 0:d92f9d21154c 545 #else
wolfSSL 0:d92f9d21154c 546 #undef OPENSSL_EXTRA
wolfSSL 0:d92f9d21154c 547 #endif
wolfSSL 0:d92f9d21154c 548
wolfSSL 0:d92f9d21154c 549 #if (SSL_CFG_MULTI_THREAD_EN == DEF_ENABLED)
wolfSSL 0:d92f9d21154c 550 #undef SINGLE_THREADED
wolfSSL 0:d92f9d21154c 551 #else
wolfSSL 0:d92f9d21154c 552 #define SINGLE_THREADED
wolfSSL 0:d92f9d21154c 553 #endif
wolfSSL 0:d92f9d21154c 554
wolfSSL 0:d92f9d21154c 555 #if (SSL_CFG_DH_EN == DEF_ENABLED)
wolfSSL 0:d92f9d21154c 556 #undef NO_DH
wolfSSL 0:d92f9d21154c 557 #else
wolfSSL 0:d92f9d21154c 558 #define NO_DH
wolfSSL 0:d92f9d21154c 559 #endif
wolfSSL 0:d92f9d21154c 560
wolfSSL 0:d92f9d21154c 561 #if (SSL_CFG_DSA_EN == DEF_ENABLED)
wolfSSL 0:d92f9d21154c 562 #undef NO_DSA
wolfSSL 0:d92f9d21154c 563 #else
wolfSSL 0:d92f9d21154c 564 #define NO_DSA
wolfSSL 0:d92f9d21154c 565 #endif
wolfSSL 0:d92f9d21154c 566
wolfSSL 0:d92f9d21154c 567 #if (SSL_CFG_PSK_EN == DEF_ENABLED)
wolfSSL 0:d92f9d21154c 568 #undef NO_PSK
wolfSSL 0:d92f9d21154c 569 #else
wolfSSL 0:d92f9d21154c 570 #define NO_PSK
wolfSSL 0:d92f9d21154c 571 #endif
wolfSSL 0:d92f9d21154c 572
wolfSSL 0:d92f9d21154c 573 #if (SSL_CFG_3DES_EN == DEF_ENABLED)
wolfSSL 0:d92f9d21154c 574 #undef NO_DES
wolfSSL 0:d92f9d21154c 575 #else
wolfSSL 0:d92f9d21154c 576 #define NO_DES
wolfSSL 0:d92f9d21154c 577 #endif
wolfSSL 0:d92f9d21154c 578
wolfSSL 0:d92f9d21154c 579 #if (SSL_CFG_AES_EN == DEF_ENABLED)
wolfSSL 0:d92f9d21154c 580 #undef NO_AES
wolfSSL 0:d92f9d21154c 581 #else
wolfSSL 0:d92f9d21154c 582 #define NO_AES
wolfSSL 0:d92f9d21154c 583 #endif
wolfSSL 0:d92f9d21154c 584
wolfSSL 0:d92f9d21154c 585 #if (SSL_CFG_RC4_EN == DEF_ENABLED)
wolfSSL 0:d92f9d21154c 586 #undef NO_RC4
wolfSSL 0:d92f9d21154c 587 #else
wolfSSL 0:d92f9d21154c 588 #define NO_RC4
wolfSSL 0:d92f9d21154c 589 #endif
wolfSSL 0:d92f9d21154c 590
wolfSSL 0:d92f9d21154c 591 #if (SSL_CFG_RABBIT_EN == DEF_ENABLED)
wolfSSL 0:d92f9d21154c 592 #undef NO_RABBIT
wolfSSL 0:d92f9d21154c 593 #else
wolfSSL 0:d92f9d21154c 594 #define NO_RABBIT
wolfSSL 0:d92f9d21154c 595 #endif
wolfSSL 0:d92f9d21154c 596
wolfSSL 0:d92f9d21154c 597 #if (SSL_CFG_HC128_EN == DEF_ENABLED)
wolfSSL 0:d92f9d21154c 598 #undef NO_HC128
wolfSSL 0:d92f9d21154c 599 #else
wolfSSL 0:d92f9d21154c 600 #define NO_HC128
wolfSSL 0:d92f9d21154c 601 #endif
wolfSSL 0:d92f9d21154c 602
wolfSSL 0:d92f9d21154c 603 #if (CPU_CFG_ENDIAN_TYPE == CPU_ENDIAN_TYPE_BIG)
wolfSSL 0:d92f9d21154c 604 #define BIG_ENDIAN_ORDER
wolfSSL 0:d92f9d21154c 605 #else
wolfSSL 0:d92f9d21154c 606 #undef BIG_ENDIAN_ORDER
wolfSSL 0:d92f9d21154c 607 #define LITTLE_ENDIAN_ORDER
wolfSSL 0:d92f9d21154c 608 #endif
wolfSSL 0:d92f9d21154c 609
wolfSSL 0:d92f9d21154c 610 #if (SSL_CFG_MD4_EN == DEF_ENABLED)
wolfSSL 0:d92f9d21154c 611 #undef NO_MD4
wolfSSL 0:d92f9d21154c 612 #else
wolfSSL 0:d92f9d21154c 613 #define NO_MD4
wolfSSL 0:d92f9d21154c 614 #endif
wolfSSL 0:d92f9d21154c 615
wolfSSL 0:d92f9d21154c 616 #if (SSL_CFG_WRITEV_EN == DEF_ENABLED)
wolfSSL 0:d92f9d21154c 617 #undef NO_WRITEV
wolfSSL 0:d92f9d21154c 618 #else
wolfSSL 0:d92f9d21154c 619 #define NO_WRITEV
wolfSSL 0:d92f9d21154c 620 #endif
wolfSSL 0:d92f9d21154c 621
wolfSSL 0:d92f9d21154c 622 #if (SSL_CFG_USER_RNG_SEED_EN == DEF_ENABLED)
wolfSSL 0:d92f9d21154c 623 #define NO_DEV_RANDOM
wolfSSL 0:d92f9d21154c 624 #else
wolfSSL 0:d92f9d21154c 625 #undef NO_DEV_RANDOM
wolfSSL 0:d92f9d21154c 626 #endif
wolfSSL 0:d92f9d21154c 627
wolfSSL 0:d92f9d21154c 628 #if (SSL_CFG_USER_IO_EN == DEF_ENABLED)
wolfSSL 0:d92f9d21154c 629 #define WOLFSSL_USER_IO
wolfSSL 0:d92f9d21154c 630 #else
wolfSSL 0:d92f9d21154c 631 #undef WOLFSSL_USER_IO
wolfSSL 0:d92f9d21154c 632 #endif
wolfSSL 0:d92f9d21154c 633
wolfSSL 0:d92f9d21154c 634 #if (SSL_CFG_DYNAMIC_BUFFERS_EN == DEF_ENABLED)
wolfSSL 0:d92f9d21154c 635 #undef LARGE_STATIC_BUFFERS
wolfSSL 0:d92f9d21154c 636 #undef STATIC_CHUNKS_ONLY
wolfSSL 0:d92f9d21154c 637 #else
wolfSSL 0:d92f9d21154c 638 #define LARGE_STATIC_BUFFERS
wolfSSL 0:d92f9d21154c 639 #define STATIC_CHUNKS_ONLY
wolfSSL 0:d92f9d21154c 640 #endif
wolfSSL 0:d92f9d21154c 641
wolfSSL 0:d92f9d21154c 642 #if (SSL_CFG_DER_LOAD_EN == DEF_ENABLED)
wolfSSL 0:d92f9d21154c 643 #define WOLFSSL_DER_LOAD
wolfSSL 0:d92f9d21154c 644 #else
wolfSSL 0:d92f9d21154c 645 #undef WOLFSSL_DER_LOAD
wolfSSL 0:d92f9d21154c 646 #endif
wolfSSL 0:d92f9d21154c 647
wolfSSL 0:d92f9d21154c 648 #if (SSL_CFG_DTLS_EN == DEF_ENABLED)
wolfSSL 0:d92f9d21154c 649 #define WOLFSSL_DTLS
wolfSSL 0:d92f9d21154c 650 #else
wolfSSL 0:d92f9d21154c 651 #undef WOLFSSL_DTLS
wolfSSL 0:d92f9d21154c 652 #endif
wolfSSL 0:d92f9d21154c 653
wolfSSL 0:d92f9d21154c 654 #if (SSL_CFG_CALLBACKS_EN == DEF_ENABLED)
wolfSSL 0:d92f9d21154c 655 #define WOLFSSL_CALLBACKS
wolfSSL 0:d92f9d21154c 656 #else
wolfSSL 0:d92f9d21154c 657 #undef WOLFSSL_CALLBACKS
wolfSSL 0:d92f9d21154c 658 #endif
wolfSSL 0:d92f9d21154c 659
wolfSSL 0:d92f9d21154c 660 #if (SSL_CFG_FAST_MATH_EN == DEF_ENABLED)
wolfSSL 0:d92f9d21154c 661 #define USE_FAST_MATH
wolfSSL 0:d92f9d21154c 662 #else
wolfSSL 0:d92f9d21154c 663 #undef USE_FAST_MATH
wolfSSL 0:d92f9d21154c 664 #endif
wolfSSL 0:d92f9d21154c 665
wolfSSL 0:d92f9d21154c 666 #if (SSL_CFG_TFM_TIMING_RESISTANT_EN == DEF_ENABLED)
wolfSSL 0:d92f9d21154c 667 #define TFM_TIMING_RESISTANT
wolfSSL 0:d92f9d21154c 668 #else
wolfSSL 0:d92f9d21154c 669 #undef TFM_TIMING_RESISTANT
wolfSSL 0:d92f9d21154c 670 #endif
wolfSSL 0:d92f9d21154c 671
wolfSSL 0:d92f9d21154c 672 #endif /* MICRIUM */
wolfSSL 0:d92f9d21154c 673
wolfSSL 0:d92f9d21154c 674
wolfSSL 0:d92f9d21154c 675 #ifdef WOLFSSL_QL
wolfSSL 0:d92f9d21154c 676 #ifndef WOLFSSL_SEP
wolfSSL 0:d92f9d21154c 677 #define WOLFSSL_SEP
wolfSSL 0:d92f9d21154c 678 #endif
wolfSSL 0:d92f9d21154c 679 #ifndef OPENSSL_EXTRA
wolfSSL 0:d92f9d21154c 680 #define OPENSSL_EXTRA
wolfSSL 0:d92f9d21154c 681 #endif
wolfSSL 0:d92f9d21154c 682 #ifndef SESSION_CERTS
wolfSSL 0:d92f9d21154c 683 #define SESSION_CERTS
wolfSSL 0:d92f9d21154c 684 #endif
wolfSSL 0:d92f9d21154c 685 #ifndef HAVE_AESCCM
wolfSSL 0:d92f9d21154c 686 #define HAVE_AESCCM
wolfSSL 0:d92f9d21154c 687 #endif
wolfSSL 0:d92f9d21154c 688 #ifndef ATOMIC_USER
wolfSSL 0:d92f9d21154c 689 #define ATOMIC_USER
wolfSSL 0:d92f9d21154c 690 #endif
wolfSSL 0:d92f9d21154c 691 #ifndef WOLFSSL_DER_LOAD
wolfSSL 0:d92f9d21154c 692 #define WOLFSSL_DER_LOAD
wolfSSL 0:d92f9d21154c 693 #endif
wolfSSL 0:d92f9d21154c 694 #ifndef KEEP_PEER_CERT
wolfSSL 0:d92f9d21154c 695 #define KEEP_PEER_CERT
wolfSSL 0:d92f9d21154c 696 #endif
wolfSSL 0:d92f9d21154c 697 #ifndef HAVE_ECC
wolfSSL 0:d92f9d21154c 698 #define HAVE_ECC
wolfSSL 0:d92f9d21154c 699 #endif
wolfSSL 0:d92f9d21154c 700 #ifndef SESSION_INDEX
wolfSSL 0:d92f9d21154c 701 #define SESSION_INDEX
wolfSSL 0:d92f9d21154c 702 #endif
wolfSSL 0:d92f9d21154c 703 #endif /* WOLFSSL_QL */
wolfSSL 0:d92f9d21154c 704
wolfSSL 0:d92f9d21154c 705
wolfSSL 0:d92f9d21154c 706 #if !defined(XMALLOC_USER) && !defined(MICRIUM_MALLOC) && \
wolfSSL 0:d92f9d21154c 707 !defined(WOLFSSL_LEANPSK) && !defined(NO_WOLFSSL_MEMORY)
wolfSSL 0:d92f9d21154c 708 #define USE_WOLFSSL_MEMORY
wolfSSL 0:d92f9d21154c 709 #endif
wolfSSL 0:d92f9d21154c 710
wolfSSL 0:d92f9d21154c 711
wolfSSL 0:d92f9d21154c 712 #if defined(OPENSSL_EXTRA) && !defined(NO_CERTS)
wolfSSL 0:d92f9d21154c 713 #undef KEEP_PEER_CERT
wolfSSL 0:d92f9d21154c 714 #define KEEP_PEER_CERT
wolfSSL 0:d92f9d21154c 715 #endif
wolfSSL 0:d92f9d21154c 716
wolfSSL 0:d92f9d21154c 717
wolfSSL 0:d92f9d21154c 718 /* stream ciphers except arc4 need 32bit alignment, intel ok without */
wolfSSL 0:d92f9d21154c 719 #ifndef XSTREAM_ALIGN
wolfSSL 0:d92f9d21154c 720 #if defined(__x86_64__) || defined(__ia64__) || defined(__i386__)
wolfSSL 0:d92f9d21154c 721 #define NO_XSTREAM_ALIGN
wolfSSL 0:d92f9d21154c 722 #else
wolfSSL 0:d92f9d21154c 723 #define XSTREAM_ALIGN
wolfSSL 0:d92f9d21154c 724 #endif
wolfSSL 0:d92f9d21154c 725 #endif
wolfSSL 0:d92f9d21154c 726
wolfSSL 0:d92f9d21154c 727
wolfSSL 0:d92f9d21154c 728 /* FreeScale MMCAU hardware crypto has 4 byte alignment */
wolfSSL 0:d92f9d21154c 729 #ifdef FREESCALE_MMCAU
wolfSSL 0:d92f9d21154c 730 #define WOLFSSL_MMCAU_ALIGNMENT 4
wolfSSL 0:d92f9d21154c 731 #endif
wolfSSL 0:d92f9d21154c 732
wolfSSL 0:d92f9d21154c 733 /* if using hardware crypto and have alignment requirements, specify the
wolfSSL 0:d92f9d21154c 734 requirement here. The record header of SSL/TLS will prvent easy alignment.
wolfSSL 0:d92f9d21154c 735 This hint tries to help as much as possible. */
wolfSSL 0:d92f9d21154c 736 #ifndef WOLFSSL_GENERAL_ALIGNMENT
wolfSSL 0:d92f9d21154c 737 #ifdef WOLFSSL_AESNI
wolfSSL 0:d92f9d21154c 738 #define WOLFSSL_GENERAL_ALIGNMENT 16
wolfSSL 0:d92f9d21154c 739 #elif defined(XSTREAM_ALIGN)
wolfSSL 0:d92f9d21154c 740 #define WOLFSSL_GENERAL_ALIGNMENT 4
wolfSSL 0:d92f9d21154c 741 #elif defined(FREESCALE_MMCAU)
wolfSSL 0:d92f9d21154c 742 #define WOLFSSL_GENERAL_ALIGNMENT WOLFSSL_MMCAU_ALIGNMENT
wolfSSL 0:d92f9d21154c 743 #else
wolfSSL 0:d92f9d21154c 744 #define WOLFSSL_GENERAL_ALIGNMENT 0
wolfSSL 0:d92f9d21154c 745 #endif
wolfSSL 0:d92f9d21154c 746 #endif
wolfSSL 0:d92f9d21154c 747
wolfSSL 0:d92f9d21154c 748 #if defined(WOLFSSL_GENERAL_ALIGNMENT) && (WOLFSSL_GENERAL_ALIGNMENT > 0)
wolfSSL 0:d92f9d21154c 749 #if defined(_MSC_VER)
wolfSSL 0:d92f9d21154c 750 #define XGEN_ALIGN __declspec(align(WOLFSSL_GENERAL_ALIGNMENT))
wolfSSL 0:d92f9d21154c 751 #elif defined(__GNUC__)
wolfSSL 0:d92f9d21154c 752 #define XGEN_ALIGN __attribute__((aligned(WOLFSSL_GENERAL_ALIGNMENT)))
wolfSSL 0:d92f9d21154c 753 #else
wolfSSL 0:d92f9d21154c 754 #define XGEN_ALIGN
wolfSSL 0:d92f9d21154c 755 #endif
wolfSSL 0:d92f9d21154c 756 #else
wolfSSL 0:d92f9d21154c 757 #define XGEN_ALIGN
wolfSSL 0:d92f9d21154c 758 #endif
wolfSSL 0:d92f9d21154c 759
wolfSSL 0:d92f9d21154c 760 #ifdef HAVE_CRL
wolfSSL 0:d92f9d21154c 761 /* not widely supported yet */
wolfSSL 0:d92f9d21154c 762 #undef NO_SKID
wolfSSL 0:d92f9d21154c 763 #define NO_SKID
wolfSSL 0:d92f9d21154c 764 #endif
wolfSSL 0:d92f9d21154c 765
wolfSSL 0:d92f9d21154c 766
wolfSSL 0:d92f9d21154c 767 #ifdef __INTEL_COMPILER
wolfSSL 0:d92f9d21154c 768 #pragma warning(disable:2259) /* explicit casts to smaller sizes, disable */
wolfSSL 0:d92f9d21154c 769 #endif
wolfSSL 0:d92f9d21154c 770
wolfSSL 0:d92f9d21154c 771 /* user can specify what curves they want with ECC_USER_CURVES otherwise
wolfSSL 0:d92f9d21154c 772 * all curves are on by default for now */
wolfSSL 0:d92f9d21154c 773 #ifndef ECC_USER_CURVES
wolfSSL 0:d92f9d21154c 774 #ifndef HAVE_ALL_CURVES
wolfSSL 0:d92f9d21154c 775 #define HAVE_ALL_CURVES
wolfSSL 0:d92f9d21154c 776 #endif
wolfSSL 0:d92f9d21154c 777 #endif
wolfSSL 0:d92f9d21154c 778
wolfSSL 0:d92f9d21154c 779 /* if desktop type system and fastmath increase default max bits */
wolfSSL 0:d92f9d21154c 780 #ifdef WOLFSSL_X86_64_BUILD
wolfSSL 0:d92f9d21154c 781 #ifdef USE_FAST_MATH
wolfSSL 0:d92f9d21154c 782 #ifndef FP_MAX_BITS
wolfSSL 0:d92f9d21154c 783 #define FP_MAX_BITS 8192
wolfSSL 0:d92f9d21154c 784 #endif
wolfSSL 0:d92f9d21154c 785 #endif
wolfSSL 0:d92f9d21154c 786 #endif
wolfSSL 0:d92f9d21154c 787
wolfSSL 0:d92f9d21154c 788 /* If using the max strength build, ensure OLD TLS is disabled. */
wolfSSL 0:d92f9d21154c 789 #ifdef WOLFSSL_MAX_STRENGTH
wolfSSL 0:d92f9d21154c 790 #undef NO_OLD_TLS
wolfSSL 0:d92f9d21154c 791 #define NO_OLD_TLS
wolfSSL 0:d92f9d21154c 792 #endif
wolfSSL 0:d92f9d21154c 793
wolfSSL 0:d92f9d21154c 794 /* Place any other flags or defines here */
wolfSSL 0:d92f9d21154c 795
wolfSSL 0:d92f9d21154c 796
wolfSSL 0:d92f9d21154c 797 #ifdef __cplusplus
wolfSSL 0:d92f9d21154c 798 } /* extern "C" */
wolfSSL 0:d92f9d21154c 799 #endif
wolfSSL 0:d92f9d21154c 800
wolfSSL 0:d92f9d21154c 801 #endif
wolfSSL 0:d92f9d21154c 802