Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
wolfssl/wolfcrypt/settings.h@12:1a06964c2adb, 2017-08-22 (annotated)
- Committer:
- wolfSSL
- Date:
- Tue Aug 22 10:47:28 2017 +0000
- Revision:
- 12:1a06964c2adb
- Parent:
- 10:6c2db0c97d5a
- Child:
- 14:167253f4e170
wolfSSL 3.12.0
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
wolfSSL | 9:52ec7c02b1e1 | 1 | /* settings.h |
wolfSSL | 9:52ec7c02b1e1 | 2 | * |
wolfSSL | 9:52ec7c02b1e1 | 3 | * Copyright (C) 2006-2016 wolfSSL Inc. |
wolfSSL | 9:52ec7c02b1e1 | 4 | * |
wolfSSL | 9:52ec7c02b1e1 | 5 | * This file is part of wolfSSL. |
wolfSSL | 9:52ec7c02b1e1 | 6 | * |
wolfSSL | 9:52ec7c02b1e1 | 7 | * wolfSSL is free software; you can redistribute it and/or modify |
wolfSSL | 9:52ec7c02b1e1 | 8 | * it under the terms of the GNU General Public License as published by |
wolfSSL | 9:52ec7c02b1e1 | 9 | * the Free Software Foundation; either version 2 of the License, or |
wolfSSL | 9:52ec7c02b1e1 | 10 | * (at your option) any later version. |
wolfSSL | 9:52ec7c02b1e1 | 11 | * |
wolfSSL | 9:52ec7c02b1e1 | 12 | * wolfSSL is distributed in the hope that it will be useful, |
wolfSSL | 9:52ec7c02b1e1 | 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
wolfSSL | 9:52ec7c02b1e1 | 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
wolfSSL | 9:52ec7c02b1e1 | 15 | * GNU General Public License for more details. |
wolfSSL | 9:52ec7c02b1e1 | 16 | * |
wolfSSL | 9:52ec7c02b1e1 | 17 | * You should have received a copy of the GNU General Public License |
wolfSSL | 9:52ec7c02b1e1 | 18 | * along with this program; if not, write to the Free Software |
wolfSSL | 9:52ec7c02b1e1 | 19 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA |
wolfSSL | 9:52ec7c02b1e1 | 20 | */ |
wolfSSL | 9:52ec7c02b1e1 | 21 | |
wolfSSL | 9:52ec7c02b1e1 | 22 | |
wolfSSL | 9:52ec7c02b1e1 | 23 | /* Place OS specific preprocessor flags, defines, includes here, will be |
wolfSSL | 9:52ec7c02b1e1 | 24 | included into every file because types.h includes it */ |
wolfSSL | 9:52ec7c02b1e1 | 25 | |
wolfSSL | 9:52ec7c02b1e1 | 26 | |
wolfSSL | 9:52ec7c02b1e1 | 27 | #ifndef WOLF_CRYPT_SETTINGS_H |
wolfSSL | 9:52ec7c02b1e1 | 28 | #define WOLF_CRYPT_SETTINGS_H |
wolfSSL | 9:52ec7c02b1e1 | 29 | |
wolfSSL | 9:52ec7c02b1e1 | 30 | #ifdef __cplusplus |
wolfSSL | 9:52ec7c02b1e1 | 31 | extern "C" { |
wolfSSL | 9:52ec7c02b1e1 | 32 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 33 | |
wolfSSL | 9:52ec7c02b1e1 | 34 | /* Uncomment next line if using IPHONE */ |
wolfSSL | 9:52ec7c02b1e1 | 35 | /* #define IPHONE */ |
wolfSSL | 9:52ec7c02b1e1 | 36 | |
wolfSSL | 9:52ec7c02b1e1 | 37 | /* Uncomment next line if using ThreadX */ |
wolfSSL | 9:52ec7c02b1e1 | 38 | /* #define THREADX */ |
wolfSSL | 9:52ec7c02b1e1 | 39 | |
wolfSSL | 9:52ec7c02b1e1 | 40 | /* Uncomment next line if using Micrium ucOS */ |
wolfSSL | 9:52ec7c02b1e1 | 41 | /* #define MICRIUM */ |
wolfSSL | 9:52ec7c02b1e1 | 42 | |
wolfSSL | 9:52ec7c02b1e1 | 43 | /* Uncomment next line if using Mbed */ |
wolfSSL | 9:52ec7c02b1e1 | 44 | /* #define MBED */ |
wolfSSL | 9:52ec7c02b1e1 | 45 | |
wolfSSL | 9:52ec7c02b1e1 | 46 | /* Uncomment next line if using Microchip PIC32 ethernet starter kit */ |
wolfSSL | 9:52ec7c02b1e1 | 47 | /* #define MICROCHIP_PIC32 */ |
wolfSSL | 9:52ec7c02b1e1 | 48 | |
wolfSSL | 9:52ec7c02b1e1 | 49 | /* Uncomment next line if using Microchip TCP/IP stack, version 5 */ |
wolfSSL | 9:52ec7c02b1e1 | 50 | /* #define MICROCHIP_TCPIP_V5 */ |
wolfSSL | 9:52ec7c02b1e1 | 51 | |
wolfSSL | 9:52ec7c02b1e1 | 52 | /* Uncomment next line if using Microchip TCP/IP stack, version 6 or later */ |
wolfSSL | 9:52ec7c02b1e1 | 53 | /* #define MICROCHIP_TCPIP */ |
wolfSSL | 9:52ec7c02b1e1 | 54 | |
wolfSSL | 9:52ec7c02b1e1 | 55 | /* Uncomment next line if using PIC32MZ Crypto Engine */ |
wolfSSL | 9:52ec7c02b1e1 | 56 | /* #define WOLFSSL_MICROCHIP_PIC32MZ */ |
wolfSSL | 9:52ec7c02b1e1 | 57 | |
wolfSSL | 9:52ec7c02b1e1 | 58 | /* Uncomment next line if using FreeRTOS */ |
wolfSSL | 9:52ec7c02b1e1 | 59 | /* #define FREERTOS */ |
wolfSSL | 9:52ec7c02b1e1 | 60 | |
wolfSSL | 9:52ec7c02b1e1 | 61 | /* Uncomment next line if using FreeRTOS+ TCP */ |
wolfSSL | 9:52ec7c02b1e1 | 62 | /* #define FREERTOS_TCP */ |
wolfSSL | 9:52ec7c02b1e1 | 63 | |
wolfSSL | 9:52ec7c02b1e1 | 64 | /* Uncomment next line if using FreeRTOS Windows Simulator */ |
wolfSSL | 9:52ec7c02b1e1 | 65 | /* #define FREERTOS_WINSIM */ |
wolfSSL | 9:52ec7c02b1e1 | 66 | |
wolfSSL | 9:52ec7c02b1e1 | 67 | /* Uncomment next line if using RTIP */ |
wolfSSL | 9:52ec7c02b1e1 | 68 | /* #define EBSNET */ |
wolfSSL | 9:52ec7c02b1e1 | 69 | |
wolfSSL | 9:52ec7c02b1e1 | 70 | /* Uncomment next line if using lwip */ |
wolfSSL | 9:52ec7c02b1e1 | 71 | /* #define WOLFSSL_LWIP */ |
wolfSSL | 9:52ec7c02b1e1 | 72 | |
wolfSSL | 9:52ec7c02b1e1 | 73 | /* Uncomment next line if building wolfSSL for a game console */ |
wolfSSL | 9:52ec7c02b1e1 | 74 | /* #define WOLFSSL_GAME_BUILD */ |
wolfSSL | 9:52ec7c02b1e1 | 75 | |
wolfSSL | 9:52ec7c02b1e1 | 76 | /* Uncomment next line if building wolfSSL for LSR */ |
wolfSSL | 9:52ec7c02b1e1 | 77 | /* #define WOLFSSL_LSR */ |
wolfSSL | 9:52ec7c02b1e1 | 78 | |
wolfSSL | 9:52ec7c02b1e1 | 79 | /* Uncomment next line if building for Freescale Classic MQX/RTCS/MFS */ |
wolfSSL | 9:52ec7c02b1e1 | 80 | /* #define FREESCALE_MQX */ |
wolfSSL | 9:52ec7c02b1e1 | 81 | |
wolfSSL | 9:52ec7c02b1e1 | 82 | /* Uncomment next line if building for Freescale KSDK MQX/RTCS/MFS */ |
wolfSSL | 9:52ec7c02b1e1 | 83 | /* #define FREESCALE_KSDK_MQX */ |
wolfSSL | 9:52ec7c02b1e1 | 84 | |
wolfSSL | 9:52ec7c02b1e1 | 85 | /* Uncomment next line if building for Freescale KSDK Bare Metal */ |
wolfSSL | 9:52ec7c02b1e1 | 86 | /* #define FREESCALE_KSDK_BM */ |
wolfSSL | 9:52ec7c02b1e1 | 87 | |
wolfSSL | 9:52ec7c02b1e1 | 88 | /* Uncomment next line if building for Freescale KSDK FreeRTOS (old name FREESCALE_FREE_RTOS) */ |
wolfSSL | 9:52ec7c02b1e1 | 89 | /* #define FREESCALE_KSDK_FREERTOS */ |
wolfSSL | 9:52ec7c02b1e1 | 90 | |
wolfSSL | 9:52ec7c02b1e1 | 91 | /* Uncomment next line if using STM32F2 */ |
wolfSSL | 9:52ec7c02b1e1 | 92 | /* #define WOLFSSL_STM32F2 */ |
wolfSSL | 9:52ec7c02b1e1 | 93 | |
wolfSSL | 9:52ec7c02b1e1 | 94 | /* Uncomment next line if using QL SEP settings */ |
wolfSSL | 9:52ec7c02b1e1 | 95 | /* #define WOLFSSL_QL */ |
wolfSSL | 9:52ec7c02b1e1 | 96 | |
wolfSSL | 9:52ec7c02b1e1 | 97 | /* Uncomment next line if building for EROAD */ |
wolfSSL | 9:52ec7c02b1e1 | 98 | /* #define WOLFSSL_EROAD */ |
wolfSSL | 9:52ec7c02b1e1 | 99 | |
wolfSSL | 9:52ec7c02b1e1 | 100 | /* Uncomment next line if building for IAR EWARM */ |
wolfSSL | 9:52ec7c02b1e1 | 101 | /* #define WOLFSSL_IAR_ARM */ |
wolfSSL | 9:52ec7c02b1e1 | 102 | |
wolfSSL | 9:52ec7c02b1e1 | 103 | /* Uncomment next line if building for Rowley CrossWorks ARM */ |
wolfSSL | 9:52ec7c02b1e1 | 104 | /* #define WOLFSSL_ROWLEY_ARM */ |
wolfSSL | 9:52ec7c02b1e1 | 105 | |
wolfSSL | 9:52ec7c02b1e1 | 106 | /* Uncomment next line if using TI-RTOS settings */ |
wolfSSL | 9:52ec7c02b1e1 | 107 | /* #define WOLFSSL_TIRTOS */ |
wolfSSL | 9:52ec7c02b1e1 | 108 | |
wolfSSL | 9:52ec7c02b1e1 | 109 | /* Uncomment next line if building with PicoTCP */ |
wolfSSL | 9:52ec7c02b1e1 | 110 | /* #define WOLFSSL_PICOTCP */ |
wolfSSL | 9:52ec7c02b1e1 | 111 | |
wolfSSL | 9:52ec7c02b1e1 | 112 | /* Uncomment next line if building for PicoTCP demo bundle */ |
wolfSSL | 9:52ec7c02b1e1 | 113 | /* #define WOLFSSL_PICOTCP_DEMO */ |
wolfSSL | 9:52ec7c02b1e1 | 114 | |
wolfSSL | 9:52ec7c02b1e1 | 115 | /* Uncomment next line if building for uITRON4 */ |
wolfSSL | 9:52ec7c02b1e1 | 116 | /* #define WOLFSSL_uITRON4 */ |
wolfSSL | 9:52ec7c02b1e1 | 117 | |
wolfSSL | 9:52ec7c02b1e1 | 118 | /* Uncomment next line if building for uT-Kernel */ |
wolfSSL | 9:52ec7c02b1e1 | 119 | /* #define WOLFSSL_uTKERNEL2 */ |
wolfSSL | 9:52ec7c02b1e1 | 120 | |
wolfSSL | 9:52ec7c02b1e1 | 121 | /* Uncomment next line if using Max Strength build */ |
wolfSSL | 9:52ec7c02b1e1 | 122 | /* #define WOLFSSL_MAX_STRENGTH */ |
wolfSSL | 9:52ec7c02b1e1 | 123 | |
wolfSSL | 9:52ec7c02b1e1 | 124 | /* Uncomment next line if building for VxWorks */ |
wolfSSL | 9:52ec7c02b1e1 | 125 | /* #define WOLFSSL_VXWORKS */ |
wolfSSL | 9:52ec7c02b1e1 | 126 | |
wolfSSL | 9:52ec7c02b1e1 | 127 | /* Uncomment next line if building for Nordic nRF5x platofrm */ |
wolfSSL | 9:52ec7c02b1e1 | 128 | /* #define WOLFSSL_NRF5x */ |
wolfSSL | 9:52ec7c02b1e1 | 129 | |
wolfSSL | 9:52ec7c02b1e1 | 130 | /* Uncomment next line to enable deprecated less secure static DH suites */ |
wolfSSL | 9:52ec7c02b1e1 | 131 | /* #define WOLFSSL_STATIC_DH */ |
wolfSSL | 9:52ec7c02b1e1 | 132 | |
wolfSSL | 9:52ec7c02b1e1 | 133 | /* Uncomment next line to enable deprecated less secure static RSA suites */ |
wolfSSL | 9:52ec7c02b1e1 | 134 | /* #define WOLFSSL_STATIC_RSA */ |
wolfSSL | 9:52ec7c02b1e1 | 135 | |
wolfSSL | 9:52ec7c02b1e1 | 136 | /* Uncomment next line if building for ARDUINO */ |
wolfSSL | 9:52ec7c02b1e1 | 137 | /* Uncomment both lines if building for ARDUINO on INTEL_GALILEO */ |
wolfSSL | 9:52ec7c02b1e1 | 138 | /* #define WOLFSSL_ARDUINO */ |
wolfSSL | 9:52ec7c02b1e1 | 139 | /* #define INTEL_GALILEO */ |
wolfSSL | 9:52ec7c02b1e1 | 140 | |
wolfSSL | 9:52ec7c02b1e1 | 141 | /* Uncomment next line to enable asynchronous crypto WC_PENDING_E */ |
wolfSSL | 9:52ec7c02b1e1 | 142 | /* #define WOLFSSL_ASYNC_CRYPT */ |
wolfSSL | 9:52ec7c02b1e1 | 143 | |
wolfSSL | 9:52ec7c02b1e1 | 144 | /* Uncomment next line if building for uTasker */ |
wolfSSL | 9:52ec7c02b1e1 | 145 | /* #define WOLFSSL_UTASKER */ |
wolfSSL | 9:52ec7c02b1e1 | 146 | |
wolfSSL | 9:52ec7c02b1e1 | 147 | /* Uncomment next line if building for embOS */ |
wolfSSL | 9:52ec7c02b1e1 | 148 | /* #define WOLFSSL_EMBOS */ |
wolfSSL | 9:52ec7c02b1e1 | 149 | |
wolfSSL | 9:52ec7c02b1e1 | 150 | /* Uncomment next line if building for RIOT-OS */ |
wolfSSL | 9:52ec7c02b1e1 | 151 | /* #define WOLFSSL_RIOT_OS */ |
wolfSSL | 9:52ec7c02b1e1 | 152 | |
wolfSSL | 12:1a06964c2adb | 153 | /* Uncomment next line if building for using XILINX hardened crypto */ |
wolfSSL | 12:1a06964c2adb | 154 | /* #define WOLFSSL_XILINX_CRYPT */ |
wolfSSL | 12:1a06964c2adb | 155 | |
wolfSSL | 12:1a06964c2adb | 156 | /* Uncomment next line if building for using XILINX */ |
wolfSSL | 12:1a06964c2adb | 157 | /* #define WOLFSSL_XILINX */ |
wolfSSL | 12:1a06964c2adb | 158 | |
wolfSSL | 9:52ec7c02b1e1 | 159 | #include <wolfssl/wolfcrypt/visibility.h> |
wolfSSL | 9:52ec7c02b1e1 | 160 | #define WOLFSSL_USER_SETTINGS |
wolfSSL | 9:52ec7c02b1e1 | 161 | #ifdef WOLFSSL_USER_SETTINGS |
wolfSSL | 12:1a06964c2adb | 162 | #include "user_settings.h" |
wolfSSL | 9:52ec7c02b1e1 | 163 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 164 | |
wolfSSL | 9:52ec7c02b1e1 | 165 | |
wolfSSL | 9:52ec7c02b1e1 | 166 | /* make sure old RNG name is used with CTaoCrypt FIPS */ |
wolfSSL | 9:52ec7c02b1e1 | 167 | #ifdef HAVE_FIPS |
wolfSSL | 9:52ec7c02b1e1 | 168 | #define WC_RNG RNG |
wolfSSL | 9:52ec7c02b1e1 | 169 | /* blinding adds API not available yet in FIPS mode */ |
wolfSSL | 9:52ec7c02b1e1 | 170 | #undef WC_RSA_BLINDING |
wolfSSL | 9:52ec7c02b1e1 | 171 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 172 | |
wolfSSL | 9:52ec7c02b1e1 | 173 | |
wolfSSL | 9:52ec7c02b1e1 | 174 | #ifdef IPHONE |
wolfSSL | 9:52ec7c02b1e1 | 175 | #define SIZEOF_LONG_LONG 8 |
wolfSSL | 9:52ec7c02b1e1 | 176 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 177 | |
wolfSSL | 9:52ec7c02b1e1 | 178 | #ifdef THREADX |
wolfSSL | 9:52ec7c02b1e1 | 179 | #define SIZEOF_LONG_LONG 8 |
wolfSSL | 9:52ec7c02b1e1 | 180 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 181 | |
wolfSSL | 9:52ec7c02b1e1 | 182 | #ifdef HAVE_NETX |
wolfSSL | 12:1a06964c2adb | 183 | #ifdef NEED_THREADX_TYPES |
wolfSSL | 12:1a06964c2adb | 184 | #include <types.h> |
wolfSSL | 12:1a06964c2adb | 185 | #endif |
wolfSSL | 12:1a06964c2adb | 186 | #include <nx_api.h> |
wolfSSL | 9:52ec7c02b1e1 | 187 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 188 | |
wolfSSL | 9:52ec7c02b1e1 | 189 | #if defined(HAVE_LWIP_NATIVE) /* using LwIP native TCP socket */ |
wolfSSL | 9:52ec7c02b1e1 | 190 | #define WOLFSSL_LWIP |
wolfSSL | 9:52ec7c02b1e1 | 191 | #define NO_WRITEV |
wolfSSL | 9:52ec7c02b1e1 | 192 | #define SINGLE_THREADED |
wolfSSL | 9:52ec7c02b1e1 | 193 | #define WOLFSSL_USER_IO |
wolfSSL | 9:52ec7c02b1e1 | 194 | #define NO_FILESYSTEM |
wolfSSL | 9:52ec7c02b1e1 | 195 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 196 | |
wolfSSL | 9:52ec7c02b1e1 | 197 | #if defined(WOLFSSL_IAR_ARM) || defined(WOLFSSL_ROWLEY_ARM) |
wolfSSL | 9:52ec7c02b1e1 | 198 | #define NO_MAIN_DRIVER |
wolfSSL | 9:52ec7c02b1e1 | 199 | #define SINGLE_THREADED |
wolfSSL | 9:52ec7c02b1e1 | 200 | #if !defined(USE_CERT_BUFFERS_2048) && !defined(USE_CERT_BUFFERS_4096) |
wolfSSL | 9:52ec7c02b1e1 | 201 | #define USE_CERT_BUFFERS_1024 |
wolfSSL | 9:52ec7c02b1e1 | 202 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 203 | #define BENCH_EMBEDDED |
wolfSSL | 9:52ec7c02b1e1 | 204 | #define NO_FILESYSTEM |
wolfSSL | 9:52ec7c02b1e1 | 205 | #define NO_WRITEV |
wolfSSL | 9:52ec7c02b1e1 | 206 | #define WOLFSSL_USER_IO |
wolfSSL | 9:52ec7c02b1e1 | 207 | #define BENCH_EMBEDDED |
wolfSSL | 9:52ec7c02b1e1 | 208 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 209 | |
wolfSSL | 9:52ec7c02b1e1 | 210 | #ifdef MICROCHIP_PIC32 |
wolfSSL | 9:52ec7c02b1e1 | 211 | /* #define WOLFSSL_MICROCHIP_PIC32MZ */ |
wolfSSL | 9:52ec7c02b1e1 | 212 | #define SIZEOF_LONG_LONG 8 |
wolfSSL | 9:52ec7c02b1e1 | 213 | #define SINGLE_THREADED |
wolfSSL | 9:52ec7c02b1e1 | 214 | #define WOLFSSL_USER_IO |
wolfSSL | 9:52ec7c02b1e1 | 215 | #define NO_WRITEV |
wolfSSL | 9:52ec7c02b1e1 | 216 | #define NO_DEV_RANDOM |
wolfSSL | 9:52ec7c02b1e1 | 217 | #define NO_FILESYSTEM |
wolfSSL | 9:52ec7c02b1e1 | 218 | #define USE_FAST_MATH |
wolfSSL | 9:52ec7c02b1e1 | 219 | #define TFM_TIMING_RESISTANT |
wolfSSL | 9:52ec7c02b1e1 | 220 | #define WOLFSSL_HAVE_MIN |
wolfSSL | 12:1a06964c2adb | 221 | #define WOLFSSL_HAVE_MAX |
wolfSSL | 12:1a06964c2adb | 222 | #define NO_BIG_INT |
wolfSSL | 9:52ec7c02b1e1 | 223 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 224 | |
wolfSSL | 9:52ec7c02b1e1 | 225 | #ifdef WOLFSSL_MICROCHIP_PIC32MZ |
wolfSSL | 9:52ec7c02b1e1 | 226 | #define WOLFSSL_PIC32MZ_CRYPT |
wolfSSL | 9:52ec7c02b1e1 | 227 | #define WOLFSSL_PIC32MZ_RNG |
wolfSSL | 12:1a06964c2adb | 228 | #define WOLFSSL_PIC32MZ_HASH |
wolfSSL | 9:52ec7c02b1e1 | 229 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 230 | |
wolfSSL | 9:52ec7c02b1e1 | 231 | #ifdef MICROCHIP_TCPIP_V5 |
wolfSSL | 9:52ec7c02b1e1 | 232 | /* include timer functions */ |
wolfSSL | 9:52ec7c02b1e1 | 233 | #include "TCPIP Stack/TCPIP.h" |
wolfSSL | 9:52ec7c02b1e1 | 234 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 235 | |
wolfSSL | 9:52ec7c02b1e1 | 236 | #ifdef MICROCHIP_TCPIP |
wolfSSL | 9:52ec7c02b1e1 | 237 | /* include timer, NTP functions */ |
wolfSSL | 9:52ec7c02b1e1 | 238 | #ifdef MICROCHIP_MPLAB_HARMONY |
wolfSSL | 9:52ec7c02b1e1 | 239 | #include "tcpip/tcpip.h" |
wolfSSL | 9:52ec7c02b1e1 | 240 | #else |
wolfSSL | 9:52ec7c02b1e1 | 241 | #include "system/system_services.h" |
wolfSSL | 9:52ec7c02b1e1 | 242 | #include "tcpip/sntp.h" |
wolfSSL | 9:52ec7c02b1e1 | 243 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 244 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 245 | |
wolfSSL | 9:52ec7c02b1e1 | 246 | #ifdef MBED |
wolfSSL | 9:52ec7c02b1e1 | 247 | #define WOLFSSL_USER_IO |
wolfSSL | 9:52ec7c02b1e1 | 248 | #define NO_FILESYSTEM |
wolfSSL | 9:52ec7c02b1e1 | 249 | #define NO_CERT |
wolfSSL | 9:52ec7c02b1e1 | 250 | #if !defined(USE_CERT_BUFFERS_2048) && !defined(USE_CERT_BUFFERS_4096) |
wolfSSL | 9:52ec7c02b1e1 | 251 | #define USE_CERT_BUFFERS_1024 |
wolfSSL | 9:52ec7c02b1e1 | 252 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 253 | #define NO_WRITEV |
wolfSSL | 9:52ec7c02b1e1 | 254 | #define NO_DEV_RANDOM |
wolfSSL | 9:52ec7c02b1e1 | 255 | #define NO_SHA512 |
wolfSSL | 9:52ec7c02b1e1 | 256 | #define NO_DH |
wolfSSL | 9:52ec7c02b1e1 | 257 | /* Allows use of DH with fixed points if uncommented and NO_DH is removed */ |
wolfSSL | 9:52ec7c02b1e1 | 258 | /* WOLFSSL_DH_CONST */ |
wolfSSL | 9:52ec7c02b1e1 | 259 | #define NO_DSA |
wolfSSL | 9:52ec7c02b1e1 | 260 | #define NO_HC128 |
wolfSSL | 9:52ec7c02b1e1 | 261 | #define HAVE_ECC |
wolfSSL | 9:52ec7c02b1e1 | 262 | #define NO_SESSION_CACHE |
wolfSSL | 9:52ec7c02b1e1 | 263 | #define WOLFSSL_CMSIS_RTOS |
wolfSSL | 9:52ec7c02b1e1 | 264 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 265 | |
wolfSSL | 9:52ec7c02b1e1 | 266 | |
wolfSSL | 9:52ec7c02b1e1 | 267 | #ifdef WOLFSSL_EROAD |
wolfSSL | 9:52ec7c02b1e1 | 268 | #define FREESCALE_MQX |
wolfSSL | 9:52ec7c02b1e1 | 269 | #define FREESCALE_MMCAU |
wolfSSL | 9:52ec7c02b1e1 | 270 | #define SINGLE_THREADED |
wolfSSL | 9:52ec7c02b1e1 | 271 | #define NO_STDIO_FILESYSTEM |
wolfSSL | 9:52ec7c02b1e1 | 272 | #define WOLFSSL_LEANPSK |
wolfSSL | 9:52ec7c02b1e1 | 273 | #define HAVE_NULL_CIPHER |
wolfSSL | 9:52ec7c02b1e1 | 274 | #define NO_OLD_TLS |
wolfSSL | 9:52ec7c02b1e1 | 275 | #define NO_ASN |
wolfSSL | 9:52ec7c02b1e1 | 276 | #define NO_BIG_INT |
wolfSSL | 9:52ec7c02b1e1 | 277 | #define NO_RSA |
wolfSSL | 9:52ec7c02b1e1 | 278 | #define NO_DSA |
wolfSSL | 9:52ec7c02b1e1 | 279 | #define NO_DH |
wolfSSL | 9:52ec7c02b1e1 | 280 | /* Allows use of DH with fixed points if uncommented and NO_DH is removed */ |
wolfSSL | 9:52ec7c02b1e1 | 281 | /* WOLFSSL_DH_CONST */ |
wolfSSL | 9:52ec7c02b1e1 | 282 | #define NO_CERTS |
wolfSSL | 9:52ec7c02b1e1 | 283 | #define NO_PWDBASED |
wolfSSL | 9:52ec7c02b1e1 | 284 | #define NO_DES3 |
wolfSSL | 9:52ec7c02b1e1 | 285 | #define NO_MD4 |
wolfSSL | 9:52ec7c02b1e1 | 286 | #define NO_RC4 |
wolfSSL | 9:52ec7c02b1e1 | 287 | #define NO_MD5 |
wolfSSL | 9:52ec7c02b1e1 | 288 | #define NO_SESSION_CACHE |
wolfSSL | 9:52ec7c02b1e1 | 289 | #define NO_MAIN_DRIVER |
wolfSSL | 9:52ec7c02b1e1 | 290 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 291 | |
wolfSSL | 9:52ec7c02b1e1 | 292 | #ifdef WOLFSSL_PICOTCP |
wolfSSL | 9:52ec7c02b1e1 | 293 | #ifndef errno |
wolfSSL | 9:52ec7c02b1e1 | 294 | #define errno pico_err |
wolfSSL | 9:52ec7c02b1e1 | 295 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 296 | #include "pico_defines.h" |
wolfSSL | 9:52ec7c02b1e1 | 297 | #include "pico_stack.h" |
wolfSSL | 9:52ec7c02b1e1 | 298 | #include "pico_constants.h" |
wolfSSL | 9:52ec7c02b1e1 | 299 | #include "pico_protocol.h" |
wolfSSL | 9:52ec7c02b1e1 | 300 | #define CUSTOM_RAND_GENERATE pico_rand |
wolfSSL | 9:52ec7c02b1e1 | 301 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 302 | |
wolfSSL | 9:52ec7c02b1e1 | 303 | #ifdef WOLFSSL_PICOTCP_DEMO |
wolfSSL | 9:52ec7c02b1e1 | 304 | #define WOLFSSL_STM32 |
wolfSSL | 9:52ec7c02b1e1 | 305 | #define USE_FAST_MATH |
wolfSSL | 9:52ec7c02b1e1 | 306 | #define TFM_TIMING_RESISTANT |
wolfSSL | 9:52ec7c02b1e1 | 307 | #define XMALLOC(s, h, type) PICO_ZALLOC((s)) |
wolfSSL | 9:52ec7c02b1e1 | 308 | #define XFREE(p, h, type) PICO_FREE((p)) |
wolfSSL | 9:52ec7c02b1e1 | 309 | #define SINGLE_THREADED |
wolfSSL | 9:52ec7c02b1e1 | 310 | #define NO_WRITEV |
wolfSSL | 9:52ec7c02b1e1 | 311 | #define WOLFSSL_USER_IO |
wolfSSL | 9:52ec7c02b1e1 | 312 | #define NO_DEV_RANDOM |
wolfSSL | 9:52ec7c02b1e1 | 313 | #define NO_FILESYSTEM |
wolfSSL | 9:52ec7c02b1e1 | 314 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 315 | |
wolfSSL | 9:52ec7c02b1e1 | 316 | #ifdef FREERTOS_WINSIM |
wolfSSL | 9:52ec7c02b1e1 | 317 | #define FREERTOS |
wolfSSL | 9:52ec7c02b1e1 | 318 | #define USE_WINDOWS_API |
wolfSSL | 9:52ec7c02b1e1 | 319 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 320 | |
wolfSSL | 9:52ec7c02b1e1 | 321 | |
wolfSSL | 9:52ec7c02b1e1 | 322 | #ifdef WOLFSSL_VXWORKS |
wolfSSL | 9:52ec7c02b1e1 | 323 | /* VxWorks simulator incorrectly detects building for i386 */ |
wolfSSL | 9:52ec7c02b1e1 | 324 | #ifdef VXWORKS_SIM |
wolfSSL | 9:52ec7c02b1e1 | 325 | #define TFM_NO_ASM |
wolfSSL | 9:52ec7c02b1e1 | 326 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 327 | #define WOLFSSL_PTHREADS |
wolfSSL | 9:52ec7c02b1e1 | 328 | #define WOLFSSL_HAVE_MIN |
wolfSSL | 12:1a06964c2adb | 329 | #define WOLFSSL_HAVE_MAX |
wolfSSL | 9:52ec7c02b1e1 | 330 | #define USE_FAST_MATH |
wolfSSL | 9:52ec7c02b1e1 | 331 | #define TFM_TIMING_RESISTANT |
wolfSSL | 9:52ec7c02b1e1 | 332 | #define NO_MAIN_DRIVER |
wolfSSL | 9:52ec7c02b1e1 | 333 | #define NO_DEV_RANDOM |
wolfSSL | 9:52ec7c02b1e1 | 334 | #define NO_WRITEV |
wolfSSL | 9:52ec7c02b1e1 | 335 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 336 | |
wolfSSL | 9:52ec7c02b1e1 | 337 | |
wolfSSL | 9:52ec7c02b1e1 | 338 | #ifdef WOLFSSL_ARDUINO |
wolfSSL | 9:52ec7c02b1e1 | 339 | #define NO_WRITEV |
wolfSSL | 9:52ec7c02b1e1 | 340 | #define NO_WOLFSSL_DIR |
wolfSSL | 9:52ec7c02b1e1 | 341 | #define SINGLE_THREADED |
wolfSSL | 9:52ec7c02b1e1 | 342 | #define NO_DEV_RANDOM |
wolfSSL | 9:52ec7c02b1e1 | 343 | #ifndef INTEL_GALILEO /* Galileo has time.h compatibility */ |
wolfSSL | 9:52ec7c02b1e1 | 344 | #define TIME_OVERRIDES /* must define XTIME and XGMTIME externally */ |
wolfSSL | 9:52ec7c02b1e1 | 345 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 346 | #define WOLFSSL_USER_IO |
wolfSSL | 9:52ec7c02b1e1 | 347 | #define HAVE_ECC |
wolfSSL | 9:52ec7c02b1e1 | 348 | #define NO_DH |
wolfSSL | 9:52ec7c02b1e1 | 349 | #define NO_SESSION_CACHE |
wolfSSL | 9:52ec7c02b1e1 | 350 | #define USE_SLOW_SHA |
wolfSSL | 9:52ec7c02b1e1 | 351 | #define NO_WOLFSSL_SERVER |
wolfSSL | 9:52ec7c02b1e1 | 352 | #define NO_ERROR_STRINGS |
wolfSSL | 9:52ec7c02b1e1 | 353 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 354 | |
wolfSSL | 9:52ec7c02b1e1 | 355 | |
wolfSSL | 9:52ec7c02b1e1 | 356 | #ifdef WOLFSSL_UTASKER |
wolfSSL | 9:52ec7c02b1e1 | 357 | /* uTasker configuration - used for fnRandom() */ |
wolfSSL | 9:52ec7c02b1e1 | 358 | #include "config.h" |
wolfSSL | 9:52ec7c02b1e1 | 359 | |
wolfSSL | 9:52ec7c02b1e1 | 360 | #define SINGLE_THREADED |
wolfSSL | 9:52ec7c02b1e1 | 361 | #define NO_WOLFSSL_DIR |
wolfSSL | 9:52ec7c02b1e1 | 362 | #define WOLFSSL_HAVE_MIN |
wolfSSL | 9:52ec7c02b1e1 | 363 | #define NO_WRITEV |
wolfSSL | 9:52ec7c02b1e1 | 364 | |
wolfSSL | 9:52ec7c02b1e1 | 365 | #define HAVE_ECC |
wolfSSL | 9:52ec7c02b1e1 | 366 | #define ALT_ECC_SIZE |
wolfSSL | 9:52ec7c02b1e1 | 367 | #define USE_FAST_MATH |
wolfSSL | 9:52ec7c02b1e1 | 368 | #define TFM_TIMING_RESISTANT |
wolfSSL | 9:52ec7c02b1e1 | 369 | #define ECC_TIMING_RESISTANT |
wolfSSL | 9:52ec7c02b1e1 | 370 | |
wolfSSL | 9:52ec7c02b1e1 | 371 | /* used in wolfCrypt test */ |
wolfSSL | 9:52ec7c02b1e1 | 372 | #define NO_MAIN_DRIVER |
wolfSSL | 9:52ec7c02b1e1 | 373 | #define USE_CERT_BUFFERS_2048 |
wolfSSL | 9:52ec7c02b1e1 | 374 | |
wolfSSL | 9:52ec7c02b1e1 | 375 | /* uTasker port uses RAW sockets, use I/O callbacks |
wolfSSL | 10:6c2db0c97d5a | 376 | * See wolfSSL uTasker example for sample callbacks */ |
wolfSSL | 9:52ec7c02b1e1 | 377 | #define WOLFSSL_USER_IO |
wolfSSL | 9:52ec7c02b1e1 | 378 | |
wolfSSL | 9:52ec7c02b1e1 | 379 | /* uTasker filesystem not ported */ |
wolfSSL | 9:52ec7c02b1e1 | 380 | #define NO_FILESYSTEM |
wolfSSL | 9:52ec7c02b1e1 | 381 | |
wolfSSL | 9:52ec7c02b1e1 | 382 | /* uTasker RNG is abstracted, calls HW RNG when available */ |
wolfSSL | 9:52ec7c02b1e1 | 383 | #define CUSTOM_RAND_GENERATE fnRandom |
wolfSSL | 9:52ec7c02b1e1 | 384 | #define CUSTOM_RAND_TYPE unsigned short |
wolfSSL | 9:52ec7c02b1e1 | 385 | |
wolfSSL | 9:52ec7c02b1e1 | 386 | /* user needs to define XTIME to function that provides |
wolfSSL | 9:52ec7c02b1e1 | 387 | * seconds since Unix epoch */ |
wolfSSL | 9:52ec7c02b1e1 | 388 | #ifndef XTIME |
wolfSSL | 9:52ec7c02b1e1 | 389 | #error XTIME must be defined in wolfSSL settings.h |
wolfSSL | 9:52ec7c02b1e1 | 390 | /* #define XTIME fnSecondsSinceEpoch */ |
wolfSSL | 9:52ec7c02b1e1 | 391 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 392 | |
wolfSSL | 9:52ec7c02b1e1 | 393 | /* use uTasker std library replacements where available */ |
wolfSSL | 9:52ec7c02b1e1 | 394 | #define STRING_USER |
wolfSSL | 9:52ec7c02b1e1 | 395 | #define XMEMCPY(d,s,l) uMemcpy((d),(s),(l)) |
wolfSSL | 9:52ec7c02b1e1 | 396 | #define XMEMSET(b,c,l) uMemset((b),(c),(l)) |
wolfSSL | 9:52ec7c02b1e1 | 397 | #define XMEMCMP(s1,s2,n) uMemcmp((s1),(s2),(n)) |
wolfSSL | 9:52ec7c02b1e1 | 398 | #define XMEMMOVE(d,s,l) memmove((d),(s),(l)) |
wolfSSL | 9:52ec7c02b1e1 | 399 | |
wolfSSL | 9:52ec7c02b1e1 | 400 | #define XSTRLEN(s1) uStrlen((s1)) |
wolfSSL | 9:52ec7c02b1e1 | 401 | #define XSTRNCPY(s1,s2,n) strncpy((s1),(s2),(n)) |
wolfSSL | 9:52ec7c02b1e1 | 402 | #define XSTRSTR(s1,s2) strstr((s1),(s2)) |
wolfSSL | 9:52ec7c02b1e1 | 403 | #define XSTRNSTR(s1,s2,n) mystrnstr((s1),(s2),(n)) |
wolfSSL | 9:52ec7c02b1e1 | 404 | #define XSTRNCMP(s1,s2,n) strncmp((s1),(s2),(n)) |
wolfSSL | 9:52ec7c02b1e1 | 405 | #define XSTRNCAT(s1,s2,n) strncat((s1),(s2),(n)) |
wolfSSL | 9:52ec7c02b1e1 | 406 | #define XSTRNCASECMP(s1,s2,n) _strnicmp((s1),(s2),(n)) |
wolfSSL | 9:52ec7c02b1e1 | 407 | #if defined(WOLFSSL_CERT_EXT) || defined(HAVE_ALPN) |
wolfSSL | 9:52ec7c02b1e1 | 408 | #define XSTRTOK strtok_r |
wolfSSL | 9:52ec7c02b1e1 | 409 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 410 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 411 | |
wolfSSL | 9:52ec7c02b1e1 | 412 | #ifdef WOLFSSL_EMBOS |
wolfSSL | 9:52ec7c02b1e1 | 413 | #define NO_FILESYSTEM /* Not ported at this time */ |
wolfSSL | 9:52ec7c02b1e1 | 414 | #define USE_CERT_BUFFERS_2048 /* use when NO_FILESYSTEM */ |
wolfSSL | 9:52ec7c02b1e1 | 415 | #define NO_MAIN_DRIVER |
wolfSSL | 9:52ec7c02b1e1 | 416 | #define NO_RC4 |
wolfSSL | 9:52ec7c02b1e1 | 417 | #define SINGLE_THREADED /* Not ported at this time */ |
wolfSSL | 9:52ec7c02b1e1 | 418 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 419 | |
wolfSSL | 9:52ec7c02b1e1 | 420 | #ifdef WOLFSSL_RIOT_OS |
wolfSSL | 9:52ec7c02b1e1 | 421 | #define NO_WRITEV |
wolfSSL | 9:52ec7c02b1e1 | 422 | #define TFM_NO_ASM |
wolfSSL | 9:52ec7c02b1e1 | 423 | #define USE_FAST_MATH |
wolfSSL | 12:1a06964c2adb | 424 | #define NO_FILESYSTEM |
wolfSSL | 9:52ec7c02b1e1 | 425 | #define USE_CERT_BUFFERS_2048 |
wolfSSL | 9:52ec7c02b1e1 | 426 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 427 | |
wolfSSL | 9:52ec7c02b1e1 | 428 | #ifdef WOLFSSL_NRF5x |
wolfSSL | 10:6c2db0c97d5a | 429 | #define SIZEOF_LONG 4 |
wolfSSL | 10:6c2db0c97d5a | 430 | #define SIZEOF_LONG_LONG 8 |
wolfSSL | 10:6c2db0c97d5a | 431 | #define NO_ASN_TIME |
wolfSSL | 10:6c2db0c97d5a | 432 | #define NO_DEV_RANDOM |
wolfSSL | 10:6c2db0c97d5a | 433 | #define NO_FILESYSTEM |
wolfSSL | 10:6c2db0c97d5a | 434 | #define NO_MAIN_DRIVER |
wolfSSL | 10:6c2db0c97d5a | 435 | #define NO_WRITEV |
wolfSSL | 10:6c2db0c97d5a | 436 | #define SINGLE_THREADED |
wolfSSL | 10:6c2db0c97d5a | 437 | #define USE_FAST_MATH |
wolfSSL | 10:6c2db0c97d5a | 438 | #define TFM_TIMING_RESISTANT |
wolfSSL | 10:6c2db0c97d5a | 439 | #define USE_WOLFSSL_MEMORY |
wolfSSL | 10:6c2db0c97d5a | 440 | #define WOLFSSL_NRF51 |
wolfSSL | 10:6c2db0c97d5a | 441 | #define WOLFSSL_USER_IO |
wolfSSL | 10:6c2db0c97d5a | 442 | #define NO_SESSION_CACHE |
wolfSSL | 9:52ec7c02b1e1 | 443 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 444 | |
wolfSSL | 9:52ec7c02b1e1 | 445 | /* Micrium will use Visual Studio for compilation but not the Win32 API */ |
wolfSSL | 9:52ec7c02b1e1 | 446 | #if defined(_WIN32) && !defined(MICRIUM) && !defined(FREERTOS) && \ |
wolfSSL | 10:6c2db0c97d5a | 447 | !defined(FREERTOS_TCP) && !defined(EBSNET) && !defined(WOLFSSL_EROAD) && \ |
wolfSSL | 10:6c2db0c97d5a | 448 | !defined(WOLFSSL_UTASKER) && !defined(INTIME_RTOS) |
wolfSSL | 9:52ec7c02b1e1 | 449 | #define USE_WINDOWS_API |
wolfSSL | 9:52ec7c02b1e1 | 450 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 451 | |
wolfSSL | 9:52ec7c02b1e1 | 452 | #if defined(WOLFSSL_uITRON4) |
wolfSSL | 9:52ec7c02b1e1 | 453 | |
wolfSSL | 9:52ec7c02b1e1 | 454 | #define XMALLOC_USER |
wolfSSL | 9:52ec7c02b1e1 | 455 | #include <stddef.h> |
wolfSSL | 9:52ec7c02b1e1 | 456 | #define ITRON_POOL_SIZE 1024*20 |
wolfSSL | 9:52ec7c02b1e1 | 457 | extern int uITRON4_minit(size_t poolsz) ; |
wolfSSL | 9:52ec7c02b1e1 | 458 | extern void *uITRON4_malloc(size_t sz) ; |
wolfSSL | 9:52ec7c02b1e1 | 459 | extern void *uITRON4_realloc(void *p, size_t sz) ; |
wolfSSL | 9:52ec7c02b1e1 | 460 | extern void uITRON4_free(void *p) ; |
wolfSSL | 9:52ec7c02b1e1 | 461 | |
wolfSSL | 9:52ec7c02b1e1 | 462 | #define XMALLOC(sz, heap, type) uITRON4_malloc(sz) |
wolfSSL | 9:52ec7c02b1e1 | 463 | #define XREALLOC(p, sz, heap, type) uITRON4_realloc(p, sz) |
wolfSSL | 9:52ec7c02b1e1 | 464 | #define XFREE(p, heap, type) uITRON4_free(p) |
wolfSSL | 9:52ec7c02b1e1 | 465 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 466 | |
wolfSSL | 9:52ec7c02b1e1 | 467 | #if defined(WOLFSSL_uTKERNEL2) |
wolfSSL | 10:6c2db0c97d5a | 468 | #ifndef NO_TKERNEL_MEM_POOL |
wolfSSL | 10:6c2db0c97d5a | 469 | #define XMALLOC_OVERRIDE |
wolfSSL | 10:6c2db0c97d5a | 470 | int uTKernel_init_mpool(unsigned int sz); /* initializing malloc pool */ |
wolfSSL | 10:6c2db0c97d5a | 471 | void* uTKernel_malloc(unsigned int sz); |
wolfSSL | 10:6c2db0c97d5a | 472 | void* uTKernel_realloc(void *p, unsigned int sz); |
wolfSSL | 10:6c2db0c97d5a | 473 | void uTKernel_free(void *p); |
wolfSSL | 10:6c2db0c97d5a | 474 | #define XMALLOC(s, h, type) uTKernel_malloc((s)) |
wolfSSL | 10:6c2db0c97d5a | 475 | #define XREALLOC(p, n, h, t) uTKernel_realloc((p), (n)) |
wolfSSL | 10:6c2db0c97d5a | 476 | #define XFREE(p, h, type) uTKernel_free((p)) |
wolfSSL | 10:6c2db0c97d5a | 477 | #endif |
wolfSSL | 10:6c2db0c97d5a | 478 | |
wolfSSL | 10:6c2db0c97d5a | 479 | #ifndef NO_STDIO_FGETS_REMAP |
wolfSSL | 10:6c2db0c97d5a | 480 | #include <stdio.h> |
wolfSSL | 10:6c2db0c97d5a | 481 | #include "tm/tmonitor.h" |
wolfSSL | 9:52ec7c02b1e1 | 482 | |
wolfSSL | 10:6c2db0c97d5a | 483 | /* static char* gets(char *buff); */ |
wolfSSL | 10:6c2db0c97d5a | 484 | static char* fgets(char *buff, int sz, FILE *fp) { |
wolfSSL | 10:6c2db0c97d5a | 485 | char * p = buff; |
wolfSSL | 10:6c2db0c97d5a | 486 | *p = '\0'; |
wolfSSL | 10:6c2db0c97d5a | 487 | while (1) { |
wolfSSL | 10:6c2db0c97d5a | 488 | *p = tm_getchar(-1); |
wolfSSL | 10:6c2db0c97d5a | 489 | tm_putchar(*p); |
wolfSSL | 10:6c2db0c97d5a | 490 | if (*p == '\r') { |
wolfSSL | 10:6c2db0c97d5a | 491 | tm_putchar('\n'); |
wolfSSL | 10:6c2db0c97d5a | 492 | *p = '\0'; |
wolfSSL | 10:6c2db0c97d5a | 493 | break; |
wolfSSL | 10:6c2db0c97d5a | 494 | } |
wolfSSL | 10:6c2db0c97d5a | 495 | p++; |
wolfSSL | 9:52ec7c02b1e1 | 496 | } |
wolfSSL | 10:6c2db0c97d5a | 497 | return buff; |
wolfSSL | 9:52ec7c02b1e1 | 498 | } |
wolfSSL | 10:6c2db0c97d5a | 499 | #endif /* !NO_STDIO_FGETS_REMAP */ |
wolfSSL | 9:52ec7c02b1e1 | 500 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 501 | |
wolfSSL | 9:52ec7c02b1e1 | 502 | |
wolfSSL | 9:52ec7c02b1e1 | 503 | #if defined(WOLFSSL_LEANPSK) && !defined(XMALLOC_USER) |
wolfSSL | 9:52ec7c02b1e1 | 504 | #include <stdlib.h> |
wolfSSL | 9:52ec7c02b1e1 | 505 | #define XMALLOC(s, h, type) malloc((s)) |
wolfSSL | 9:52ec7c02b1e1 | 506 | #define XFREE(p, h, type) free((p)) |
wolfSSL | 9:52ec7c02b1e1 | 507 | #define XREALLOC(p, n, h, t) realloc((p), (n)) |
wolfSSL | 9:52ec7c02b1e1 | 508 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 509 | |
wolfSSL | 9:52ec7c02b1e1 | 510 | #if defined(XMALLOC_USER) && defined(SSN_BUILDING_LIBYASSL) |
wolfSSL | 9:52ec7c02b1e1 | 511 | #undef XMALLOC |
wolfSSL | 9:52ec7c02b1e1 | 512 | #define XMALLOC yaXMALLOC |
wolfSSL | 9:52ec7c02b1e1 | 513 | #undef XFREE |
wolfSSL | 9:52ec7c02b1e1 | 514 | #define XFREE yaXFREE |
wolfSSL | 9:52ec7c02b1e1 | 515 | #undef XREALLOC |
wolfSSL | 9:52ec7c02b1e1 | 516 | #define XREALLOC yaXREALLOC |
wolfSSL | 9:52ec7c02b1e1 | 517 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 518 | |
wolfSSL | 9:52ec7c02b1e1 | 519 | |
wolfSSL | 9:52ec7c02b1e1 | 520 | #ifdef FREERTOS |
wolfSSL | 9:52ec7c02b1e1 | 521 | #include "FreeRTOS.h" |
wolfSSL | 9:52ec7c02b1e1 | 522 | |
wolfSSL | 9:52ec7c02b1e1 | 523 | /* FreeRTOS pvPortRealloc() only in AVR32_UC3 port */ |
wolfSSL | 9:52ec7c02b1e1 | 524 | #if !defined(XMALLOC_USER) && !defined(NO_WOLFSSL_MEMORY) |
wolfSSL | 9:52ec7c02b1e1 | 525 | #define XMALLOC(s, h, type) pvPortMalloc((s)) |
wolfSSL | 9:52ec7c02b1e1 | 526 | #define XFREE(p, h, type) vPortFree((p)) |
wolfSSL | 9:52ec7c02b1e1 | 527 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 528 | |
wolfSSL | 9:52ec7c02b1e1 | 529 | #ifndef NO_WRITEV |
wolfSSL | 9:52ec7c02b1e1 | 530 | #define NO_WRITEV |
wolfSSL | 9:52ec7c02b1e1 | 531 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 532 | #ifndef HAVE_SHA512 |
wolfSSL | 9:52ec7c02b1e1 | 533 | #ifndef NO_SHA512 |
wolfSSL | 9:52ec7c02b1e1 | 534 | #define NO_SHA512 |
wolfSSL | 9:52ec7c02b1e1 | 535 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 536 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 537 | #ifndef HAVE_DH |
wolfSSL | 9:52ec7c02b1e1 | 538 | #ifndef NO_DH |
wolfSSL | 9:52ec7c02b1e1 | 539 | #define NO_DH |
wolfSSL | 9:52ec7c02b1e1 | 540 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 541 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 542 | #ifndef NO_DSA |
wolfSSL | 9:52ec7c02b1e1 | 543 | #define NO_DSA |
wolfSSL | 9:52ec7c02b1e1 | 544 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 545 | #ifndef NO_HC128 |
wolfSSL | 9:52ec7c02b1e1 | 546 | #define NO_HC128 |
wolfSSL | 9:52ec7c02b1e1 | 547 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 548 | |
wolfSSL | 9:52ec7c02b1e1 | 549 | #ifndef SINGLE_THREADED |
wolfSSL | 9:52ec7c02b1e1 | 550 | #include "semphr.h" |
wolfSSL | 9:52ec7c02b1e1 | 551 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 552 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 553 | |
wolfSSL | 9:52ec7c02b1e1 | 554 | #ifdef FREERTOS_TCP |
wolfSSL | 9:52ec7c02b1e1 | 555 | |
wolfSSL | 9:52ec7c02b1e1 | 556 | #if !defined(NO_WOLFSSL_MEMORY) && !defined(XMALLOC_USER) |
wolfSSL | 9:52ec7c02b1e1 | 557 | #define XMALLOC(s, h, type) pvPortMalloc((s)) |
wolfSSL | 9:52ec7c02b1e1 | 558 | #define XFREE(p, h, type) vPortFree((p)) |
wolfSSL | 9:52ec7c02b1e1 | 559 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 560 | |
wolfSSL | 9:52ec7c02b1e1 | 561 | #define WOLFSSL_GENSEED_FORTEST |
wolfSSL | 9:52ec7c02b1e1 | 562 | |
wolfSSL | 9:52ec7c02b1e1 | 563 | #define NO_WOLFSSL_DIR |
wolfSSL | 9:52ec7c02b1e1 | 564 | #define NO_WRITEV |
wolfSSL | 9:52ec7c02b1e1 | 565 | #define USE_FAST_MATH |
wolfSSL | 9:52ec7c02b1e1 | 566 | #define TFM_TIMING_RESISTANT |
wolfSSL | 9:52ec7c02b1e1 | 567 | #define NO_MAIN_DRIVER |
wolfSSL | 9:52ec7c02b1e1 | 568 | |
wolfSSL | 9:52ec7c02b1e1 | 569 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 570 | |
wolfSSL | 9:52ec7c02b1e1 | 571 | #ifdef WOLFSSL_TIRTOS |
wolfSSL | 9:52ec7c02b1e1 | 572 | #define SIZEOF_LONG_LONG 8 |
wolfSSL | 9:52ec7c02b1e1 | 573 | #define NO_WRITEV |
wolfSSL | 9:52ec7c02b1e1 | 574 | #define NO_WOLFSSL_DIR |
wolfSSL | 9:52ec7c02b1e1 | 575 | #define USE_FAST_MATH |
wolfSSL | 9:52ec7c02b1e1 | 576 | #define TFM_TIMING_RESISTANT |
wolfSSL | 9:52ec7c02b1e1 | 577 | #define NO_DEV_RANDOM |
wolfSSL | 9:52ec7c02b1e1 | 578 | #define NO_FILESYSTEM |
wolfSSL | 9:52ec7c02b1e1 | 579 | #define USE_CERT_BUFFERS_2048 |
wolfSSL | 9:52ec7c02b1e1 | 580 | #define NO_ERROR_STRINGS |
wolfSSL | 9:52ec7c02b1e1 | 581 | #define USER_TIME |
wolfSSL | 9:52ec7c02b1e1 | 582 | #define HAVE_ECC |
wolfSSL | 9:52ec7c02b1e1 | 583 | #define HAVE_ALPN |
wolfSSL | 9:52ec7c02b1e1 | 584 | #define HAVE_TLS_EXTENSIONS |
wolfSSL | 9:52ec7c02b1e1 | 585 | #define HAVE_AESGCM |
wolfSSL | 9:52ec7c02b1e1 | 586 | #define HAVE_SUPPORTED_CURVES |
wolfSSL | 9:52ec7c02b1e1 | 587 | #define ALT_ECC_SIZE |
wolfSSL | 9:52ec7c02b1e1 | 588 | |
wolfSSL | 9:52ec7c02b1e1 | 589 | #ifdef __IAR_SYSTEMS_ICC__ |
wolfSSL | 9:52ec7c02b1e1 | 590 | #pragma diag_suppress=Pa089 |
wolfSSL | 9:52ec7c02b1e1 | 591 | #elif !defined(__GNUC__) |
wolfSSL | 9:52ec7c02b1e1 | 592 | /* Suppress the sslpro warning */ |
wolfSSL | 9:52ec7c02b1e1 | 593 | #pragma diag_suppress=11 |
wolfSSL | 9:52ec7c02b1e1 | 594 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 595 | |
wolfSSL | 9:52ec7c02b1e1 | 596 | #include <ti/sysbios/hal/Seconds.h> |
wolfSSL | 9:52ec7c02b1e1 | 597 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 598 | |
wolfSSL | 9:52ec7c02b1e1 | 599 | #ifdef EBSNET |
wolfSSL | 9:52ec7c02b1e1 | 600 | #include "rtip.h" |
wolfSSL | 9:52ec7c02b1e1 | 601 | |
wolfSSL | 9:52ec7c02b1e1 | 602 | /* #define DEBUG_WOLFSSL */ |
wolfSSL | 9:52ec7c02b1e1 | 603 | #define NO_WOLFSSL_DIR /* tbd */ |
wolfSSL | 9:52ec7c02b1e1 | 604 | |
wolfSSL | 9:52ec7c02b1e1 | 605 | #if (POLLOS) |
wolfSSL | 9:52ec7c02b1e1 | 606 | #define SINGLE_THREADED |
wolfSSL | 9:52ec7c02b1e1 | 607 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 608 | |
wolfSSL | 9:52ec7c02b1e1 | 609 | #if (RTPLATFORM) |
wolfSSL | 9:52ec7c02b1e1 | 610 | #if (!RTP_LITTLE_ENDIAN) |
wolfSSL | 9:52ec7c02b1e1 | 611 | #define BIG_ENDIAN_ORDER |
wolfSSL | 9:52ec7c02b1e1 | 612 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 613 | #else |
wolfSSL | 9:52ec7c02b1e1 | 614 | #if (!KS_LITTLE_ENDIAN) |
wolfSSL | 9:52ec7c02b1e1 | 615 | #define BIG_ENDIAN_ORDER |
wolfSSL | 9:52ec7c02b1e1 | 616 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 617 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 618 | |
wolfSSL | 9:52ec7c02b1e1 | 619 | #if (WINMSP3) |
wolfSSL | 9:52ec7c02b1e1 | 620 | #undef SIZEOF_LONG |
wolfSSL | 9:52ec7c02b1e1 | 621 | #define SIZEOF_LONG_LONG 8 |
wolfSSL | 9:52ec7c02b1e1 | 622 | #else |
wolfSSL | 9:52ec7c02b1e1 | 623 | #sslpro: settings.h - please implement SIZEOF_LONG and SIZEOF_LONG_LONG |
wolfSSL | 9:52ec7c02b1e1 | 624 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 625 | |
wolfSSL | 9:52ec7c02b1e1 | 626 | #define XMALLOC(s, h, type) ((void *)rtp_malloc((s), SSL_PRO_MALLOC)) |
wolfSSL | 9:52ec7c02b1e1 | 627 | #define XFREE(p, h, type) (rtp_free(p)) |
wolfSSL | 9:52ec7c02b1e1 | 628 | #define XREALLOC(p, n, h, t) realloc((p), (n)) |
wolfSSL | 9:52ec7c02b1e1 | 629 | |
wolfSSL | 9:52ec7c02b1e1 | 630 | #endif /* EBSNET */ |
wolfSSL | 9:52ec7c02b1e1 | 631 | |
wolfSSL | 9:52ec7c02b1e1 | 632 | #ifdef WOLFSSL_GAME_BUILD |
wolfSSL | 9:52ec7c02b1e1 | 633 | #define SIZEOF_LONG_LONG 8 |
wolfSSL | 9:52ec7c02b1e1 | 634 | #if defined(__PPU) || defined(__XENON) |
wolfSSL | 9:52ec7c02b1e1 | 635 | #define BIG_ENDIAN_ORDER |
wolfSSL | 9:52ec7c02b1e1 | 636 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 637 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 638 | |
wolfSSL | 9:52ec7c02b1e1 | 639 | #ifdef WOLFSSL_LSR |
wolfSSL | 9:52ec7c02b1e1 | 640 | #define HAVE_WEBSERVER |
wolfSSL | 9:52ec7c02b1e1 | 641 | #define SIZEOF_LONG_LONG 8 |
wolfSSL | 9:52ec7c02b1e1 | 642 | #define WOLFSSL_LOW_MEMORY |
wolfSSL | 9:52ec7c02b1e1 | 643 | #define NO_WRITEV |
wolfSSL | 9:52ec7c02b1e1 | 644 | #define NO_SHA512 |
wolfSSL | 9:52ec7c02b1e1 | 645 | #define NO_DH |
wolfSSL | 9:52ec7c02b1e1 | 646 | /* Allows use of DH with fixed points if uncommented and NO_DH is removed */ |
wolfSSL | 9:52ec7c02b1e1 | 647 | /* WOLFSSL_DH_CONST */ |
wolfSSL | 9:52ec7c02b1e1 | 648 | #define NO_DSA |
wolfSSL | 9:52ec7c02b1e1 | 649 | #define NO_HC128 |
wolfSSL | 9:52ec7c02b1e1 | 650 | #define NO_DEV_RANDOM |
wolfSSL | 9:52ec7c02b1e1 | 651 | #define NO_WOLFSSL_DIR |
wolfSSL | 9:52ec7c02b1e1 | 652 | #define NO_RABBIT |
wolfSSL | 9:52ec7c02b1e1 | 653 | #ifndef NO_FILESYSTEM |
wolfSSL | 9:52ec7c02b1e1 | 654 | #define LSR_FS |
wolfSSL | 9:52ec7c02b1e1 | 655 | #include "inc/hw_types.h" |
wolfSSL | 9:52ec7c02b1e1 | 656 | #include "fs.h" |
wolfSSL | 9:52ec7c02b1e1 | 657 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 658 | #define WOLFSSL_LWIP |
wolfSSL | 9:52ec7c02b1e1 | 659 | #include <errno.h> /* for tcp errno */ |
wolfSSL | 9:52ec7c02b1e1 | 660 | #define WOLFSSL_SAFERTOS |
wolfSSL | 9:52ec7c02b1e1 | 661 | #if defined(__IAR_SYSTEMS_ICC__) |
wolfSSL | 9:52ec7c02b1e1 | 662 | /* enum uses enum */ |
wolfSSL | 9:52ec7c02b1e1 | 663 | #pragma diag_suppress=Pa089 |
wolfSSL | 9:52ec7c02b1e1 | 664 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 665 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 666 | |
wolfSSL | 9:52ec7c02b1e1 | 667 | #ifdef WOLFSSL_SAFERTOS |
wolfSSL | 9:52ec7c02b1e1 | 668 | #ifndef SINGLE_THREADED |
wolfSSL | 9:52ec7c02b1e1 | 669 | #include "SafeRTOS/semphr.h" |
wolfSSL | 9:52ec7c02b1e1 | 670 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 671 | |
wolfSSL | 9:52ec7c02b1e1 | 672 | #include "SafeRTOS/heap.h" |
wolfSSL | 9:52ec7c02b1e1 | 673 | #define XMALLOC(s, h, type) pvPortMalloc((s)) |
wolfSSL | 9:52ec7c02b1e1 | 674 | #define XFREE(p, h, type) vPortFree((p)) |
wolfSSL | 9:52ec7c02b1e1 | 675 | #define XREALLOC(p, n, h, t) pvPortRealloc((p), (n)) |
wolfSSL | 9:52ec7c02b1e1 | 676 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 677 | |
wolfSSL | 9:52ec7c02b1e1 | 678 | #ifdef WOLFSSL_LOW_MEMORY |
wolfSSL | 9:52ec7c02b1e1 | 679 | #undef RSA_LOW_MEM |
wolfSSL | 9:52ec7c02b1e1 | 680 | #define RSA_LOW_MEM |
wolfSSL | 9:52ec7c02b1e1 | 681 | #undef WOLFSSL_SMALL_STACK |
wolfSSL | 9:52ec7c02b1e1 | 682 | #define WOLFSSL_SMALL_STACK |
wolfSSL | 9:52ec7c02b1e1 | 683 | #undef TFM_TIMING_RESISTANT |
wolfSSL | 9:52ec7c02b1e1 | 684 | #define TFM_TIMING_RESISTANT |
wolfSSL | 9:52ec7c02b1e1 | 685 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 686 | |
wolfSSL | 9:52ec7c02b1e1 | 687 | #ifdef FREESCALE_MQX |
wolfSSL | 9:52ec7c02b1e1 | 688 | #define FREESCALE_COMMON |
wolfSSL | 9:52ec7c02b1e1 | 689 | #include "mqx.h" |
wolfSSL | 9:52ec7c02b1e1 | 690 | #ifndef NO_FILESYSTEM |
wolfSSL | 9:52ec7c02b1e1 | 691 | #include "mfs.h" |
wolfSSL | 9:52ec7c02b1e1 | 692 | #if MQX_USE_IO_OLD |
wolfSSL | 9:52ec7c02b1e1 | 693 | #include "fio.h" |
wolfSSL | 12:1a06964c2adb | 694 | #define NO_STDIO_FILESYSTEM |
wolfSSL | 9:52ec7c02b1e1 | 695 | #else |
wolfSSL | 9:52ec7c02b1e1 | 696 | #include "nio.h" |
wolfSSL | 9:52ec7c02b1e1 | 697 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 698 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 699 | #ifndef SINGLE_THREADED |
wolfSSL | 9:52ec7c02b1e1 | 700 | #include "mutex.h" |
wolfSSL | 9:52ec7c02b1e1 | 701 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 702 | |
wolfSSL | 12:1a06964c2adb | 703 | #define XMALLOC_OVERRIDE |
wolfSSL | 9:52ec7c02b1e1 | 704 | #define XMALLOC(s, h, t) (void *)_mem_alloc_system((s)) |
wolfSSL | 9:52ec7c02b1e1 | 705 | #define XFREE(p, h, t) {void* xp = (p); if ((xp)) _mem_free((xp));} |
wolfSSL | 9:52ec7c02b1e1 | 706 | /* Note: MQX has no realloc, using fastmath above */ |
wolfSSL | 9:52ec7c02b1e1 | 707 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 708 | |
wolfSSL | 9:52ec7c02b1e1 | 709 | #ifdef FREESCALE_KSDK_MQX |
wolfSSL | 9:52ec7c02b1e1 | 710 | #define FREESCALE_COMMON |
wolfSSL | 9:52ec7c02b1e1 | 711 | #include <mqx.h> |
wolfSSL | 9:52ec7c02b1e1 | 712 | #ifndef NO_FILESYSTEM |
wolfSSL | 9:52ec7c02b1e1 | 713 | #if MQX_USE_IO_OLD |
wolfSSL | 9:52ec7c02b1e1 | 714 | #include <fio.h> |
wolfSSL | 9:52ec7c02b1e1 | 715 | #else |
wolfSSL | 9:52ec7c02b1e1 | 716 | #include <stdio.h> |
wolfSSL | 9:52ec7c02b1e1 | 717 | #include <nio.h> |
wolfSSL | 9:52ec7c02b1e1 | 718 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 719 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 720 | #ifndef SINGLE_THREADED |
wolfSSL | 9:52ec7c02b1e1 | 721 | #include <mutex.h> |
wolfSSL | 9:52ec7c02b1e1 | 722 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 723 | |
wolfSSL | 9:52ec7c02b1e1 | 724 | #define XMALLOC(s, h, t) (void *)_mem_alloc_system((s)) |
wolfSSL | 9:52ec7c02b1e1 | 725 | #define XFREE(p, h, t) {void* xp = (p); if ((xp)) _mem_free((xp));} |
wolfSSL | 9:52ec7c02b1e1 | 726 | #define XREALLOC(p, n, h, t) _mem_realloc((p), (n)) /* since MQX 4.1.2 */ |
wolfSSL | 9:52ec7c02b1e1 | 727 | |
wolfSSL | 9:52ec7c02b1e1 | 728 | #define MQX_FILE_PTR FILE * |
wolfSSL | 9:52ec7c02b1e1 | 729 | #define IO_SEEK_SET SEEK_SET |
wolfSSL | 9:52ec7c02b1e1 | 730 | #define IO_SEEK_END SEEK_END |
wolfSSL | 9:52ec7c02b1e1 | 731 | #endif /* FREESCALE_KSDK_MQX */ |
wolfSSL | 9:52ec7c02b1e1 | 732 | |
wolfSSL | 9:52ec7c02b1e1 | 733 | #if defined(FREESCALE_FREE_RTOS) || defined(FREESCALE_KSDK_FREERTOS) |
wolfSSL | 9:52ec7c02b1e1 | 734 | /* Allows use of DH with fixed points if uncommented and NO_DH is removed */ |
wolfSSL | 9:52ec7c02b1e1 | 735 | /* WOLFSSL_DH_CONST */ |
wolfSSL | 9:52ec7c02b1e1 | 736 | /* Allows use of DH with fixed points if uncommented and NO_DH is removed */ |
wolfSSL | 9:52ec7c02b1e1 | 737 | /* WOLFSSL_DH_CONST */ |
wolfSSL | 9:52ec7c02b1e1 | 738 | /* Allows use of DH with fixed points if uncommented and NO_DH is removed */ |
wolfSSL | 9:52ec7c02b1e1 | 739 | /* WOLFSSL_DH_CONST */ |
wolfSSL | 9:52ec7c02b1e1 | 740 | #define NO_FILESYSTEM |
wolfSSL | 9:52ec7c02b1e1 | 741 | #define WOLFSSL_CRYPT_HW_MUTEX 1 |
wolfSSL | 10:6c2db0c97d5a | 742 | |
wolfSSL | 9:52ec7c02b1e1 | 743 | #if !defined(XMALLOC_USER) && !defined(NO_WOLFSSL_MEMORY) |
wolfSSL | 9:52ec7c02b1e1 | 744 | #define XMALLOC(s, h, type) pvPortMalloc((s)) |
wolfSSL | 9:52ec7c02b1e1 | 745 | #define XFREE(p, h, type) vPortFree((p)) |
wolfSSL | 9:52ec7c02b1e1 | 746 | #endif |
wolfSSL | 10:6c2db0c97d5a | 747 | |
wolfSSL | 9:52ec7c02b1e1 | 748 | //#define USER_TICKS |
wolfSSL | 9:52ec7c02b1e1 | 749 | /* Allows use of DH with fixed points if uncommented and NO_DH is removed */ |
wolfSSL | 9:52ec7c02b1e1 | 750 | /* WOLFSSL_DH_CONST */ |
wolfSSL | 9:52ec7c02b1e1 | 751 | #define WOLFSSL_LWIP |
wolfSSL | 9:52ec7c02b1e1 | 752 | #define FREERTOS_TCP |
wolfSSL | 9:52ec7c02b1e1 | 753 | |
wolfSSL | 9:52ec7c02b1e1 | 754 | #define FREESCALE_FREE_RTOS |
wolfSSL | 9:52ec7c02b1e1 | 755 | #define FREERTOS_SOCKET_ERROR ( -1 ) |
wolfSSL | 9:52ec7c02b1e1 | 756 | #define FREERTOS_EWOULDBLOCK ( -2 ) |
wolfSSL | 9:52ec7c02b1e1 | 757 | #define FREERTOS_EINVAL ( -4 ) |
wolfSSL | 9:52ec7c02b1e1 | 758 | #define FREERTOS_EADDRNOTAVAIL ( -5 ) |
wolfSSL | 9:52ec7c02b1e1 | 759 | #define FREERTOS_EADDRINUSE ( -6 ) |
wolfSSL | 9:52ec7c02b1e1 | 760 | #define FREERTOS_ENOBUFS ( -7 ) |
wolfSSL | 9:52ec7c02b1e1 | 761 | #define FREERTOS_ENOPROTOOPT ( -8 ) |
wolfSSL | 9:52ec7c02b1e1 | 762 | #endif /* FREESCALE_FREE_RTOS || FREESCALE_KSDK_FREERTOS */ |
wolfSSL | 9:52ec7c02b1e1 | 763 | |
wolfSSL | 9:52ec7c02b1e1 | 764 | #ifdef FREESCALE_KSDK_BM |
wolfSSL | 9:52ec7c02b1e1 | 765 | #define FREESCALE_COMMON |
wolfSSL | 9:52ec7c02b1e1 | 766 | #define WOLFSSL_USER_IO |
wolfSSL | 9:52ec7c02b1e1 | 767 | #define SINGLE_THREADED |
wolfSSL | 9:52ec7c02b1e1 | 768 | #define NO_FILESYSTEM |
wolfSSL | 10:6c2db0c97d5a | 769 | #ifndef TIME_OVERRIDES |
wolfSSL | 10:6c2db0c97d5a | 770 | #define USER_TICKS |
wolfSSL | 10:6c2db0c97d5a | 771 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 772 | #endif /* FREESCALE_KSDK_BM */ |
wolfSSL | 9:52ec7c02b1e1 | 773 | |
wolfSSL | 9:52ec7c02b1e1 | 774 | #ifdef FREESCALE_COMMON |
wolfSSL | 9:52ec7c02b1e1 | 775 | #define SIZEOF_LONG_LONG 8 |
wolfSSL | 9:52ec7c02b1e1 | 776 | |
wolfSSL | 9:52ec7c02b1e1 | 777 | /* disable features */ |
wolfSSL | 9:52ec7c02b1e1 | 778 | #undef NO_WRITEV |
wolfSSL | 9:52ec7c02b1e1 | 779 | #define NO_WRITEV |
wolfSSL | 9:52ec7c02b1e1 | 780 | #undef NO_DEV_RANDOM |
wolfSSL | 9:52ec7c02b1e1 | 781 | #define NO_DEV_RANDOM |
wolfSSL | 9:52ec7c02b1e1 | 782 | #undef NO_RABBIT |
wolfSSL | 9:52ec7c02b1e1 | 783 | #define NO_RABBIT |
wolfSSL | 9:52ec7c02b1e1 | 784 | #undef NO_WOLFSSL_DIR |
wolfSSL | 9:52ec7c02b1e1 | 785 | #define NO_WOLFSSL_DIR |
wolfSSL | 9:52ec7c02b1e1 | 786 | #undef NO_RC4 |
wolfSSL | 9:52ec7c02b1e1 | 787 | #define NO_RC4 |
wolfSSL | 9:52ec7c02b1e1 | 788 | |
wolfSSL | 9:52ec7c02b1e1 | 789 | /* enable features */ |
wolfSSL | 9:52ec7c02b1e1 | 790 | #undef USE_FAST_MATH |
wolfSSL | 9:52ec7c02b1e1 | 791 | #define USE_FAST_MATH |
wolfSSL | 9:52ec7c02b1e1 | 792 | |
wolfSSL | 9:52ec7c02b1e1 | 793 | #define USE_CERT_BUFFERS_2048 |
wolfSSL | 9:52ec7c02b1e1 | 794 | #define BENCH_EMBEDDED |
wolfSSL | 9:52ec7c02b1e1 | 795 | |
wolfSSL | 9:52ec7c02b1e1 | 796 | #define TFM_TIMING_RESISTANT |
wolfSSL | 9:52ec7c02b1e1 | 797 | #define ECC_TIMING_RESISTANT |
wolfSSL | 9:52ec7c02b1e1 | 798 | |
wolfSSL | 9:52ec7c02b1e1 | 799 | #undef HAVE_ECC |
wolfSSL | 9:52ec7c02b1e1 | 800 | #define HAVE_ECC |
wolfSSL | 9:52ec7c02b1e1 | 801 | #ifndef NO_AES |
wolfSSL | 9:52ec7c02b1e1 | 802 | #undef HAVE_AESCCM |
wolfSSL | 9:52ec7c02b1e1 | 803 | #define HAVE_AESCCM |
wolfSSL | 9:52ec7c02b1e1 | 804 | #undef HAVE_AESGCM |
wolfSSL | 9:52ec7c02b1e1 | 805 | #define HAVE_AESGCM |
wolfSSL | 9:52ec7c02b1e1 | 806 | #undef WOLFSSL_AES_COUNTER |
wolfSSL | 9:52ec7c02b1e1 | 807 | #define WOLFSSL_AES_COUNTER |
wolfSSL | 9:52ec7c02b1e1 | 808 | #undef WOLFSSL_AES_DIRECT |
wolfSSL | 9:52ec7c02b1e1 | 809 | #define WOLFSSL_AES_DIRECT |
wolfSSL | 9:52ec7c02b1e1 | 810 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 811 | |
wolfSSL | 10:6c2db0c97d5a | 812 | #ifdef FREESCALE_KSDK_1_3 |
wolfSSL | 10:6c2db0c97d5a | 813 | #include "fsl_device_registers.h" |
wolfSSL | 12:1a06964c2adb | 814 | #elif !defined(FREESCALE_MQX) |
wolfSSL | 12:1a06964c2adb | 815 | /* Classic MQX does not have fsl_common.h */ |
wolfSSL | 10:6c2db0c97d5a | 816 | #include "fsl_common.h" |
wolfSSL | 10:6c2db0c97d5a | 817 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 818 | |
wolfSSL | 9:52ec7c02b1e1 | 819 | /* random seed */ |
wolfSSL | 9:52ec7c02b1e1 | 820 | #define NO_OLD_RNGNAME |
wolfSSL | 9:52ec7c02b1e1 | 821 | #if defined(FSL_FEATURE_SOC_TRNG_COUNT) && (FSL_FEATURE_SOC_TRNG_COUNT > 0) |
wolfSSL | 9:52ec7c02b1e1 | 822 | #define FREESCALE_KSDK_2_0_TRNG |
wolfSSL | 9:52ec7c02b1e1 | 823 | #elif defined(FSL_FEATURE_SOC_RNG_COUNT) && (FSL_FEATURE_SOC_RNG_COUNT > 0) |
wolfSSL | 10:6c2db0c97d5a | 824 | #ifdef FREESCALE_KSDK_1_3 |
wolfSSL | 10:6c2db0c97d5a | 825 | #include "fsl_rnga_driver.h" |
wolfSSL | 10:6c2db0c97d5a | 826 | #define FREESCALE_RNGA |
wolfSSL | 10:6c2db0c97d5a | 827 | #define RNGA_INSTANCE (0) |
wolfSSL | 10:6c2db0c97d5a | 828 | #else |
wolfSSL | 10:6c2db0c97d5a | 829 | #define FREESCALE_KSDK_2_0_RNGA |
wolfSSL | 10:6c2db0c97d5a | 830 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 831 | #elif !defined(FREESCALE_KSDK_BM) && !defined(FREESCALE_FREE_RTOS) && !defined(FREESCALE_KSDK_FREERTOS) |
wolfSSL | 9:52ec7c02b1e1 | 832 | #define FREESCALE_RNGA |
wolfSSL | 9:52ec7c02b1e1 | 833 | #define RNGA_INSTANCE (0) |
wolfSSL | 9:52ec7c02b1e1 | 834 | /* defaulting to K70 RNGA, user should change if different */ |
wolfSSL | 9:52ec7c02b1e1 | 835 | /* #define FREESCALE_K53_RNGB */ |
wolfSSL | 9:52ec7c02b1e1 | 836 | #define FREESCALE_K70_RNGA |
wolfSSL | 9:52ec7c02b1e1 | 837 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 838 | |
wolfSSL | 9:52ec7c02b1e1 | 839 | /* HW crypto */ |
wolfSSL | 9:52ec7c02b1e1 | 840 | /* automatic enable based on Kinetis feature */ |
wolfSSL | 9:52ec7c02b1e1 | 841 | /* if case manual selection is required, for example for benchmarking purposes, |
wolfSSL | 9:52ec7c02b1e1 | 842 | * just define FREESCALE_USE_MMCAU or FREESCALE_USE_LTC or none of these two macros (for software only) |
wolfSSL | 9:52ec7c02b1e1 | 843 | * both can be enabled simultaneously as LTC has priority over MMCAU in source code. |
wolfSSL | 9:52ec7c02b1e1 | 844 | */ |
wolfSSL | 9:52ec7c02b1e1 | 845 | /* #define FSL_HW_CRYPTO_MANUAL_SELECTION */ |
wolfSSL | 9:52ec7c02b1e1 | 846 | #ifndef FSL_HW_CRYPTO_MANUAL_SELECTION |
wolfSSL | 9:52ec7c02b1e1 | 847 | #if defined(FSL_FEATURE_SOC_MMCAU_COUNT) && FSL_FEATURE_SOC_MMCAU_COUNT |
wolfSSL | 9:52ec7c02b1e1 | 848 | #define FREESCALE_USE_MMCAU |
wolfSSL | 9:52ec7c02b1e1 | 849 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 850 | |
wolfSSL | 9:52ec7c02b1e1 | 851 | #if defined(FSL_FEATURE_SOC_LTC_COUNT) && FSL_FEATURE_SOC_LTC_COUNT |
wolfSSL | 9:52ec7c02b1e1 | 852 | #define FREESCALE_USE_LTC |
wolfSSL | 9:52ec7c02b1e1 | 853 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 854 | #else |
wolfSSL | 9:52ec7c02b1e1 | 855 | /* #define FREESCALE_USE_MMCAU */ |
wolfSSL | 9:52ec7c02b1e1 | 856 | /* #define FREESCALE_USE_LTC */ |
wolfSSL | 9:52ec7c02b1e1 | 857 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 858 | #endif /* FREESCALE_COMMON */ |
wolfSSL | 9:52ec7c02b1e1 | 859 | |
wolfSSL | 12:1a06964c2adb | 860 | /* Classic pre-KSDK mmCAU library */ |
wolfSSL | 12:1a06964c2adb | 861 | #ifdef FREESCALE_USE_MMCAU_CLASSIC |
wolfSSL | 12:1a06964c2adb | 862 | #define FREESCALE_USE_MMCAU |
wolfSSL | 12:1a06964c2adb | 863 | #define FREESCALE_MMCAU_CLASSIC |
wolfSSL | 12:1a06964c2adb | 864 | #define FREESCALE_MMCAU_CLASSIC_SHA |
wolfSSL | 12:1a06964c2adb | 865 | #endif |
wolfSSL | 12:1a06964c2adb | 866 | |
wolfSSL | 12:1a06964c2adb | 867 | /* KSDK mmCAU library */ |
wolfSSL | 9:52ec7c02b1e1 | 868 | #ifdef FREESCALE_USE_MMCAU |
wolfSSL | 9:52ec7c02b1e1 | 869 | /* AES and DES */ |
wolfSSL | 9:52ec7c02b1e1 | 870 | #define FREESCALE_MMCAU |
wolfSSL | 9:52ec7c02b1e1 | 871 | /* MD5, SHA-1 and SHA-256 */ |
wolfSSL | 9:52ec7c02b1e1 | 872 | #define FREESCALE_MMCAU_SHA |
wolfSSL | 9:52ec7c02b1e1 | 873 | #endif /* FREESCALE_USE_MMCAU */ |
wolfSSL | 9:52ec7c02b1e1 | 874 | |
wolfSSL | 9:52ec7c02b1e1 | 875 | #ifdef FREESCALE_USE_LTC |
wolfSSL | 9:52ec7c02b1e1 | 876 | #if defined(FSL_FEATURE_SOC_LTC_COUNT) && FSL_FEATURE_SOC_LTC_COUNT |
wolfSSL | 9:52ec7c02b1e1 | 877 | #define FREESCALE_LTC |
wolfSSL | 9:52ec7c02b1e1 | 878 | #define LTC_BASE LTC0 |
wolfSSL | 9:52ec7c02b1e1 | 879 | |
wolfSSL | 9:52ec7c02b1e1 | 880 | #if defined(FSL_FEATURE_LTC_HAS_DES) && FSL_FEATURE_LTC_HAS_DES |
wolfSSL | 9:52ec7c02b1e1 | 881 | #define FREESCALE_LTC_DES |
wolfSSL | 9:52ec7c02b1e1 | 882 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 883 | |
wolfSSL | 9:52ec7c02b1e1 | 884 | #if defined(FSL_FEATURE_LTC_HAS_GCM) && FSL_FEATURE_LTC_HAS_GCM |
wolfSSL | 9:52ec7c02b1e1 | 885 | #define FREESCALE_LTC_AES_GCM |
wolfSSL | 9:52ec7c02b1e1 | 886 | #endif |
wolfSSL | 10:6c2db0c97d5a | 887 | |
wolfSSL | 9:52ec7c02b1e1 | 888 | #if defined(FSL_FEATURE_LTC_HAS_SHA) && FSL_FEATURE_LTC_HAS_SHA |
wolfSSL | 9:52ec7c02b1e1 | 889 | #define FREESCALE_LTC_SHA |
wolfSSL | 9:52ec7c02b1e1 | 890 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 891 | |
wolfSSL | 9:52ec7c02b1e1 | 892 | #if defined(FSL_FEATURE_LTC_HAS_PKHA) && FSL_FEATURE_LTC_HAS_PKHA |
wolfSSL | 9:52ec7c02b1e1 | 893 | #define FREESCALE_LTC_ECC |
wolfSSL | 9:52ec7c02b1e1 | 894 | #define FREESCALE_LTC_TFM |
wolfSSL | 9:52ec7c02b1e1 | 895 | |
wolfSSL | 9:52ec7c02b1e1 | 896 | /* the LTC PKHA hardware limit is 2048 bits (256 bytes) for integer arithmetic. |
wolfSSL | 9:52ec7c02b1e1 | 897 | the LTC_MAX_INT_BYTES defines the size of local variables that hold big integers. */ |
wolfSSL | 9:52ec7c02b1e1 | 898 | #ifndef LTC_MAX_INT_BYTES |
wolfSSL | 9:52ec7c02b1e1 | 899 | #define LTC_MAX_INT_BYTES (256) |
wolfSSL | 9:52ec7c02b1e1 | 900 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 901 | |
wolfSSL | 10:6c2db0c97d5a | 902 | /* This FREESCALE_LTC_TFM_RSA_4096_ENABLE macro can be defined. |
wolfSSL | 9:52ec7c02b1e1 | 903 | * In such a case both software and hardware algorithm |
wolfSSL | 9:52ec7c02b1e1 | 904 | * for TFM is linked in. The decision for which algorithm is used is determined at runtime |
wolfSSL | 9:52ec7c02b1e1 | 905 | * from size of inputs. If inputs and result can fit into LTC (see LTC_MAX_INT_BYTES) |
wolfSSL | 9:52ec7c02b1e1 | 906 | * then we call hardware algorithm, otherwise we call software algorithm. |
wolfSSL | 10:6c2db0c97d5a | 907 | * |
wolfSSL | 9:52ec7c02b1e1 | 908 | * Chinese reminder theorem is used to break RSA 4096 exponentiations (both public and private key) |
wolfSSL | 9:52ec7c02b1e1 | 909 | * into several computations with 2048-bit modulus and exponents. |
wolfSSL | 9:52ec7c02b1e1 | 910 | */ |
wolfSSL | 9:52ec7c02b1e1 | 911 | /* #define FREESCALE_LTC_TFM_RSA_4096_ENABLE */ |
wolfSSL | 9:52ec7c02b1e1 | 912 | |
wolfSSL | 9:52ec7c02b1e1 | 913 | /* ECC-384, ECC-256, ECC-224 and ECC-192 have been enabled with LTC PKHA acceleration */ |
wolfSSL | 9:52ec7c02b1e1 | 914 | #ifdef HAVE_ECC |
wolfSSL | 9:52ec7c02b1e1 | 915 | #undef ECC_TIMING_RESISTANT |
wolfSSL | 9:52ec7c02b1e1 | 916 | #define ECC_TIMING_RESISTANT |
wolfSSL | 9:52ec7c02b1e1 | 917 | |
wolfSSL | 9:52ec7c02b1e1 | 918 | /* the LTC PKHA hardware limit is 512 bits (64 bytes) for ECC. |
wolfSSL | 10:6c2db0c97d5a | 919 | the LTC_MAX_ECC_BITS defines the size of local variables that hold ECC parameters |
wolfSSL | 9:52ec7c02b1e1 | 920 | and point coordinates */ |
wolfSSL | 9:52ec7c02b1e1 | 921 | #ifndef LTC_MAX_ECC_BITS |
wolfSSL | 9:52ec7c02b1e1 | 922 | #define LTC_MAX_ECC_BITS (384) |
wolfSSL | 9:52ec7c02b1e1 | 923 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 924 | |
wolfSSL | 9:52ec7c02b1e1 | 925 | /* Enable curves up to 384 bits */ |
wolfSSL | 9:52ec7c02b1e1 | 926 | #if !defined(ECC_USER_CURVES) && !defined(HAVE_ALL_CURVES) |
wolfSSL | 9:52ec7c02b1e1 | 927 | #define ECC_USER_CURVES |
wolfSSL | 9:52ec7c02b1e1 | 928 | #define HAVE_ECC192 |
wolfSSL | 9:52ec7c02b1e1 | 929 | #define HAVE_ECC224 |
wolfSSL | 9:52ec7c02b1e1 | 930 | #undef NO_ECC256 |
wolfSSL | 9:52ec7c02b1e1 | 931 | #define HAVE_ECC384 |
wolfSSL | 9:52ec7c02b1e1 | 932 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 933 | |
wolfSSL | 9:52ec7c02b1e1 | 934 | /* enable features */ |
wolfSSL | 9:52ec7c02b1e1 | 935 | #undef HAVE_CURVE25519 |
wolfSSL | 9:52ec7c02b1e1 | 936 | #define HAVE_CURVE25519 |
wolfSSL | 9:52ec7c02b1e1 | 937 | #undef HAVE_ED25519 |
wolfSSL | 9:52ec7c02b1e1 | 938 | #define HAVE_ED25519 |
wolfSSL | 9:52ec7c02b1e1 | 939 | #undef WOLFSSL_SHA512 |
wolfSSL | 9:52ec7c02b1e1 | 940 | #define WOLFSSL_SHA512 |
wolfSSL | 9:52ec7c02b1e1 | 941 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 942 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 943 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 944 | #endif /* FREESCALE_USE_LTC */ |
wolfSSL | 9:52ec7c02b1e1 | 945 | |
wolfSSL | 9:52ec7c02b1e1 | 946 | #ifdef FREESCALE_LTC_TFM_RSA_4096_ENABLE |
wolfSSL | 9:52ec7c02b1e1 | 947 | #undef USE_CERT_BUFFERS_4096 |
wolfSSL | 9:52ec7c02b1e1 | 948 | #define USE_CERT_BUFFERS_4096 |
wolfSSL | 9:52ec7c02b1e1 | 949 | #undef FP_MAX_BITS |
wolfSSL | 9:52ec7c02b1e1 | 950 | #define FP_MAX_BITS (8192) |
wolfSSL | 9:52ec7c02b1e1 | 951 | |
wolfSSL | 9:52ec7c02b1e1 | 952 | #undef NO_DH |
wolfSSL | 9:52ec7c02b1e1 | 953 | #define NO_DH |
wolfSSL | 9:52ec7c02b1e1 | 954 | #undef NO_DSA |
wolfSSL | 9:52ec7c02b1e1 | 955 | #define NO_DSA |
wolfSSL | 9:52ec7c02b1e1 | 956 | #endif /* FREESCALE_LTC_TFM_RSA_4096_ENABLE */ |
wolfSSL | 9:52ec7c02b1e1 | 957 | |
wolfSSL | 9:52ec7c02b1e1 | 958 | /* if LTC has AES engine but doesn't have GCM, use software with LTC AES ECB mode */ |
wolfSSL | 9:52ec7c02b1e1 | 959 | #if defined(FREESCALE_USE_LTC) && !defined(FREESCALE_LTC_AES_GCM) |
wolfSSL | 9:52ec7c02b1e1 | 960 | #define GCM_TABLE |
wolfSSL | 9:52ec7c02b1e1 | 961 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 962 | |
wolfSSL | 9:52ec7c02b1e1 | 963 | #ifdef WOLFSSL_STM32F2 |
wolfSSL | 9:52ec7c02b1e1 | 964 | #define SIZEOF_LONG_LONG 8 |
wolfSSL | 9:52ec7c02b1e1 | 965 | #define NO_DEV_RANDOM |
wolfSSL | 9:52ec7c02b1e1 | 966 | #define NO_WOLFSSL_DIR |
wolfSSL | 9:52ec7c02b1e1 | 967 | #undef NO_RABBIT |
wolfSSL | 9:52ec7c02b1e1 | 968 | #define NO_RABBIT |
wolfSSL | 9:52ec7c02b1e1 | 969 | #undef NO_64BIT |
wolfSSL | 9:52ec7c02b1e1 | 970 | #define NO_64BIT |
wolfSSL | 9:52ec7c02b1e1 | 971 | #define STM32F2_RNG |
wolfSSL | 9:52ec7c02b1e1 | 972 | #define STM32F2_CRYPTO |
wolfSSL | 9:52ec7c02b1e1 | 973 | #if !defined(__GNUC__) && !defined(__ICCARM__) |
wolfSSL | 9:52ec7c02b1e1 | 974 | #define KEIL_INTRINSICS |
wolfSSL | 9:52ec7c02b1e1 | 975 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 976 | #define NO_OLD_RNGNAME |
wolfSSL | 9:52ec7c02b1e1 | 977 | #ifdef WOLFSSL_STM32_CUBEMX |
wolfSSL | 9:52ec7c02b1e1 | 978 | #include "stm32f2xx_hal.h" |
wolfSSL | 10:6c2db0c97d5a | 979 | #ifndef STM32_HAL_TIMEOUT |
wolfSSL | 10:6c2db0c97d5a | 980 | #define STM32_HAL_TIMEOUT 0xFF |
wolfSSL | 10:6c2db0c97d5a | 981 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 982 | #else |
wolfSSL | 9:52ec7c02b1e1 | 983 | #include "stm32f2xx.h" |
wolfSSL | 9:52ec7c02b1e1 | 984 | #include "stm32f2xx_cryp.h" |
wolfSSL | 9:52ec7c02b1e1 | 985 | #include "stm32f2xx_hash.h" |
wolfSSL | 9:52ec7c02b1e1 | 986 | #endif /* WOLFSSL_STM32_CUBEMX */ |
wolfSSL | 9:52ec7c02b1e1 | 987 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 988 | |
wolfSSL | 9:52ec7c02b1e1 | 989 | #ifdef WOLFSSL_STM32F4 |
wolfSSL | 9:52ec7c02b1e1 | 990 | #define SIZEOF_LONG_LONG 8 |
wolfSSL | 9:52ec7c02b1e1 | 991 | #define NO_DEV_RANDOM |
wolfSSL | 9:52ec7c02b1e1 | 992 | #define NO_WOLFSSL_DIR |
wolfSSL | 9:52ec7c02b1e1 | 993 | #undef NO_RABBIT |
wolfSSL | 9:52ec7c02b1e1 | 994 | #define NO_RABBIT |
wolfSSL | 9:52ec7c02b1e1 | 995 | #undef NO_64BIT |
wolfSSL | 9:52ec7c02b1e1 | 996 | #define NO_64BIT |
wolfSSL | 9:52ec7c02b1e1 | 997 | #define STM32F4_RNG |
wolfSSL | 9:52ec7c02b1e1 | 998 | #define STM32F4_CRYPTO |
wolfSSL | 9:52ec7c02b1e1 | 999 | #define NO_OLD_RNGNAME |
wolfSSL | 9:52ec7c02b1e1 | 1000 | #if !defined(__GNUC__) && !defined(__ICCARM__) |
wolfSSL | 9:52ec7c02b1e1 | 1001 | #define KEIL_INTRINSICS |
wolfSSL | 9:52ec7c02b1e1 | 1002 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1003 | #ifdef WOLFSSL_STM32_CUBEMX |
wolfSSL | 9:52ec7c02b1e1 | 1004 | #include "stm32f4xx_hal.h" |
wolfSSL | 10:6c2db0c97d5a | 1005 | #ifndef STM32_HAL_TIMEOUT |
wolfSSL | 10:6c2db0c97d5a | 1006 | #define STM32_HAL_TIMEOUT 0xFF |
wolfSSL | 10:6c2db0c97d5a | 1007 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1008 | #else |
wolfSSL | 9:52ec7c02b1e1 | 1009 | #include "stm32f4xx.h" |
wolfSSL | 9:52ec7c02b1e1 | 1010 | #include "stm32f4xx_cryp.h" |
wolfSSL | 9:52ec7c02b1e1 | 1011 | #include "stm32f4xx_hash.h" |
wolfSSL | 9:52ec7c02b1e1 | 1012 | #endif /* WOLFSSL_STM32_CUBEMX */ |
wolfSSL | 9:52ec7c02b1e1 | 1013 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1014 | |
wolfSSL | 9:52ec7c02b1e1 | 1015 | #ifdef MICRIUM |
wolfSSL | 9:52ec7c02b1e1 | 1016 | |
wolfSSL | 9:52ec7c02b1e1 | 1017 | #include "stdlib.h" |
wolfSSL | 9:52ec7c02b1e1 | 1018 | #include "net_cfg.h" |
wolfSSL | 9:52ec7c02b1e1 | 1019 | #include "ssl_cfg.h" |
wolfSSL | 9:52ec7c02b1e1 | 1020 | #include "net_secure_os.h" |
wolfSSL | 9:52ec7c02b1e1 | 1021 | |
wolfSSL | 9:52ec7c02b1e1 | 1022 | #define WOLFSSL_TYPES |
wolfSSL | 9:52ec7c02b1e1 | 1023 | |
wolfSSL | 9:52ec7c02b1e1 | 1024 | typedef CPU_INT08U byte; |
wolfSSL | 9:52ec7c02b1e1 | 1025 | typedef CPU_INT16U word16; |
wolfSSL | 9:52ec7c02b1e1 | 1026 | typedef CPU_INT32U word32; |
wolfSSL | 9:52ec7c02b1e1 | 1027 | |
wolfSSL | 9:52ec7c02b1e1 | 1028 | #if (NET_SECURE_MGR_CFG_WORD_SIZE == CPU_WORD_SIZE_32) |
wolfSSL | 9:52ec7c02b1e1 | 1029 | #define SIZEOF_LONG 4 |
wolfSSL | 9:52ec7c02b1e1 | 1030 | #undef SIZEOF_LONG_LONG |
wolfSSL | 9:52ec7c02b1e1 | 1031 | #else |
wolfSSL | 9:52ec7c02b1e1 | 1032 | #undef SIZEOF_LONG |
wolfSSL | 9:52ec7c02b1e1 | 1033 | #define SIZEOF_LONG_LONG 8 |
wolfSSL | 9:52ec7c02b1e1 | 1034 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1035 | |
wolfSSL | 9:52ec7c02b1e1 | 1036 | #define STRING_USER |
wolfSSL | 9:52ec7c02b1e1 | 1037 | |
wolfSSL | 9:52ec7c02b1e1 | 1038 | #define XSTRLEN(pstr) ((CPU_SIZE_T)Str_Len((CPU_CHAR *)(pstr))) |
wolfSSL | 9:52ec7c02b1e1 | 1039 | #define XSTRNCPY(pstr_dest, pstr_src, len_max) \ |
wolfSSL | 9:52ec7c02b1e1 | 1040 | ((CPU_CHAR *)Str_Copy_N((CPU_CHAR *)(pstr_dest), \ |
wolfSSL | 9:52ec7c02b1e1 | 1041 | (CPU_CHAR *)(pstr_src), (CPU_SIZE_T)(len_max))) |
wolfSSL | 9:52ec7c02b1e1 | 1042 | #define XSTRNCMP(pstr_1, pstr_2, len_max) \ |
wolfSSL | 9:52ec7c02b1e1 | 1043 | ((CPU_INT16S)Str_Cmp_N((CPU_CHAR *)(pstr_1), \ |
wolfSSL | 9:52ec7c02b1e1 | 1044 | (CPU_CHAR *)(pstr_2), (CPU_SIZE_T)(len_max))) |
wolfSSL | 9:52ec7c02b1e1 | 1045 | #define XSTRSTR(pstr, pstr_srch) \ |
wolfSSL | 9:52ec7c02b1e1 | 1046 | ((CPU_CHAR *)Str_Str((CPU_CHAR *)(pstr), \ |
wolfSSL | 9:52ec7c02b1e1 | 1047 | (CPU_CHAR *)(pstr_srch))) |
wolfSSL | 9:52ec7c02b1e1 | 1048 | #define XMEMSET(pmem, data_val, size) \ |
wolfSSL | 9:52ec7c02b1e1 | 1049 | ((void)Mem_Set((void *)(pmem), (CPU_INT08U) (data_val), \ |
wolfSSL | 9:52ec7c02b1e1 | 1050 | (CPU_SIZE_T)(size))) |
wolfSSL | 9:52ec7c02b1e1 | 1051 | #define XMEMCPY(pdest, psrc, size) ((void)Mem_Copy((void *)(pdest), \ |
wolfSSL | 9:52ec7c02b1e1 | 1052 | (void *)(psrc), (CPU_SIZE_T)(size))) |
wolfSSL | 9:52ec7c02b1e1 | 1053 | #define XMEMCMP(pmem_1, pmem_2, size) \ |
wolfSSL | 9:52ec7c02b1e1 | 1054 | (((CPU_BOOLEAN)Mem_Cmp((void *)(pmem_1), (void *)(pmem_2), \ |
wolfSSL | 9:52ec7c02b1e1 | 1055 | (CPU_SIZE_T)(size))) ? DEF_NO : DEF_YES) |
wolfSSL | 9:52ec7c02b1e1 | 1056 | #define XMEMMOVE XMEMCPY |
wolfSSL | 9:52ec7c02b1e1 | 1057 | |
wolfSSL | 9:52ec7c02b1e1 | 1058 | #if (NET_SECURE_MGR_CFG_EN == DEF_ENABLED) |
wolfSSL | 9:52ec7c02b1e1 | 1059 | #define MICRIUM_MALLOC |
wolfSSL | 9:52ec7c02b1e1 | 1060 | #define XMALLOC(s, h, type) ((void *)NetSecure_BlkGet((CPU_INT08U)(type), \ |
wolfSSL | 9:52ec7c02b1e1 | 1061 | (CPU_SIZE_T)(s), (void *)0)) |
wolfSSL | 9:52ec7c02b1e1 | 1062 | #define XFREE(p, h, type) (NetSecure_BlkFree((CPU_INT08U)(type), \ |
wolfSSL | 9:52ec7c02b1e1 | 1063 | (p), (void *)0)) |
wolfSSL | 9:52ec7c02b1e1 | 1064 | #define XREALLOC(p, n, h, t) realloc((p), (n)) |
wolfSSL | 9:52ec7c02b1e1 | 1065 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1066 | |
wolfSSL | 9:52ec7c02b1e1 | 1067 | #if (NET_SECURE_MGR_CFG_FS_EN == DEF_ENABLED) |
wolfSSL | 9:52ec7c02b1e1 | 1068 | #undef NO_FILESYSTEM |
wolfSSL | 9:52ec7c02b1e1 | 1069 | #else |
wolfSSL | 9:52ec7c02b1e1 | 1070 | #define NO_FILESYSTEM |
wolfSSL | 9:52ec7c02b1e1 | 1071 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1072 | |
wolfSSL | 9:52ec7c02b1e1 | 1073 | #if (SSL_CFG_TRACE_LEVEL == WOLFSSL_TRACE_LEVEL_DBG) |
wolfSSL | 9:52ec7c02b1e1 | 1074 | #define DEBUG_WOLFSSL |
wolfSSL | 9:52ec7c02b1e1 | 1075 | #else |
wolfSSL | 9:52ec7c02b1e1 | 1076 | #undef DEBUG_WOLFSSL |
wolfSSL | 9:52ec7c02b1e1 | 1077 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1078 | |
wolfSSL | 9:52ec7c02b1e1 | 1079 | #if (SSL_CFG_OPENSSL_EN == DEF_ENABLED) |
wolfSSL | 9:52ec7c02b1e1 | 1080 | #define OPENSSL_EXTRA |
wolfSSL | 9:52ec7c02b1e1 | 1081 | #else |
wolfSSL | 9:52ec7c02b1e1 | 1082 | #undef OPENSSL_EXTRA |
wolfSSL | 9:52ec7c02b1e1 | 1083 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1084 | |
wolfSSL | 9:52ec7c02b1e1 | 1085 | #if (SSL_CFG_MULTI_THREAD_EN == DEF_ENABLED) |
wolfSSL | 9:52ec7c02b1e1 | 1086 | #undef SINGLE_THREADED |
wolfSSL | 9:52ec7c02b1e1 | 1087 | #else |
wolfSSL | 9:52ec7c02b1e1 | 1088 | #define SINGLE_THREADED |
wolfSSL | 9:52ec7c02b1e1 | 1089 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1090 | |
wolfSSL | 9:52ec7c02b1e1 | 1091 | #if (SSL_CFG_DH_EN == DEF_ENABLED) |
wolfSSL | 9:52ec7c02b1e1 | 1092 | #undef NO_DH |
wolfSSL | 9:52ec7c02b1e1 | 1093 | #else |
wolfSSL | 9:52ec7c02b1e1 | 1094 | #define NO_DH |
wolfSSL | 9:52ec7c02b1e1 | 1095 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1096 | |
wolfSSL | 9:52ec7c02b1e1 | 1097 | #if (SSL_CFG_DSA_EN == DEF_ENABLED) |
wolfSSL | 9:52ec7c02b1e1 | 1098 | #undef NO_DSA |
wolfSSL | 9:52ec7c02b1e1 | 1099 | #else |
wolfSSL | 9:52ec7c02b1e1 | 1100 | #define NO_DSA |
wolfSSL | 9:52ec7c02b1e1 | 1101 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1102 | |
wolfSSL | 9:52ec7c02b1e1 | 1103 | #if (SSL_CFG_PSK_EN == DEF_ENABLED) |
wolfSSL | 9:52ec7c02b1e1 | 1104 | #undef NO_PSK |
wolfSSL | 9:52ec7c02b1e1 | 1105 | #else |
wolfSSL | 9:52ec7c02b1e1 | 1106 | #define NO_PSK |
wolfSSL | 9:52ec7c02b1e1 | 1107 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1108 | |
wolfSSL | 9:52ec7c02b1e1 | 1109 | #if (SSL_CFG_3DES_EN == DEF_ENABLED) |
wolfSSL | 9:52ec7c02b1e1 | 1110 | #undef NO_DES |
wolfSSL | 9:52ec7c02b1e1 | 1111 | #else |
wolfSSL | 9:52ec7c02b1e1 | 1112 | #define NO_DES |
wolfSSL | 9:52ec7c02b1e1 | 1113 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1114 | |
wolfSSL | 9:52ec7c02b1e1 | 1115 | #if (SSL_CFG_AES_EN == DEF_ENABLED) |
wolfSSL | 9:52ec7c02b1e1 | 1116 | #undef NO_AES |
wolfSSL | 9:52ec7c02b1e1 | 1117 | #else |
wolfSSL | 9:52ec7c02b1e1 | 1118 | #define NO_AES |
wolfSSL | 9:52ec7c02b1e1 | 1119 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1120 | |
wolfSSL | 9:52ec7c02b1e1 | 1121 | #if (SSL_CFG_RC4_EN == DEF_ENABLED) |
wolfSSL | 9:52ec7c02b1e1 | 1122 | #undef NO_RC4 |
wolfSSL | 9:52ec7c02b1e1 | 1123 | #else |
wolfSSL | 9:52ec7c02b1e1 | 1124 | #define NO_RC4 |
wolfSSL | 9:52ec7c02b1e1 | 1125 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1126 | |
wolfSSL | 9:52ec7c02b1e1 | 1127 | #if (SSL_CFG_RABBIT_EN == DEF_ENABLED) |
wolfSSL | 9:52ec7c02b1e1 | 1128 | #undef NO_RABBIT |
wolfSSL | 9:52ec7c02b1e1 | 1129 | #else |
wolfSSL | 9:52ec7c02b1e1 | 1130 | #define NO_RABBIT |
wolfSSL | 9:52ec7c02b1e1 | 1131 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1132 | |
wolfSSL | 9:52ec7c02b1e1 | 1133 | #if (SSL_CFG_HC128_EN == DEF_ENABLED) |
wolfSSL | 9:52ec7c02b1e1 | 1134 | #undef NO_HC128 |
wolfSSL | 9:52ec7c02b1e1 | 1135 | #else |
wolfSSL | 9:52ec7c02b1e1 | 1136 | #define NO_HC128 |
wolfSSL | 9:52ec7c02b1e1 | 1137 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1138 | |
wolfSSL | 9:52ec7c02b1e1 | 1139 | #if (CPU_CFG_ENDIAN_TYPE == CPU_ENDIAN_TYPE_BIG) |
wolfSSL | 9:52ec7c02b1e1 | 1140 | #define BIG_ENDIAN_ORDER |
wolfSSL | 9:52ec7c02b1e1 | 1141 | #else |
wolfSSL | 9:52ec7c02b1e1 | 1142 | #undef BIG_ENDIAN_ORDER |
wolfSSL | 9:52ec7c02b1e1 | 1143 | #define LITTLE_ENDIAN_ORDER |
wolfSSL | 9:52ec7c02b1e1 | 1144 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1145 | |
wolfSSL | 9:52ec7c02b1e1 | 1146 | #if (SSL_CFG_MD4_EN == DEF_ENABLED) |
wolfSSL | 9:52ec7c02b1e1 | 1147 | #undef NO_MD4 |
wolfSSL | 9:52ec7c02b1e1 | 1148 | #else |
wolfSSL | 9:52ec7c02b1e1 | 1149 | #define NO_MD4 |
wolfSSL | 9:52ec7c02b1e1 | 1150 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1151 | |
wolfSSL | 9:52ec7c02b1e1 | 1152 | #if (SSL_CFG_WRITEV_EN == DEF_ENABLED) |
wolfSSL | 9:52ec7c02b1e1 | 1153 | #undef NO_WRITEV |
wolfSSL | 9:52ec7c02b1e1 | 1154 | #else |
wolfSSL | 9:52ec7c02b1e1 | 1155 | #define NO_WRITEV |
wolfSSL | 9:52ec7c02b1e1 | 1156 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1157 | |
wolfSSL | 9:52ec7c02b1e1 | 1158 | #if (SSL_CFG_USER_RNG_SEED_EN == DEF_ENABLED) |
wolfSSL | 9:52ec7c02b1e1 | 1159 | #define NO_DEV_RANDOM |
wolfSSL | 9:52ec7c02b1e1 | 1160 | #else |
wolfSSL | 9:52ec7c02b1e1 | 1161 | #undef NO_DEV_RANDOM |
wolfSSL | 9:52ec7c02b1e1 | 1162 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1163 | |
wolfSSL | 9:52ec7c02b1e1 | 1164 | #if (SSL_CFG_USER_IO_EN == DEF_ENABLED) |
wolfSSL | 9:52ec7c02b1e1 | 1165 | #define WOLFSSL_USER_IO |
wolfSSL | 9:52ec7c02b1e1 | 1166 | #else |
wolfSSL | 9:52ec7c02b1e1 | 1167 | #undef WOLFSSL_USER_IO |
wolfSSL | 9:52ec7c02b1e1 | 1168 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1169 | |
wolfSSL | 9:52ec7c02b1e1 | 1170 | #if (SSL_CFG_DYNAMIC_BUFFERS_EN == DEF_ENABLED) |
wolfSSL | 9:52ec7c02b1e1 | 1171 | #undef LARGE_STATIC_BUFFERS |
wolfSSL | 9:52ec7c02b1e1 | 1172 | #undef STATIC_CHUNKS_ONLY |
wolfSSL | 9:52ec7c02b1e1 | 1173 | #else |
wolfSSL | 9:52ec7c02b1e1 | 1174 | #define LARGE_STATIC_BUFFERS |
wolfSSL | 9:52ec7c02b1e1 | 1175 | #define STATIC_CHUNKS_ONLY |
wolfSSL | 9:52ec7c02b1e1 | 1176 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1177 | |
wolfSSL | 9:52ec7c02b1e1 | 1178 | #if (SSL_CFG_DER_LOAD_EN == DEF_ENABLED) |
wolfSSL | 9:52ec7c02b1e1 | 1179 | #define WOLFSSL_DER_LOAD |
wolfSSL | 9:52ec7c02b1e1 | 1180 | #else |
wolfSSL | 9:52ec7c02b1e1 | 1181 | #undef WOLFSSL_DER_LOAD |
wolfSSL | 9:52ec7c02b1e1 | 1182 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1183 | |
wolfSSL | 9:52ec7c02b1e1 | 1184 | #if (SSL_CFG_DTLS_EN == DEF_ENABLED) |
wolfSSL | 9:52ec7c02b1e1 | 1185 | #define WOLFSSL_DTLS |
wolfSSL | 9:52ec7c02b1e1 | 1186 | #else |
wolfSSL | 9:52ec7c02b1e1 | 1187 | #undef WOLFSSL_DTLS |
wolfSSL | 9:52ec7c02b1e1 | 1188 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1189 | |
wolfSSL | 9:52ec7c02b1e1 | 1190 | #if (SSL_CFG_CALLBACKS_EN == DEF_ENABLED) |
wolfSSL | 9:52ec7c02b1e1 | 1191 | #define WOLFSSL_CALLBACKS |
wolfSSL | 9:52ec7c02b1e1 | 1192 | #else |
wolfSSL | 9:52ec7c02b1e1 | 1193 | #undef WOLFSSL_CALLBACKS |
wolfSSL | 9:52ec7c02b1e1 | 1194 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1195 | |
wolfSSL | 9:52ec7c02b1e1 | 1196 | #if (SSL_CFG_FAST_MATH_EN == DEF_ENABLED) |
wolfSSL | 9:52ec7c02b1e1 | 1197 | #define USE_FAST_MATH |
wolfSSL | 9:52ec7c02b1e1 | 1198 | #else |
wolfSSL | 9:52ec7c02b1e1 | 1199 | #undef USE_FAST_MATH |
wolfSSL | 9:52ec7c02b1e1 | 1200 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1201 | |
wolfSSL | 9:52ec7c02b1e1 | 1202 | #if (SSL_CFG_TFM_TIMING_RESISTANT_EN == DEF_ENABLED) |
wolfSSL | 9:52ec7c02b1e1 | 1203 | #define TFM_TIMING_RESISTANT |
wolfSSL | 9:52ec7c02b1e1 | 1204 | #else |
wolfSSL | 9:52ec7c02b1e1 | 1205 | #undef TFM_TIMING_RESISTANT |
wolfSSL | 9:52ec7c02b1e1 | 1206 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1207 | |
wolfSSL | 9:52ec7c02b1e1 | 1208 | #endif /* MICRIUM */ |
wolfSSL | 9:52ec7c02b1e1 | 1209 | |
wolfSSL | 9:52ec7c02b1e1 | 1210 | |
wolfSSL | 9:52ec7c02b1e1 | 1211 | #ifdef WOLFSSL_QL |
wolfSSL | 9:52ec7c02b1e1 | 1212 | #ifndef WOLFSSL_SEP |
wolfSSL | 9:52ec7c02b1e1 | 1213 | #define WOLFSSL_SEP |
wolfSSL | 9:52ec7c02b1e1 | 1214 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1215 | #ifndef OPENSSL_EXTRA |
wolfSSL | 9:52ec7c02b1e1 | 1216 | #define OPENSSL_EXTRA |
wolfSSL | 9:52ec7c02b1e1 | 1217 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1218 | #ifndef SESSION_CERTS |
wolfSSL | 9:52ec7c02b1e1 | 1219 | #define SESSION_CERTS |
wolfSSL | 9:52ec7c02b1e1 | 1220 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1221 | #ifndef HAVE_AESCCM |
wolfSSL | 9:52ec7c02b1e1 | 1222 | #define HAVE_AESCCM |
wolfSSL | 9:52ec7c02b1e1 | 1223 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1224 | #ifndef ATOMIC_USER |
wolfSSL | 9:52ec7c02b1e1 | 1225 | #define ATOMIC_USER |
wolfSSL | 9:52ec7c02b1e1 | 1226 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1227 | #ifndef WOLFSSL_DER_LOAD |
wolfSSL | 9:52ec7c02b1e1 | 1228 | #define WOLFSSL_DER_LOAD |
wolfSSL | 9:52ec7c02b1e1 | 1229 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1230 | #ifndef KEEP_PEER_CERT |
wolfSSL | 9:52ec7c02b1e1 | 1231 | #define KEEP_PEER_CERT |
wolfSSL | 9:52ec7c02b1e1 | 1232 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1233 | #ifndef HAVE_ECC |
wolfSSL | 9:52ec7c02b1e1 | 1234 | #define HAVE_ECC |
wolfSSL | 9:52ec7c02b1e1 | 1235 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1236 | #ifndef SESSION_INDEX |
wolfSSL | 9:52ec7c02b1e1 | 1237 | #define SESSION_INDEX |
wolfSSL | 9:52ec7c02b1e1 | 1238 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1239 | #endif /* WOLFSSL_QL */ |
wolfSSL | 9:52ec7c02b1e1 | 1240 | |
wolfSSL | 9:52ec7c02b1e1 | 1241 | |
wolfSSL | 12:1a06964c2adb | 1242 | #if defined(WOLFSSL_XILINX) |
wolfSSL | 12:1a06964c2adb | 1243 | #define USER_TIME /* XTIME in asn.c */ |
wolfSSL | 12:1a06964c2adb | 1244 | #define NO_WOLFSSL_DIR |
wolfSSL | 12:1a06964c2adb | 1245 | #define NO_DEV_RANDOM |
wolfSSL | 12:1a06964c2adb | 1246 | #define HAVE_AESGCM |
wolfSSL | 12:1a06964c2adb | 1247 | #endif |
wolfSSL | 12:1a06964c2adb | 1248 | |
wolfSSL | 12:1a06964c2adb | 1249 | #if defined(WOLFSSL_XILINX_CRYPT) |
wolfSSL | 12:1a06964c2adb | 1250 | #if defined(WOLFSSL_ARMASM) |
wolfSSL | 12:1a06964c2adb | 1251 | #error can not use both ARMv8 instructions and XILINX hardened crypto |
wolfSSL | 12:1a06964c2adb | 1252 | #endif |
wolfSSL | 12:1a06964c2adb | 1253 | #if defined(WOLFSSL_SHA3) |
wolfSSL | 12:1a06964c2adb | 1254 | /* only SHA3-384 is supported */ |
wolfSSL | 12:1a06964c2adb | 1255 | #undef WOLFSSL_NOSHA3_224 |
wolfSSL | 12:1a06964c2adb | 1256 | #undef WOLFSSL_NOSHA3_256 |
wolfSSL | 12:1a06964c2adb | 1257 | #undef WOLFSSL_NOSHA3_512 |
wolfSSL | 12:1a06964c2adb | 1258 | #define WOLFSSL_NOSHA3_224 |
wolfSSL | 12:1a06964c2adb | 1259 | #define WOLFSSL_NOSHA3_256 |
wolfSSL | 12:1a06964c2adb | 1260 | #define WOLFSSL_NOSHA3_512 |
wolfSSL | 12:1a06964c2adb | 1261 | #endif |
wolfSSL | 12:1a06964c2adb | 1262 | #endif /*(WOLFSSL_XILINX_CRYPT)*/ |
wolfSSL | 12:1a06964c2adb | 1263 | |
wolfSSL | 9:52ec7c02b1e1 | 1264 | #if !defined(XMALLOC_USER) && !defined(MICRIUM_MALLOC) && \ |
wolfSSL | 10:6c2db0c97d5a | 1265 | !defined(WOLFSSL_LEANPSK) && !defined(NO_WOLFSSL_MEMORY) && \ |
wolfSSL | 10:6c2db0c97d5a | 1266 | !defined(XMALLOC_OVERRIDE) |
wolfSSL | 9:52ec7c02b1e1 | 1267 | #define USE_WOLFSSL_MEMORY |
wolfSSL | 9:52ec7c02b1e1 | 1268 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1269 | |
wolfSSL | 9:52ec7c02b1e1 | 1270 | |
wolfSSL | 9:52ec7c02b1e1 | 1271 | #if defined(OPENSSL_EXTRA) && !defined(NO_CERTS) |
wolfSSL | 9:52ec7c02b1e1 | 1272 | #undef KEEP_PEER_CERT |
wolfSSL | 9:52ec7c02b1e1 | 1273 | #define KEEP_PEER_CERT |
wolfSSL | 9:52ec7c02b1e1 | 1274 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1275 | |
wolfSSL | 9:52ec7c02b1e1 | 1276 | |
wolfSSL | 9:52ec7c02b1e1 | 1277 | /* stream ciphers except arc4 need 32bit alignment, intel ok without */ |
wolfSSL | 9:52ec7c02b1e1 | 1278 | #ifndef XSTREAM_ALIGN |
wolfSSL | 9:52ec7c02b1e1 | 1279 | #if defined(__x86_64__) || defined(__ia64__) || defined(__i386__) |
wolfSSL | 9:52ec7c02b1e1 | 1280 | #define NO_XSTREAM_ALIGN |
wolfSSL | 9:52ec7c02b1e1 | 1281 | #else |
wolfSSL | 9:52ec7c02b1e1 | 1282 | #define XSTREAM_ALIGN |
wolfSSL | 9:52ec7c02b1e1 | 1283 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1284 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1285 | |
wolfSSL | 10:6c2db0c97d5a | 1286 | /* write dup cannot be used with secure renegotiation because write dup |
wolfSSL | 10:6c2db0c97d5a | 1287 | * make write side write only and read side read only */ |
wolfSSL | 10:6c2db0c97d5a | 1288 | #if defined(HAVE_WRITE_DUP) && defined(HAVE_SECURE_RENEGOTIATION) |
wolfSSL | 10:6c2db0c97d5a | 1289 | #error "WRITE DUP and SECURE RENEGOTIATION cannot both be on" |
wolfSSL | 10:6c2db0c97d5a | 1290 | #endif |
wolfSSL | 10:6c2db0c97d5a | 1291 | |
wolfSSL | 9:52ec7c02b1e1 | 1292 | #ifdef WOLFSSL_SGX |
wolfSSL | 12:1a06964c2adb | 1293 | #ifdef _MSC_VER |
wolfSSL | 12:1a06964c2adb | 1294 | #define WOLFCRYPT_ONLY |
wolfSSL | 12:1a06964c2adb | 1295 | #define NO_RC4 |
wolfSSL | 12:1a06964c2adb | 1296 | #define NO_DES3 |
wolfSSL | 12:1a06964c2adb | 1297 | #define NO_SHA |
wolfSSL | 12:1a06964c2adb | 1298 | #define NO_MD5 |
wolfSSL | 12:1a06964c2adb | 1299 | #else |
wolfSSL | 12:1a06964c2adb | 1300 | #define HAVE_ECC |
wolfSSL | 12:1a06964c2adb | 1301 | #define ECC_TIMING_RESISTANT |
wolfSSL | 12:1a06964c2adb | 1302 | #define TFM_TIMING_RESISTANT |
wolfSSL | 12:1a06964c2adb | 1303 | #define NO_FILESYSTEM |
wolfSSL | 12:1a06964c2adb | 1304 | #define NO_WRITEV |
wolfSSL | 12:1a06964c2adb | 1305 | #define NO_MAIN_DRIVER |
wolfSSL | 12:1a06964c2adb | 1306 | #define USER_TICKS |
wolfSSL | 12:1a06964c2adb | 1307 | #define WOLFSSL_LOG_PRINTF |
wolfSSL | 12:1a06964c2adb | 1308 | #define WOLFSSL_DH_CONST |
wolfSSL | 12:1a06964c2adb | 1309 | #endif /* _MSC_VER */ |
wolfSSL | 12:1a06964c2adb | 1310 | #ifndef NO_RSA |
wolfSSL | 12:1a06964c2adb | 1311 | #define WC_RSA_BLINDING |
wolfSSL | 12:1a06964c2adb | 1312 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1313 | #define SINGLE_THREADED |
wolfSSL | 9:52ec7c02b1e1 | 1314 | #define NO_ASN_TIME /* can not use headers such as windows.h */ |
wolfSSL | 9:52ec7c02b1e1 | 1315 | #define HAVE_AESGCM |
wolfSSL | 9:52ec7c02b1e1 | 1316 | #define USE_CERT_BUFFERS_2048 |
wolfSSL | 9:52ec7c02b1e1 | 1317 | #define USE_FAST_MATH |
wolfSSL | 9:52ec7c02b1e1 | 1318 | #endif /* WOLFSSL_SGX */ |
wolfSSL | 9:52ec7c02b1e1 | 1319 | |
wolfSSL | 9:52ec7c02b1e1 | 1320 | /* FreeScale MMCAU hardware crypto has 4 byte alignment. |
wolfSSL | 12:1a06964c2adb | 1321 | However, KSDK fsl_mmcau.h gives API with no alignment |
wolfSSL | 12:1a06964c2adb | 1322 | requirements (4 byte alignment is managed internally by fsl_mmcau.c) */ |
wolfSSL | 9:52ec7c02b1e1 | 1323 | #ifdef FREESCALE_MMCAU |
wolfSSL | 12:1a06964c2adb | 1324 | #ifdef FREESCALE_MMCAU_CLASSIC |
wolfSSL | 12:1a06964c2adb | 1325 | #define WOLFSSL_MMCAU_ALIGNMENT 4 |
wolfSSL | 12:1a06964c2adb | 1326 | #else |
wolfSSL | 12:1a06964c2adb | 1327 | #define WOLFSSL_MMCAU_ALIGNMENT 0 |
wolfSSL | 12:1a06964c2adb | 1328 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1329 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1330 | |
wolfSSL | 9:52ec7c02b1e1 | 1331 | /* if using hardware crypto and have alignment requirements, specify the |
wolfSSL | 9:52ec7c02b1e1 | 1332 | requirement here. The record header of SSL/TLS will prevent easy alignment. |
wolfSSL | 9:52ec7c02b1e1 | 1333 | This hint tries to help as much as possible. */ |
wolfSSL | 9:52ec7c02b1e1 | 1334 | #ifndef WOLFSSL_GENERAL_ALIGNMENT |
wolfSSL | 9:52ec7c02b1e1 | 1335 | #ifdef WOLFSSL_AESNI |
wolfSSL | 9:52ec7c02b1e1 | 1336 | #define WOLFSSL_GENERAL_ALIGNMENT 16 |
wolfSSL | 9:52ec7c02b1e1 | 1337 | #elif defined(XSTREAM_ALIGN) |
wolfSSL | 9:52ec7c02b1e1 | 1338 | #define WOLFSSL_GENERAL_ALIGNMENT 4 |
wolfSSL | 12:1a06964c2adb | 1339 | #elif defined(FREESCALE_MMCAU) || defined(FREESCALE_MMCAU_CLASSIC) |
wolfSSL | 9:52ec7c02b1e1 | 1340 | #define WOLFSSL_GENERAL_ALIGNMENT WOLFSSL_MMCAU_ALIGNMENT |
wolfSSL | 9:52ec7c02b1e1 | 1341 | #else |
wolfSSL | 9:52ec7c02b1e1 | 1342 | #define WOLFSSL_GENERAL_ALIGNMENT 0 |
wolfSSL | 9:52ec7c02b1e1 | 1343 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1344 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1345 | |
wolfSSL | 9:52ec7c02b1e1 | 1346 | #if defined(WOLFSSL_GENERAL_ALIGNMENT) && (WOLFSSL_GENERAL_ALIGNMENT > 0) |
wolfSSL | 9:52ec7c02b1e1 | 1347 | #if defined(_MSC_VER) |
wolfSSL | 9:52ec7c02b1e1 | 1348 | #define XGEN_ALIGN __declspec(align(WOLFSSL_GENERAL_ALIGNMENT)) |
wolfSSL | 9:52ec7c02b1e1 | 1349 | #elif defined(__GNUC__) |
wolfSSL | 9:52ec7c02b1e1 | 1350 | #define XGEN_ALIGN __attribute__((aligned(WOLFSSL_GENERAL_ALIGNMENT))) |
wolfSSL | 9:52ec7c02b1e1 | 1351 | #else |
wolfSSL | 9:52ec7c02b1e1 | 1352 | #define XGEN_ALIGN |
wolfSSL | 9:52ec7c02b1e1 | 1353 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1354 | #else |
wolfSSL | 9:52ec7c02b1e1 | 1355 | #define XGEN_ALIGN |
wolfSSL | 9:52ec7c02b1e1 | 1356 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1357 | |
wolfSSL | 9:52ec7c02b1e1 | 1358 | #ifdef HAVE_CRL |
wolfSSL | 9:52ec7c02b1e1 | 1359 | /* not widely supported yet */ |
wolfSSL | 9:52ec7c02b1e1 | 1360 | #undef NO_SKID |
wolfSSL | 9:52ec7c02b1e1 | 1361 | #define NO_SKID |
wolfSSL | 9:52ec7c02b1e1 | 1362 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1363 | |
wolfSSL | 9:52ec7c02b1e1 | 1364 | |
wolfSSL | 9:52ec7c02b1e1 | 1365 | #ifdef __INTEL_COMPILER |
wolfSSL | 9:52ec7c02b1e1 | 1366 | #pragma warning(disable:2259) /* explicit casts to smaller sizes, disable */ |
wolfSSL | 9:52ec7c02b1e1 | 1367 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1368 | |
wolfSSL | 9:52ec7c02b1e1 | 1369 | /* user can specify what curves they want with ECC_USER_CURVES otherwise |
wolfSSL | 9:52ec7c02b1e1 | 1370 | * all curves are on by default for now */ |
wolfSSL | 9:52ec7c02b1e1 | 1371 | #ifndef ECC_USER_CURVES |
wolfSSL | 9:52ec7c02b1e1 | 1372 | #ifndef HAVE_ALL_CURVES |
wolfSSL | 9:52ec7c02b1e1 | 1373 | #define HAVE_ALL_CURVES |
wolfSSL | 9:52ec7c02b1e1 | 1374 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1375 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1376 | |
wolfSSL | 9:52ec7c02b1e1 | 1377 | /* ECC Configs */ |
wolfSSL | 9:52ec7c02b1e1 | 1378 | #ifdef HAVE_ECC |
wolfSSL | 9:52ec7c02b1e1 | 1379 | /* By default enable Sign, Verify, DHE, Key Import and Key Export unless explicitly disabled */ |
wolfSSL | 9:52ec7c02b1e1 | 1380 | #ifndef NO_ECC_SIGN |
wolfSSL | 9:52ec7c02b1e1 | 1381 | #undef HAVE_ECC_SIGN |
wolfSSL | 9:52ec7c02b1e1 | 1382 | #define HAVE_ECC_SIGN |
wolfSSL | 9:52ec7c02b1e1 | 1383 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1384 | #ifndef NO_ECC_VERIFY |
wolfSSL | 9:52ec7c02b1e1 | 1385 | #undef HAVE_ECC_VERIFY |
wolfSSL | 9:52ec7c02b1e1 | 1386 | #define HAVE_ECC_VERIFY |
wolfSSL | 9:52ec7c02b1e1 | 1387 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1388 | #ifndef NO_ECC_DHE |
wolfSSL | 9:52ec7c02b1e1 | 1389 | #undef HAVE_ECC_DHE |
wolfSSL | 9:52ec7c02b1e1 | 1390 | #define HAVE_ECC_DHE |
wolfSSL | 9:52ec7c02b1e1 | 1391 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1392 | #ifndef NO_ECC_KEY_IMPORT |
wolfSSL | 9:52ec7c02b1e1 | 1393 | #undef HAVE_ECC_KEY_IMPORT |
wolfSSL | 9:52ec7c02b1e1 | 1394 | #define HAVE_ECC_KEY_IMPORT |
wolfSSL | 9:52ec7c02b1e1 | 1395 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1396 | #ifndef NO_ECC_KEY_EXPORT |
wolfSSL | 9:52ec7c02b1e1 | 1397 | #undef HAVE_ECC_KEY_EXPORT |
wolfSSL | 9:52ec7c02b1e1 | 1398 | #define HAVE_ECC_KEY_EXPORT |
wolfSSL | 9:52ec7c02b1e1 | 1399 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1400 | #endif /* HAVE_ECC */ |
wolfSSL | 9:52ec7c02b1e1 | 1401 | |
wolfSSL | 9:52ec7c02b1e1 | 1402 | /* Curve255519 Configs */ |
wolfSSL | 9:52ec7c02b1e1 | 1403 | #ifdef HAVE_CURVE25519 |
wolfSSL | 9:52ec7c02b1e1 | 1404 | /* By default enable shared secret, key export and import */ |
wolfSSL | 9:52ec7c02b1e1 | 1405 | #ifndef NO_CURVE25519_SHARED_SECRET |
wolfSSL | 9:52ec7c02b1e1 | 1406 | #undef HAVE_CURVE25519_SHARED_SECRET |
wolfSSL | 9:52ec7c02b1e1 | 1407 | #define HAVE_CURVE25519_SHARED_SECRET |
wolfSSL | 9:52ec7c02b1e1 | 1408 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1409 | #ifndef NO_CURVE25519_KEY_EXPORT |
wolfSSL | 9:52ec7c02b1e1 | 1410 | #undef HAVE_CURVE25519_KEY_EXPORT |
wolfSSL | 9:52ec7c02b1e1 | 1411 | #define HAVE_CURVE25519_KEY_EXPORT |
wolfSSL | 9:52ec7c02b1e1 | 1412 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1413 | #ifndef NO_CURVE25519_KEY_IMPORT |
wolfSSL | 9:52ec7c02b1e1 | 1414 | #undef HAVE_CURVE25519_KEY_IMPORT |
wolfSSL | 9:52ec7c02b1e1 | 1415 | #define HAVE_CURVE25519_KEY_IMPORT |
wolfSSL | 9:52ec7c02b1e1 | 1416 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1417 | #endif /* HAVE_CURVE25519 */ |
wolfSSL | 9:52ec7c02b1e1 | 1418 | |
wolfSSL | 9:52ec7c02b1e1 | 1419 | /* Ed255519 Configs */ |
wolfSSL | 9:52ec7c02b1e1 | 1420 | #ifdef HAVE_ED25519 |
wolfSSL | 9:52ec7c02b1e1 | 1421 | /* By default enable sign, verify, key export and import */ |
wolfSSL | 9:52ec7c02b1e1 | 1422 | #ifndef NO_ED25519_SIGN |
wolfSSL | 9:52ec7c02b1e1 | 1423 | #undef HAVE_ED25519_SIGN |
wolfSSL | 9:52ec7c02b1e1 | 1424 | #define HAVE_ED25519_SIGN |
wolfSSL | 9:52ec7c02b1e1 | 1425 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1426 | #ifndef NO_ED25519_VERIFY |
wolfSSL | 9:52ec7c02b1e1 | 1427 | #undef HAVE_ED25519_VERIFY |
wolfSSL | 9:52ec7c02b1e1 | 1428 | #define HAVE_ED25519_VERIFY |
wolfSSL | 9:52ec7c02b1e1 | 1429 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1430 | #ifndef NO_ED25519_KEY_EXPORT |
wolfSSL | 9:52ec7c02b1e1 | 1431 | #undef HAVE_ED25519_KEY_EXPORT |
wolfSSL | 9:52ec7c02b1e1 | 1432 | #define HAVE_ED25519_KEY_EXPORT |
wolfSSL | 9:52ec7c02b1e1 | 1433 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1434 | #ifndef NO_ED25519_KEY_IMPORT |
wolfSSL | 9:52ec7c02b1e1 | 1435 | #undef HAVE_ED25519_KEY_IMPORT |
wolfSSL | 9:52ec7c02b1e1 | 1436 | #define HAVE_ED25519_KEY_IMPORT |
wolfSSL | 9:52ec7c02b1e1 | 1437 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1438 | #endif /* HAVE_ED25519 */ |
wolfSSL | 9:52ec7c02b1e1 | 1439 | |
wolfSSL | 9:52ec7c02b1e1 | 1440 | /* AES Config */ |
wolfSSL | 9:52ec7c02b1e1 | 1441 | #ifndef NO_AES |
wolfSSL | 9:52ec7c02b1e1 | 1442 | /* By default enable all AES key sizes, decryption and CBC */ |
wolfSSL | 9:52ec7c02b1e1 | 1443 | #ifndef AES_MAX_KEY_SIZE |
wolfSSL | 9:52ec7c02b1e1 | 1444 | #undef AES_MAX_KEY_SIZE |
wolfSSL | 9:52ec7c02b1e1 | 1445 | #define AES_MAX_KEY_SIZE 256 |
wolfSSL | 9:52ec7c02b1e1 | 1446 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1447 | #ifndef NO_AES_DECRYPT |
wolfSSL | 9:52ec7c02b1e1 | 1448 | #undef HAVE_AES_DECRYPT |
wolfSSL | 9:52ec7c02b1e1 | 1449 | #define HAVE_AES_DECRYPT |
wolfSSL | 9:52ec7c02b1e1 | 1450 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1451 | #ifndef NO_AES_CBC |
wolfSSL | 9:52ec7c02b1e1 | 1452 | #undef HAVE_AES_CBC |
wolfSSL | 9:52ec7c02b1e1 | 1453 | #define HAVE_AES_CBC |
wolfSSL | 9:52ec7c02b1e1 | 1454 | #else |
wolfSSL | 9:52ec7c02b1e1 | 1455 | #ifndef WOLFCRYPT_ONLY |
wolfSSL | 9:52ec7c02b1e1 | 1456 | #error "AES CBC is required for TLS and can only be disabled for WOLFCRYPT_ONLY builds" |
wolfSSL | 9:52ec7c02b1e1 | 1457 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1458 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1459 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1460 | |
wolfSSL | 9:52ec7c02b1e1 | 1461 | /* if desktop type system and fastmath increase default max bits */ |
wolfSSL | 9:52ec7c02b1e1 | 1462 | #ifdef WOLFSSL_X86_64_BUILD |
wolfSSL | 9:52ec7c02b1e1 | 1463 | #ifdef USE_FAST_MATH |
wolfSSL | 9:52ec7c02b1e1 | 1464 | #ifndef FP_MAX_BITS |
wolfSSL | 9:52ec7c02b1e1 | 1465 | #define FP_MAX_BITS 8192 |
wolfSSL | 9:52ec7c02b1e1 | 1466 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1467 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1468 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1469 | |
wolfSSL | 9:52ec7c02b1e1 | 1470 | /* If using the max strength build, ensure OLD TLS is disabled. */ |
wolfSSL | 9:52ec7c02b1e1 | 1471 | #ifdef WOLFSSL_MAX_STRENGTH |
wolfSSL | 9:52ec7c02b1e1 | 1472 | #undef NO_OLD_TLS |
wolfSSL | 9:52ec7c02b1e1 | 1473 | #define NO_OLD_TLS |
wolfSSL | 9:52ec7c02b1e1 | 1474 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1475 | |
wolfSSL | 9:52ec7c02b1e1 | 1476 | |
wolfSSL | 9:52ec7c02b1e1 | 1477 | /* Default AES minimum auth tag sz, allow user to override */ |
wolfSSL | 9:52ec7c02b1e1 | 1478 | #ifndef WOLFSSL_MIN_AUTH_TAG_SZ |
wolfSSL | 9:52ec7c02b1e1 | 1479 | #define WOLFSSL_MIN_AUTH_TAG_SZ 12 |
wolfSSL | 9:52ec7c02b1e1 | 1480 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1481 | |
wolfSSL | 9:52ec7c02b1e1 | 1482 | |
wolfSSL | 9:52ec7c02b1e1 | 1483 | /* sniffer requires: |
wolfSSL | 9:52ec7c02b1e1 | 1484 | * static RSA cipher suites |
wolfSSL | 9:52ec7c02b1e1 | 1485 | * session stats and peak stats |
wolfSSL | 9:52ec7c02b1e1 | 1486 | */ |
wolfSSL | 9:52ec7c02b1e1 | 1487 | #ifdef WOLFSSL_SNIFFER |
wolfSSL | 9:52ec7c02b1e1 | 1488 | #ifndef WOLFSSL_STATIC_RSA |
wolfSSL | 9:52ec7c02b1e1 | 1489 | #define WOLFSSL_STATIC_RSA |
wolfSSL | 9:52ec7c02b1e1 | 1490 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1491 | #ifndef WOLFSSL_SESSION_STATS |
wolfSSL | 9:52ec7c02b1e1 | 1492 | #define WOLFSSL_SESSION_STATS |
wolfSSL | 9:52ec7c02b1e1 | 1493 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1494 | #ifndef WOLFSSL_PEAK_SESSIONS |
wolfSSL | 9:52ec7c02b1e1 | 1495 | #define WOLFSSL_PEAK_SESSIONS |
wolfSSL | 9:52ec7c02b1e1 | 1496 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1497 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1498 | |
wolfSSL | 9:52ec7c02b1e1 | 1499 | /* Decode Public Key extras on by default, user can turn off with |
wolfSSL | 9:52ec7c02b1e1 | 1500 | * WOLFSSL_NO_DECODE_EXTRA */ |
wolfSSL | 9:52ec7c02b1e1 | 1501 | #ifndef WOLFSSL_NO_DECODE_EXTRA |
wolfSSL | 9:52ec7c02b1e1 | 1502 | #ifndef RSA_DECODE_EXTRA |
wolfSSL | 9:52ec7c02b1e1 | 1503 | #define RSA_DECODE_EXTRA |
wolfSSL | 9:52ec7c02b1e1 | 1504 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1505 | #ifndef ECC_DECODE_EXTRA |
wolfSSL | 9:52ec7c02b1e1 | 1506 | #define ECC_DECODE_EXTRA |
wolfSSL | 9:52ec7c02b1e1 | 1507 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1508 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1509 | |
wolfSSL | 9:52ec7c02b1e1 | 1510 | /* C Sharp wrapper defines */ |
wolfSSL | 9:52ec7c02b1e1 | 1511 | #ifdef HAVE_CSHARP |
wolfSSL | 9:52ec7c02b1e1 | 1512 | #ifndef WOLFSSL_DTLS |
wolfSSL | 9:52ec7c02b1e1 | 1513 | #define WOLFSSL_DTLS |
wolfSSL | 9:52ec7c02b1e1 | 1514 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1515 | #undef NO_PSK |
wolfSSL | 9:52ec7c02b1e1 | 1516 | #undef NO_SHA256 |
wolfSSL | 9:52ec7c02b1e1 | 1517 | #undef NO_DH |
wolfSSL | 9:52ec7c02b1e1 | 1518 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1519 | |
wolfSSL | 9:52ec7c02b1e1 | 1520 | /* Asynchronous Crypto */ |
wolfSSL | 9:52ec7c02b1e1 | 1521 | #ifdef WOLFSSL_ASYNC_CRYPT |
wolfSSL | 9:52ec7c02b1e1 | 1522 | /* Make sure wolf events are enabled */ |
wolfSSL | 9:52ec7c02b1e1 | 1523 | #undef HAVE_WOLF_EVENT |
wolfSSL | 9:52ec7c02b1e1 | 1524 | #define HAVE_WOLF_EVENT |
wolfSSL | 9:52ec7c02b1e1 | 1525 | |
wolfSSL | 10:6c2db0c97d5a | 1526 | #ifdef WOLFSSL_ASYNC_CRYPT_TEST |
wolfSSL | 10:6c2db0c97d5a | 1527 | #define WC_ASYNC_DEV_SIZE 320+24 |
wolfSSL | 10:6c2db0c97d5a | 1528 | #else |
wolfSSL | 10:6c2db0c97d5a | 1529 | #define WC_ASYNC_DEV_SIZE 320 |
wolfSSL | 10:6c2db0c97d5a | 1530 | #endif |
wolfSSL | 10:6c2db0c97d5a | 1531 | |
wolfSSL | 9:52ec7c02b1e1 | 1532 | #if !defined(HAVE_CAVIUM) && !defined(HAVE_INTEL_QA) && \ |
wolfSSL | 9:52ec7c02b1e1 | 1533 | !defined(WOLFSSL_ASYNC_CRYPT_TEST) |
wolfSSL | 9:52ec7c02b1e1 | 1534 | #error No async hardware defined with WOLFSSL_ASYNC_CRYPT! |
wolfSSL | 9:52ec7c02b1e1 | 1535 | #endif |
wolfSSL | 10:6c2db0c97d5a | 1536 | |
wolfSSL | 10:6c2db0c97d5a | 1537 | /* Enable ECC_CACHE_CURVE for ASYNC */ |
wolfSSL | 10:6c2db0c97d5a | 1538 | #if !defined(ECC_CACHE_CURVE) |
wolfSSL | 10:6c2db0c97d5a | 1539 | #define ECC_CACHE_CURVE |
wolfSSL | 10:6c2db0c97d5a | 1540 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1541 | #endif /* WOLFSSL_ASYNC_CRYPT */ |
wolfSSL | 10:6c2db0c97d5a | 1542 | #ifndef WC_ASYNC_DEV_SIZE |
wolfSSL | 10:6c2db0c97d5a | 1543 | #define WC_ASYNC_DEV_SIZE 0 |
wolfSSL | 10:6c2db0c97d5a | 1544 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1545 | |
wolfSSL | 9:52ec7c02b1e1 | 1546 | /* leantls checks */ |
wolfSSL | 9:52ec7c02b1e1 | 1547 | #ifdef WOLFSSL_LEANTLS |
wolfSSL | 9:52ec7c02b1e1 | 1548 | #ifndef HAVE_ECC |
wolfSSL | 9:52ec7c02b1e1 | 1549 | #error leantls build needs ECC |
wolfSSL | 9:52ec7c02b1e1 | 1550 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1551 | #endif /* WOLFSSL_LEANTLS*/ |
wolfSSL | 9:52ec7c02b1e1 | 1552 | |
wolfSSL | 9:52ec7c02b1e1 | 1553 | /* restriction with static memory */ |
wolfSSL | 9:52ec7c02b1e1 | 1554 | #ifdef WOLFSSL_STATIC_MEMORY |
wolfSSL | 9:52ec7c02b1e1 | 1555 | #if defined(HAVE_IO_POOL) || defined(XMALLOC_USER) || defined(NO_WOLFSSL_MEMORY) |
wolfSSL | 9:52ec7c02b1e1 | 1556 | #error static memory cannot be used with HAVE_IO_POOL, XMALLOC_USER or NO_WOLFSSL_MEMORY |
wolfSSL | 9:52ec7c02b1e1 | 1557 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1558 | #if !defined(USE_FAST_MATH) && !defined(NO_BIG_INT) |
wolfSSL | 9:52ec7c02b1e1 | 1559 | #error static memory requires fast math please define USE_FAST_MATH |
wolfSSL | 9:52ec7c02b1e1 | 1560 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1561 | #ifdef WOLFSSL_SMALL_STACK |
wolfSSL | 9:52ec7c02b1e1 | 1562 | #error static memory does not support small stack please undefine |
wolfSSL | 9:52ec7c02b1e1 | 1563 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1564 | #endif /* WOLFSSL_STATIC_MEMORY */ |
wolfSSL | 9:52ec7c02b1e1 | 1565 | |
wolfSSL | 9:52ec7c02b1e1 | 1566 | #ifdef HAVE_AES_KEYWRAP |
wolfSSL | 9:52ec7c02b1e1 | 1567 | #ifndef WOLFSSL_AES_DIRECT |
wolfSSL | 9:52ec7c02b1e1 | 1568 | #error AES key wrap requires AES direct please define WOLFSSL_AES_DIRECT |
wolfSSL | 9:52ec7c02b1e1 | 1569 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1570 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1571 | |
wolfSSL | 9:52ec7c02b1e1 | 1572 | #ifdef HAVE_PKCS7 |
wolfSSL | 9:52ec7c02b1e1 | 1573 | #ifndef HAVE_AES_KEYWRAP |
wolfSSL | 9:52ec7c02b1e1 | 1574 | #error PKCS7 requires AES key wrap please define HAVE_AES_KEYWRAP |
wolfSSL | 9:52ec7c02b1e1 | 1575 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1576 | #ifndef HAVE_X963_KDF |
wolfSSL | 9:52ec7c02b1e1 | 1577 | #error PKCS7 requires X963 KDF please define HAVE_X963_KDF |
wolfSSL | 9:52ec7c02b1e1 | 1578 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1579 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1580 | |
wolfSSL | 10:6c2db0c97d5a | 1581 | #if !defined(WOLFCRYPT_ONLY) && !defined(NO_OLD_TLS) && \ |
wolfSSL | 10:6c2db0c97d5a | 1582 | (defined(NO_SHA) || defined(NO_MD5)) |
wolfSSL | 10:6c2db0c97d5a | 1583 | #error old TLS requires MD5 and SHA |
wolfSSL | 10:6c2db0c97d5a | 1584 | #endif |
wolfSSL | 10:6c2db0c97d5a | 1585 | |
wolfSSL | 10:6c2db0c97d5a | 1586 | /* for backwards compatibility */ |
wolfSSL | 10:6c2db0c97d5a | 1587 | #if defined(TEST_IPV6) && !defined(WOLFSSL_IPV6) |
wolfSSL | 10:6c2db0c97d5a | 1588 | #define WOLFSSL_IPV6 |
wolfSSL | 10:6c2db0c97d5a | 1589 | #endif |
wolfSSL | 10:6c2db0c97d5a | 1590 | |
wolfSSL | 9:52ec7c02b1e1 | 1591 | |
wolfSSL | 9:52ec7c02b1e1 | 1592 | /* Place any other flags or defines here */ |
wolfSSL | 9:52ec7c02b1e1 | 1593 | |
wolfSSL | 9:52ec7c02b1e1 | 1594 | #if defined(WOLFSSL_MYSQL_COMPATIBLE) && defined(_WIN32) \ |
wolfSSL | 9:52ec7c02b1e1 | 1595 | && defined(HAVE_GMTIME_R) |
wolfSSL | 9:52ec7c02b1e1 | 1596 | #undef HAVE_GMTIME_R /* don't trust macro with windows */ |
wolfSSL | 9:52ec7c02b1e1 | 1597 | #endif /* WOLFSSL_MYSQL_COMPATIBLE */ |
wolfSSL | 9:52ec7c02b1e1 | 1598 | |
wolfSSL | 10:6c2db0c97d5a | 1599 | #if defined(WOLFSSL_NGINX) || defined(WOLFSSL_HAPROXY) |
wolfSSL | 10:6c2db0c97d5a | 1600 | #define SSL_OP_NO_COMPRESSION SSL_OP_NO_COMPRESSION |
wolfSSL | 10:6c2db0c97d5a | 1601 | #define OPENSSL_NO_ENGINE |
wolfSSL | 10:6c2db0c97d5a | 1602 | #define X509_CHECK_FLAG_ALWAYS_CHECK_SUBJECT |
wolfSSL | 10:6c2db0c97d5a | 1603 | #ifndef OPENSSL_EXTRA |
wolfSSL | 10:6c2db0c97d5a | 1604 | #define OPENSSL_EXTRA |
wolfSSL | 10:6c2db0c97d5a | 1605 | #endif |
wolfSSL | 10:6c2db0c97d5a | 1606 | #ifndef HAVE_SESSION_TICKET |
wolfSSL | 10:6c2db0c97d5a | 1607 | #define HAVE_SESSION_TICKET |
wolfSSL | 10:6c2db0c97d5a | 1608 | #endif |
wolfSSL | 10:6c2db0c97d5a | 1609 | #ifndef HAVE_OCSP |
wolfSSL | 10:6c2db0c97d5a | 1610 | #define HAVE_OCSP |
wolfSSL | 10:6c2db0c97d5a | 1611 | #endif |
wolfSSL | 10:6c2db0c97d5a | 1612 | #ifndef KEEP_OUR_CERT |
wolfSSL | 10:6c2db0c97d5a | 1613 | #define KEEP_OUR_CERT |
wolfSSL | 10:6c2db0c97d5a | 1614 | #endif |
wolfSSL | 10:6c2db0c97d5a | 1615 | #ifndef HAVE_SNI |
wolfSSL | 10:6c2db0c97d5a | 1616 | #define HAVE_SNI |
wolfSSL | 10:6c2db0c97d5a | 1617 | #endif |
wolfSSL | 10:6c2db0c97d5a | 1618 | #endif |
wolfSSL | 10:6c2db0c97d5a | 1619 | |
wolfSSL | 10:6c2db0c97d5a | 1620 | #if defined(WOLFSSL_NGINX) |
wolfSSL | 10:6c2db0c97d5a | 1621 | #define SSL_CTRL_SET_TLSEXT_HOSTNAME |
wolfSSL | 10:6c2db0c97d5a | 1622 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1623 | |
wolfSSL | 12:1a06964c2adb | 1624 | /* both CURVE and ED small math should be enabled */ |
wolfSSL | 12:1a06964c2adb | 1625 | #ifdef CURVED25519_SMALL |
wolfSSL | 12:1a06964c2adb | 1626 | #define CURVE25519_SMALL |
wolfSSL | 12:1a06964c2adb | 1627 | #define ED25519_SMALL |
wolfSSL | 12:1a06964c2adb | 1628 | #endif |
wolfSSL | 12:1a06964c2adb | 1629 | |
wolfSSL | 12:1a06964c2adb | 1630 | |
wolfSSL | 12:1a06964c2adb | 1631 | #ifndef WOLFSSL_ALERT_COUNT_MAX |
wolfSSL | 12:1a06964c2adb | 1632 | #define WOLFSSL_ALERT_COUNT_MAX 5 |
wolfSSL | 12:1a06964c2adb | 1633 | #endif |
wolfSSL | 12:1a06964c2adb | 1634 | |
wolfSSL | 12:1a06964c2adb | 1635 | /* warning for not using harden build options (default with ./configure) */ |
wolfSSL | 12:1a06964c2adb | 1636 | #ifndef WC_NO_HARDEN |
wolfSSL | 12:1a06964c2adb | 1637 | #if (defined(USE_FAST_MATH) && !defined(TFM_TIMING_RESISTANT)) || \ |
wolfSSL | 12:1a06964c2adb | 1638 | (defined(HAVE_ECC) && !defined(ECC_TIMING_RESISTANT)) || \ |
wolfSSL | 12:1a06964c2adb | 1639 | (!defined(NO_RSA) && !defined(WC_RSA_BLINDING) && !defined(HAVE_FIPS)) |
wolfSSL | 12:1a06964c2adb | 1640 | |
wolfSSL | 12:1a06964c2adb | 1641 | #ifndef _MSC_VER |
wolfSSL | 12:1a06964c2adb | 1642 | #warning "For timing resistance / side-channel attack prevention consider using harden options" |
wolfSSL | 12:1a06964c2adb | 1643 | #else |
wolfSSL | 12:1a06964c2adb | 1644 | #pragma message("Warning: For timing resistance / side-channel attack prevention consider using harden options") |
wolfSSL | 12:1a06964c2adb | 1645 | #endif |
wolfSSL | 12:1a06964c2adb | 1646 | #endif |
wolfSSL | 12:1a06964c2adb | 1647 | #endif |
wolfSSL | 12:1a06964c2adb | 1648 | |
wolfSSL | 9:52ec7c02b1e1 | 1649 | #ifdef __cplusplus |
wolfSSL | 9:52ec7c02b1e1 | 1650 | } /* extern "C" */ |
wolfSSL | 9:52ec7c02b1e1 | 1651 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1652 | |
wolfSSL | 9:52ec7c02b1e1 | 1653 | #endif |
wolfSSL | 9:52ec7c02b1e1 | 1654 |