27 #ifndef WOLF_CRYPT_SETTINGS_H 28 #define WOLF_CRYPT_SETTINGS_H 37 #ifdef EXTERNAL_OPTS_OPENVPN 38 #include <wolfssl/options.h> 212 #include <wolfssl/wolfcrypt/visibility.h> 214 #ifdef WOLFSSL_USER_SETTINGS 215 #include "user_settings.h" 221 #if !defined(HAVE_FIPS_VERSION) || (HAVE_FIPS_VERSION < 2) 224 #ifndef WOLFSSL_STM32L4 229 #undef WC_RSA_BLINDING 233 #if defined(_WIN32) && !defined(_M_X64) && \ 234 defined(HAVE_AESGCM) && defined(WOLFSSL_AESNI) 241 #define AES_GCM_AESNI_NO_UNROLL 245 #define SIZEOF_LONG_LONG 8 249 #define SIZEOF_LONG_LONG 8 253 #ifdef NEED_THREADX_TYPES 259 #if defined(WOLFSSL_ESPIDF) 263 #define SIZEOF_LONG_LONG 8 264 #define NO_WOLFSSL_DIR 265 #define WOLFSSL_NO_CURRDIR 267 #define TFM_TIMING_RESISTANT 268 #define ECC_TIMING_RESISTANT 269 #define WC_RSA_BLINDING 271 #if defined(WOLFSSL_ESPWROOM32) || defined(WOLFSSL_ESPWROOM32SE) 272 #ifndef NO_ESP32WROOM32_CRYPT 273 #define WOLFSSL_ESP32WROOM32_CRYPT 274 #if defined(ESP32_USE_RSA_PRIMITIVE) && \ 275 !defined(NO_WOLFSSL_ESP32WROOM32_CRYPT_RSA_PRI) 276 #define WOLFSSL_ESP32WROOM32_CRYPT_RSA_PRI 277 #define USE_FAST_MATH 278 #define WOLFSSL_SMALL_STACK 284 #if defined(WOLFSSL_RENESAS_TSIP) 285 #define TSIP_TLS_HMAC_KEY_INDEX_WORDSIZE 64 286 #define TSIP_TLS_MASTERSECRET_SIZE 80 287 #define TSIP_TLS_ENCPUBKEY_SZ_BY_CERTVRFY 560 288 #if !defined(NO_RENESAS_TSIP_CRYPT) && defined(WOLFSSL_RENESAS_RX65N) 289 #define WOLFSSL_RENESAS_TSIP_CRYPT 290 #define WOLFSSL_RENESAS_TSIP_TLS 291 #define WOLFSSL_RENESAS_TSIP_TLS_AES_CRYPT 295 #if defined(WOLFSSL_RENESAS_RA6M3G) 299 #if defined(HAVE_LWIP_NATIVE) 302 #define SINGLE_THREADED 303 #define WOLFSSL_USER_IO 304 #define NO_FILESYSTEM 307 #if defined(WOLFSSL_CONTIKI) 310 #define NO_WOLFSSL_MEMORY 312 #define SINGLE_THREADED 313 #define WOLFSSL_USER_IO 314 #define NO_FILESYSTEM 315 #define CUSTOM_RAND_TYPE uint16_t 316 #define CUSTOM_RAND_GENERATE random_rand 317 static inline word32 LowResTimer(
void)
319 return clock_seconds();
323 #if defined(WOLFSSL_IAR_ARM) || defined(WOLFSSL_ROWLEY_ARM) 324 #define NO_MAIN_DRIVER 325 #define SINGLE_THREADED 326 #if !defined(USE_CERT_BUFFERS_2048) && !defined(USE_CERT_BUFFERS_4096) 327 #define USE_CERT_BUFFERS_1024 329 #define BENCH_EMBEDDED 330 #define NO_FILESYSTEM 332 #define WOLFSSL_USER_IO 333 #define BENCH_EMBEDDED 336 #ifdef MICROCHIP_PIC32 338 #define SIZEOF_LONG_LONG 8 339 #define SINGLE_THREADED 340 #define WOLFSSL_USER_IO 342 #define NO_DEV_RANDOM 343 #define NO_FILESYSTEM 344 #define USE_FAST_MATH 345 #define TFM_TIMING_RESISTANT 346 #define WOLFSSL_HAVE_MIN 347 #define WOLFSSL_HAVE_MAX 351 #ifdef WOLFSSL_MICROCHIP_PIC32MZ 352 #ifndef NO_PIC32MZ_CRYPT 353 #define WOLFSSL_PIC32MZ_CRYPT 355 #ifndef NO_PIC32MZ_RNG 356 #define WOLFSSL_PIC32MZ_RNG 358 #ifndef NO_PIC32MZ_HASH 359 #define WOLFSSL_PIC32MZ_HASH 363 #ifdef MICROCHIP_TCPIP_V5 365 #include "TCPIP Stack/TCPIP.h" 368 #ifdef MICROCHIP_TCPIP 370 #ifdef MICROCHIP_MPLAB_HARMONY 371 #include "tcpip/tcpip.h" 373 #include "system/system_services.h" 374 #include "tcpip/sntp.h" 379 #define WOLFSSL_USER_IO 380 #define NO_FILESYSTEM 382 #if !defined(USE_CERT_BUFFERS_2048) && !defined(USE_CERT_BUFFERS_4096) 383 #define USE_CERT_BUFFERS_1024 386 #define NO_DEV_RANDOM 394 #define NO_SESSION_CACHE 395 #define WOLFSSL_CMSIS_RTOS 400 #define FREESCALE_MQX 401 #define FREESCALE_MMCAU 402 #define SINGLE_THREADED 403 #define NO_STDIO_FILESYSTEM 404 #define WOLFSSL_LEANPSK 405 #define HAVE_NULL_CIPHER 420 #define NO_SESSION_CACHE 421 #define NO_MAIN_DRIVER 424 #ifdef WOLFSSL_PICOTCP 426 #define errno pico_err 428 #include "pico_defines.h" 429 #include "pico_stack.h" 430 #include "pico_constants.h" 431 #include "pico_protocol.h" 432 #define CUSTOM_RAND_GENERATE pico_rand 435 #ifdef WOLFSSL_PICOTCP_DEMO 436 #define WOLFSSL_STM32 437 #define USE_FAST_MATH 438 #define TFM_TIMING_RESISTANT 439 #define XMALLOC(s, h, type) PICO_ZALLOC((s)) 440 #define XFREE(p, h, type) PICO_FREE((p)) 441 #define SINGLE_THREADED 443 #define WOLFSSL_USER_IO 444 #define NO_DEV_RANDOM 445 #define NO_FILESYSTEM 448 #ifdef FREERTOS_WINSIM 450 #define USE_WINDOWS_API 454 #ifdef WOLFSSL_VXWORKS 461 #define WOLFSSL_HAVE_MIN 462 #define WOLFSSL_HAVE_MAX 463 #define USE_FAST_MATH 464 #define TFM_TIMING_RESISTANT 465 #define NO_MAIN_DRIVER 466 #define NO_DEV_RANDOM 468 #define HAVE_STRINGS_H 472 #ifdef WOLFSSL_ARDUINO 474 #define NO_WOLFSSL_DIR 475 #define SINGLE_THREADED 476 #define NO_DEV_RANDOM 477 #ifndef INTEL_GALILEO 478 #define TIME_OVERRIDES 480 #error "Must define XTIME externally see porting guide" 481 #error "https://www.wolfssl.com/docs/porting-guide/" 484 #error "Must define XGMTIME externally see porting guide" 485 #error "https://www.wolfssl.com/docs/porting-guide/" 488 #define WOLFSSL_USER_IO 491 #define NO_SESSION_CACHE 495 #ifdef WOLFSSL_UTASKER 499 #define SINGLE_THREADED 500 #define NO_WOLFSSL_DIR 501 #define WOLFSSL_HAVE_MIN 506 #define USE_FAST_MATH 507 #define TFM_TIMING_RESISTANT 508 #define ECC_TIMING_RESISTANT 511 #define NO_MAIN_DRIVER 512 #define USE_CERT_BUFFERS_2048 516 #define WOLFSSL_USER_IO 519 #define NO_FILESYSTEM 522 #define CUSTOM_RAND_GENERATE fnRandom 523 #define CUSTOM_RAND_TYPE unsigned short 528 #error XTIME must be defined in wolfSSL settings.h 534 #define XMEMCPY(d,s,l) uMemcpy((d),(s),(l)) 535 #define XMEMSET(b,c,l) uMemset((b),(c),(l)) 536 #define XMEMCMP(s1,s2,n) uMemcmp((s1),(s2),(n)) 537 #define XMEMMOVE(d,s,l) memmove((d),(s),(l)) 539 #define XSTRLEN(s1) uStrlen((s1)) 540 #define XSTRNCPY(s1,s2,n) strncpy((s1),(s2),(n)) 541 #define XSTRSTR(s1,s2) strstr((s1),(s2)) 542 #define XSTRNSTR(s1,s2,n) mystrnstr((s1),(s2),(n)) 543 #define XSTRNCMP(s1,s2,n) strncmp((s1),(s2),(n)) 544 #define XSTRNCAT(s1,s2,n) strncat((s1),(s2),(n)) 545 #define XSTRNCASECMP(s1,s2,n) _strnicmp((s1),(s2),(n)) 546 #if defined(WOLFSSL_CERT_EXT) || defined(OPENSSL_EXTRA) \ 547 || defined(HAVE_ALPN) 548 #define XSTRTOK strtok_r 553 #define NO_FILESYSTEM 554 #define USE_CERT_BUFFERS_2048 555 #define NO_MAIN_DRIVER 557 #define SINGLE_THREADED 560 #ifdef WOLFSSL_RIOT_OS 563 #define NO_FILESYSTEM 564 #define USE_CERT_BUFFERS_2048 565 #if defined(WOLFSSL_GNRC) && !defined(WOLFSSL_DTLS) 570 #ifdef WOLFSSL_CHIBIOS 572 #include "wolfssl_chibios.h" 577 #undef WOLFSSL_NUCLEUS 578 #define WOLFSSL_NUCLEUS_1_2 581 #ifdef WOLFSSL_NUCLEUS_1_2 583 #define NO_WOLFSSL_DIR 585 #if !defined(NO_ASN_TIME) && !defined(USER_TIME) 586 #error User must define XTIME, see manual 589 #if !defined(XMALLOC_OVERRIDE) && !defined(XMALLOC_USER) 590 extern void* nucleus_malloc(
unsigned long size,
void* heap,
int type);
591 extern void* nucleus_realloc(
void* ptr,
unsigned long size,
void* heap,
593 extern void nucleus_free(
void* ptr,
void* heap,
int type);
595 #define XMALLOC(s, h, type) nucleus_malloc((s), (h), (type)) 596 #define XREALLOC(p, n, h, t) nucleus_realloc((p), (n), (h), (t)) 597 #define XFREE(p, h, type) nucleus_free((p), (h), (type)) 602 #define SIZEOF_LONG 4 603 #define SIZEOF_LONG_LONG 8 605 #define NO_DEV_RANDOM 606 #define NO_FILESYSTEM 607 #define NO_MAIN_DRIVER 609 #define SINGLE_THREADED 610 #define USE_FAST_MATH 611 #define TFM_TIMING_RESISTANT 612 #define USE_WOLFSSL_MEMORY 613 #define WOLFSSL_NRF51 614 #define WOLFSSL_USER_IO 615 #define NO_SESSION_CACHE 619 #if defined(_WIN32) && !defined(MICRIUM) && !defined(FREERTOS) && \ 620 !defined(FREERTOS_TCP) && !defined(EBSNET) && !defined(WOLFSSL_EROAD) && \ 621 !defined(WOLFSSL_UTASKER) && !defined(INTIME_RTOS) 622 #define USE_WINDOWS_API 625 #if defined(WOLFSSL_uITRON4) 629 #define ITRON_POOL_SIZE 1024*20 630 extern int uITRON4_minit(
size_t poolsz) ;
631 extern void *uITRON4_malloc(
size_t sz) ;
632 extern void *uITRON4_realloc(
void *p,
size_t sz) ;
633 extern void uITRON4_free(
void *p) ;
635 #define XMALLOC(sz, heap, type) uITRON4_malloc(sz) 636 #define XREALLOC(p, sz, heap, type) uITRON4_realloc(p, sz) 637 #define XFREE(p, heap, type) uITRON4_free(p) 640 #if defined(WOLFSSL_uTKERNEL2) 641 #ifndef NO_TKERNEL_MEM_POOL 642 #define XMALLOC_OVERRIDE 643 int uTKernel_init_mpool(
unsigned int sz);
644 void* uTKernel_malloc(
unsigned int sz);
645 void* uTKernel_realloc(
void *p,
unsigned int sz);
646 void uTKernel_free(
void *p);
647 #define XMALLOC(s, h, type) uTKernel_malloc((s)) 648 #define XREALLOC(p, n, h, t) uTKernel_realloc((p), (n)) 649 #define XFREE(p, h, type) uTKernel_free((p)) 652 #ifndef NO_STDIO_FGETS_REMAP 654 #include "tm/tmonitor.h" 657 static char* fgets(
char *buff,
int sz, XFILE fp) {
676 #if defined(WOLFSSL_LEANPSK) && !defined(XMALLOC_USER) && \ 677 !defined(NO_WOLFSSL_MEMORY) 679 #define XMALLOC(s, h, type) malloc((s)) 680 #define XFREE(p, h, type) free((p)) 681 #define XREALLOC(p, n, h, t) realloc((p), (n)) 684 #if defined(XMALLOC_USER) && defined(SSN_BUILDING_LIBYASSL) 686 #define XMALLOC yaXMALLOC 688 #define XFREE yaXFREE 690 #define XREALLOC yaXREALLOC 695 #include "FreeRTOS.h" 697 #if !defined(XMALLOC_USER) && !defined(NO_WOLFSSL_MEMORY) && \ 698 !defined(WOLFSSL_STATIC_MEMORY) 699 #define XMALLOC(s, h, type) pvPortMalloc((s)) 700 #define XFREE(p, h, type) vPortFree((p)) 704 #if !defined(USE_FAST_MATH) || defined(HAVE_ED25519) || defined(HAVE_ED448) 705 #if defined(WOLFSSL_ESPIDF) 708 #define XREALLOC(p, n, h, t) realloc((p), (n)) 710 #define XREALLOC(p, n, h, t) pvPortRealloc((p), (n)) 733 #ifndef SINGLE_THREADED 739 #if !defined(NO_WOLFSSL_MEMORY) && !defined(XMALLOC_USER) && \ 740 !defined(WOLFSSL_STATIC_MEMORY) 741 #define XMALLOC(s, h, type) pvPortMalloc((s)) 742 #define XFREE(p, h, type) vPortFree((p)) 745 #define WOLFSSL_GENSEED_FORTEST 747 #define NO_WOLFSSL_DIR 749 #define USE_FAST_MATH 750 #define TFM_TIMING_RESISTANT 751 #define NO_MAIN_DRIVER 754 #ifdef WOLFSSL_TIRTOS 755 #define SIZEOF_LONG_LONG 8 757 #define NO_WOLFSSL_DIR 758 #define USE_FAST_MATH 759 #define TFM_TIMING_RESISTANT 760 #define ECC_TIMING_RESISTANT 761 #define WC_RSA_BLINDING 762 #define NO_DEV_RANDOM 763 #define NO_FILESYSTEM 764 #define USE_CERT_BUFFERS_2048 765 #define NO_ERROR_STRINGS 770 #define USE_WOLF_STRTOK 771 #define HAVE_TLS_EXTENSIONS 773 #ifdef WOLFSSL_TI_CRYPT 774 #define NO_GCM_ENCRYPT_EXTRA 775 #define NO_PUBLIC_GCM_SET_IV 776 #define NO_PUBLIC_CCM_SET_NONCE 778 #define HAVE_SUPPORTED_CURVES 781 #ifdef __IAR_SYSTEMS_ICC__ 782 #pragma diag_suppress=Pa089 783 #elif !defined(__GNUC__) 785 #pragma diag_suppress=11 788 #include <ti/sysbios/hal/Seconds.h> 795 #define NO_WOLFSSL_DIR 798 #define SINGLE_THREADED 802 #if (!RTP_LITTLE_ENDIAN) 803 #define BIG_ENDIAN_ORDER 806 #if (!KS_LITTLE_ENDIAN) 807 #define BIG_ENDIAN_ORDER 813 #define SIZEOF_LONG_LONG 8 815 #error settings.h - please implement SIZEOF_LONG and SIZEOF_LONG_LONG 818 #define XMALLOC(s, h, type) ((void *)rtp_malloc((s), SSL_PRO_MALLOC)) 819 #define XFREE(p, h, type) (rtp_free(p)) 820 #define XREALLOC(p, n, h, t) (rtp_realloc((p), (n))) 823 #define XSTRNCASECMP(s1,s2,n) _strnicmp((s1),(s2),(n)) 825 #sslpro: settings.h - please implement XSTRNCASECMP - needed for HAVE_ECC 828 #define WOLFSSL_HAVE_MAX 829 #define WOLFSSL_HAVE_MIN 831 #define USE_FAST_MATH 832 #define TFM_TIMING_RESISTANT 833 #define WC_RSA_BLINDING 834 #define ECC_TIMING_RESISTANT 840 #ifdef WOLFSSL_GAME_BUILD 841 #define SIZEOF_LONG_LONG 8 842 #if defined(__PPU) || defined(__XENON) 843 #define BIG_ENDIAN_ORDER 848 #define HAVE_WEBSERVER 849 #define SIZEOF_LONG_LONG 8 850 #define WOLFSSL_LOW_MEMORY 858 #define NO_DEV_RANDOM 859 #define NO_WOLFSSL_DIR 861 #ifndef NO_FILESYSTEM 863 #include "inc/hw_types.h" 868 #define WOLFSSL_SAFERTOS 869 #if defined(__IAR_SYSTEMS_ICC__) 871 #pragma diag_suppress=Pa089 875 #ifdef WOLFSSL_SAFERTOS 876 #ifndef SINGLE_THREADED 877 #include "SafeRTOS/semphr.h" 879 #ifndef WOLFSSL_NO_MALLOC 880 #include "SafeRTOS/heap.h" 882 #if !defined(XMALLOC_USER) && !defined(NO_WOLFSSL_MEMORY) && \ 883 !defined(WOLFSSL_STATIC_MEMORY) 884 #define XMALLOC(s, h, type) pvPortMalloc((s)) 885 #define XFREE(p, h, type) vPortFree((p)) 889 #if !defined(USE_FAST_MATH) || defined(HAVE_ED25519) || defined(HAVE_ED448) 890 #define XREALLOC(p, n, h, t) pvPortRealloc((p), (n)) 894 #ifdef WOLFSSL_LOW_MEMORY 897 #undef WOLFSSL_SMALL_STACK 898 #define WOLFSSL_SMALL_STACK 899 #undef TFM_TIMING_RESISTANT 900 #define TFM_TIMING_RESISTANT 903 #ifdef FREESCALE_MQX_5_0 905 #define FREESCALE_MQX 908 #ifdef FREESCALE_MQX_4_0 910 #define FREESCALE_MQX 914 #define FREESCALE_COMMON 916 #ifndef NO_FILESYSTEM 918 #if (defined(MQX_USE_IO_OLD) && MQX_USE_IO_OLD) || \ 919 defined(FREESCALE_MQX_5_0) 921 #define NO_STDIO_FILESYSTEM 926 #ifndef SINGLE_THREADED 930 #if !defined(XMALLOC_OVERRIDE) && !defined(XMALLOC_USER) 931 #define XMALLOC_OVERRIDE 932 #define XMALLOC(s, h, t) (void *)_mem_alloc_system((s)) 933 #define XFREE(p, h, t) {void* xp = (p); if ((xp)) _mem_free((xp));} 938 #ifdef FREESCALE_KSDK_MQX 939 #define FREESCALE_COMMON 941 #ifndef NO_FILESYSTEM 942 #if (defined(MQX_USE_IO_OLD) && MQX_USE_IO_OLD) || \ 943 defined(FREESCALE_MQX_5_0) 950 #ifndef SINGLE_THREADED 954 #define XMALLOC(s, h, t) (void *)_mem_alloc_system((s)) 955 #define XFREE(p, h, t) {void* xp = (p); if ((xp)) _mem_free((xp));} 956 #define XREALLOC(p, n, h, t) _mem_realloc((p), (n)) 958 #define MQX_FILE_PTR FILE * 959 #define IO_SEEK_SET SEEK_SET 960 #define IO_SEEK_END SEEK_END 963 #if defined(FREESCALE_FREE_RTOS) || defined(FREESCALE_KSDK_FREERTOS) 964 #define NO_FILESYSTEM 965 #define WOLFSSL_CRYPT_HW_MUTEX 1 967 #if !defined(XMALLOC_USER) && !defined(NO_WOLFSSL_MEMORY) 968 #define XMALLOC(s, h, type) pvPortMalloc((s)) 969 #define XFREE(p, h, type) vPortFree((p)) 978 #define FREESCALE_FREE_RTOS 979 #define FREERTOS_SOCKET_ERROR ( -1 ) 980 #define FREERTOS_EWOULDBLOCK ( -2 ) 981 #define FREERTOS_EINVAL ( -4 ) 982 #define FREERTOS_EADDRNOTAVAIL ( -5 ) 983 #define FREERTOS_EADDRINUSE ( -6 ) 984 #define FREERTOS_ENOBUFS ( -7 ) 985 #define FREERTOS_ENOPROTOOPT ( -8 ) 988 #ifdef FREESCALE_KSDK_BM 989 #define FREESCALE_COMMON 990 #define WOLFSSL_USER_IO 991 #define SINGLE_THREADED 992 #define NO_FILESYSTEM 993 #ifndef TIME_OVERRIDES 998 #ifdef FREESCALE_COMMON 999 #define SIZEOF_LONG_LONG 8 1004 #undef NO_DEV_RANDOM 1005 #define NO_DEV_RANDOM 1008 #undef NO_WOLFSSL_DIR 1009 #define NO_WOLFSSL_DIR 1014 #undef USE_FAST_MATH 1015 #define USE_FAST_MATH 1017 #define USE_CERT_BUFFERS_2048 1018 #define BENCH_EMBEDDED 1020 #define TFM_TIMING_RESISTANT 1021 #define ECC_TIMING_RESISTANT 1030 #undef WOLFSSL_AES_COUNTER 1031 #define WOLFSSL_AES_COUNTER 1032 #undef WOLFSSL_AES_DIRECT 1033 #define WOLFSSL_AES_DIRECT 1036 #ifdef FREESCALE_KSDK_1_3 1037 #include "fsl_device_registers.h" 1038 #elif !defined(FREESCALE_MQX) 1040 #include "fsl_common.h" 1044 #define NO_OLD_RNGNAME 1045 #if defined(FSL_FEATURE_SOC_TRNG_COUNT) && (FSL_FEATURE_SOC_TRNG_COUNT > 0) 1046 #define FREESCALE_KSDK_2_0_TRNG 1047 #elif defined(FSL_FEATURE_SOC_RNG_COUNT) && (FSL_FEATURE_SOC_RNG_COUNT > 0) 1048 #ifdef FREESCALE_KSDK_1_3 1049 #include "fsl_rnga_driver.h" 1050 #define FREESCALE_RNGA 1051 #define RNGA_INSTANCE (0) 1053 #define FREESCALE_KSDK_2_0_RNGA 1055 #elif !defined(FREESCALE_KSDK_BM) && !defined(FREESCALE_FREE_RTOS) && !defined(FREESCALE_KSDK_FREERTOS) 1056 #define FREESCALE_RNGA 1057 #define RNGA_INSTANCE (0) 1060 #define FREESCALE_K70_RNGA 1070 #ifndef FSL_HW_CRYPTO_MANUAL_SELECTION 1071 #if defined(FSL_FEATURE_SOC_MMCAU_COUNT) && FSL_FEATURE_SOC_MMCAU_COUNT 1072 #define FREESCALE_USE_MMCAU 1075 #if defined(FSL_FEATURE_SOC_LTC_COUNT) && FSL_FEATURE_SOC_LTC_COUNT 1076 #define FREESCALE_USE_LTC 1085 #ifdef FREESCALE_USE_MMCAU_CLASSIC 1086 #define FREESCALE_USE_MMCAU 1087 #define FREESCALE_MMCAU_CLASSIC 1088 #define FREESCALE_MMCAU_CLASSIC_SHA 1092 #ifdef FREESCALE_USE_MMCAU 1094 #define FREESCALE_MMCAU 1096 #define FREESCALE_MMCAU_SHA 1099 #ifdef FREESCALE_USE_LTC 1100 #if defined(FSL_FEATURE_SOC_LTC_COUNT) && FSL_FEATURE_SOC_LTC_COUNT 1101 #define FREESCALE_LTC 1102 #define LTC_BASE LTC0 1104 #if defined(FSL_FEATURE_LTC_HAS_DES) && FSL_FEATURE_LTC_HAS_DES 1105 #define FREESCALE_LTC_DES 1108 #if defined(FSL_FEATURE_LTC_HAS_GCM) && FSL_FEATURE_LTC_HAS_GCM 1109 #define FREESCALE_LTC_AES_GCM 1112 #if defined(FSL_FEATURE_LTC_HAS_SHA) && FSL_FEATURE_LTC_HAS_SHA 1113 #define FREESCALE_LTC_SHA 1116 #if defined(FSL_FEATURE_LTC_HAS_PKHA) && FSL_FEATURE_LTC_HAS_PKHA 1117 #define FREESCALE_LTC_ECC 1118 #define FREESCALE_LTC_TFM 1122 #ifndef LTC_MAX_INT_BYTES 1123 #define LTC_MAX_INT_BYTES (256) 1139 #undef ECC_TIMING_RESISTANT 1140 #define ECC_TIMING_RESISTANT 1145 #ifndef LTC_MAX_ECC_BITS 1146 #define LTC_MAX_ECC_BITS (384) 1150 #if !defined(ECC_USER_CURVES) && !defined(HAVE_ALL_CURVES) 1151 #define ECC_USER_CURVES 1162 #ifdef FREESCALE_LTC_TFM_RSA_4096_ENABLE 1163 #undef USE_CERT_BUFFERS_4096 1164 #define USE_CERT_BUFFERS_4096 1166 #define FP_MAX_BITS (8192) 1175 #if defined(FREESCALE_USE_LTC) && !defined(FREESCALE_LTC_AES_GCM) 1179 #if defined(WOLFSSL_STM32F2) || defined(WOLFSSL_STM32F4) || \ 1180 defined(WOLFSSL_STM32F7) || defined(WOLFSSL_STM32F1) || \ 1181 defined(WOLFSSL_STM32L4) 1183 #define SIZEOF_LONG_LONG 8 1187 #define NO_DEV_RANDOM 1188 #define NO_WOLFSSL_DIR 1191 #ifndef NO_STM32_RNG 1194 #ifdef WOLFSSL_STM32F427_RNG 1195 #include "stm32f427xx.h" 1198 #ifndef NO_STM32_CRYPTO 1200 #define STM32_CRYPTO 1202 #ifdef WOLFSSL_STM32L4 1206 #ifndef NO_STM32_HASH 1210 #if !defined(__GNUC__) && !defined(__ICCARM__) 1211 #define KEIL_INTRINSICS 1213 #define NO_OLD_RNGNAME 1214 #ifdef WOLFSSL_STM32_CUBEMX 1215 #if defined(WOLFSSL_STM32F2) 1216 #include "stm32f2xx_hal.h" 1217 #elif defined(WOLFSSL_STM32L4) 1218 #include "stm32l4xx_hal.h" 1219 #elif defined(WOLFSSL_STM32F4) 1220 #include "stm32f4xx_hal.h" 1221 #elif defined(WOLFSSL_STM32F7) 1222 #include "stm32f7xx_hal.h" 1223 #elif defined(WOLFSSL_STM32F1) 1224 #include "stm32f1xx_hal.h" 1226 #if defined(WOLFSSL_CUBEMX_USE_LL) && defined(WOLFSSL_STM32L4) 1227 #include "stm32l4xx_ll_rng.h" 1230 #ifndef STM32_HAL_TIMEOUT 1231 #define STM32_HAL_TIMEOUT 0xFF 1234 #if defined(WOLFSSL_STM32F2) 1235 #include "stm32f2xx.h" 1237 #include "stm32f2xx_cryp.h" 1240 #include "stm32f2xx_hash.h" 1242 #elif defined(WOLFSSL_STM32F4) 1243 #include "stm32f4xx.h" 1245 #include "stm32f4xx_cryp.h" 1248 #include "stm32f4xx_hash.h" 1250 #elif defined(WOLFSSL_STM32L4) 1251 #include "stm32l4xx.h" 1253 #include "stm32l4xx_cryp.h" 1256 #include "stm32l4xx_hash.h" 1258 #elif defined(WOLFSSL_STM32F7) 1259 #include "stm32f7xx.h" 1260 #elif defined(WOLFSSL_STM32F1) 1261 #include "stm32f1xx.h" 1267 #include <timeout.h> 1268 #include <socketapi.h> 1269 #include <lwip-socket.h> 1276 #define XMALLOC_USER 1279 #define WOLFSSL_NO_MALLOC 1283 #define NO_FILESYSTEM 1285 #ifdef NO_FILESYSTEM 1286 #define NO_WOLFSSL_DIR 1290 #define USE_FAST_MATH 1291 #define TFM_TIMING_RESISTANT 1292 #define ECC_TIMING_RESISTANT 1293 #define WC_RSA_BLINDING 1296 #define ALT_ECC_SIZE 1303 #define HAVE_TLS_EXTENSIONS 1304 #define HAVE_SUPPORTED_CURVES 1305 #define HAVE_EXTENDED_MASTER 1307 #if (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__) 1308 #define BIG_ENDIAN_ORDER 1310 #undef BIG_ENDIAN_ORDER 1311 #define LITTLE_ENDIAN_ORDER 1318 #include <net_cfg.h> 1319 #include <net_sock.h> 1320 #include <net_err.h> 1321 #include <lib_mem.h> 1322 #include <lib_math.h> 1324 #define USE_FAST_MATH 1325 #define TFM_TIMING_RESISTANT 1326 #define ECC_TIMING_RESISTANT 1327 #define WC_RSA_BLINDING 1328 #define HAVE_HASHDRBG 1331 #define ALT_ECC_SIZE 1339 #define HAVE_TLS_EXTENSIONS 1340 #define HAVE_SUPPORTED_CURVES 1341 #define HAVE_EXTENDED_MASTER 1343 #define NO_WOLFSSL_DIR 1346 #ifndef CUSTOM_RAND_GENERATE 1347 #define CUSTOM_RAND_TYPE RAND_NBR 1348 #define CUSTOM_RAND_GENERATE Math_Rand 1351 #define XSTRLEN(pstr) ((CPU_SIZE_T)Str_Len((CPU_CHAR *)(pstr))) 1352 #define XSTRNCPY(pstr_dest, pstr_src, len_max) \ 1353 ((CPU_CHAR *)Str_Copy_N((CPU_CHAR *)(pstr_dest), \ 1354 (CPU_CHAR *)(pstr_src), (CPU_SIZE_T)(len_max))) 1355 #define XSTRNCMP(pstr_1, pstr_2, len_max) \ 1356 ((CPU_INT16S)Str_Cmp_N((CPU_CHAR *)(pstr_1), \ 1357 (CPU_CHAR *)(pstr_2), (CPU_SIZE_T)(len_max))) 1358 #define XSTRNCASECMP(pstr_1, pstr_2, len_max) \ 1359 ((CPU_INT16S)Str_CmpIgnoreCase_N((CPU_CHAR *)(pstr_1), \ 1360 (CPU_CHAR *)(pstr_2), (CPU_SIZE_T)(len_max))) 1361 #define XSTRSTR(pstr, pstr_srch) \ 1362 ((CPU_CHAR *)Str_Str((CPU_CHAR *)(pstr), \ 1363 (CPU_CHAR *)(pstr_srch))) 1364 #define XSTRNSTR(pstr, pstr_srch, len_max) \ 1365 ((CPU_CHAR *)Str_Str_N((CPU_CHAR *)(pstr), \ 1366 (CPU_CHAR *)(pstr_srch),(CPU_SIZE_T)(len_max))) 1367 #define XSTRNCAT(pstr_dest, pstr_cat, len_max) \ 1368 ((CPU_CHAR *)Str_Cat_N((CPU_CHAR *)(pstr_dest), \ 1369 (const CPU_CHAR *)(pstr_cat),(CPU_SIZE_T)(len_max))) 1370 #define XMEMSET(pmem, data_val, size) \ 1371 ((void)Mem_Set((void *)(pmem), \ 1372 (CPU_INT08U) (data_val), \ 1373 (CPU_SIZE_T)(size))) 1374 #define XMEMCPY(pdest, psrc, size) ((void)Mem_Copy((void *)(pdest), \ 1375 (void *)(psrc), (CPU_SIZE_T)(size))) 1376 #define XMEMCMP(pmem_1, pmem_2, size) \ 1377 (((CPU_BOOLEAN)Mem_Cmp((void *)(pmem_1), \ 1379 (CPU_SIZE_T)(size))) ? DEF_NO : DEF_YES) 1380 #define XMEMMOVE XMEMCPY 1382 #if (OS_CFG_MUTEX_EN == DEF_DISABLED) 1383 #define SINGLE_THREADED 1386 #if (CPU_CFG_ENDIAN_TYPE == CPU_ENDIAN_TYPE_BIG) 1387 #define BIG_ENDIAN_ORDER 1389 #undef BIG_ENDIAN_ORDER 1390 #define LITTLE_ENDIAN_ORDER 1394 #ifdef WOLFSSL_MCF5441X 1395 #define BIG_ENDIAN_ORDER 1397 #define SIZEOF_LONG 4 1399 #ifndef SIZEOF_LONG_LONG 1400 #define SIZEOF_LONG_LONG 8 1408 #ifndef OPENSSL_EXTRA 1409 #define OPENSSL_EXTRA 1411 #ifndef SESSION_CERTS 1412 #define SESSION_CERTS 1420 #ifndef WOLFSSL_DER_LOAD 1421 #define WOLFSSL_DER_LOAD 1423 #ifndef KEEP_PEER_CERT 1424 #define KEEP_PEER_CERT 1429 #ifndef SESSION_INDEX 1430 #define SESSION_INDEX 1435 #if defined(WOLFSSL_XILINX) 1436 #define NO_WOLFSSL_DIR 1437 #define NO_DEV_RANDOM 1441 #if defined(WOLFSSL_XILINX_CRYPT) || defined(WOLFSSL_AFALG_XILINX) 1442 #if defined(WOLFSSL_ARMASM) 1443 #error can not use both ARMv8 instructions and XILINX hardened crypto 1445 #if defined(WOLFSSL_SHA3) 1447 #undef WOLFSSL_NOSHA3_224 1448 #undef WOLFSSL_NOSHA3_256 1449 #undef WOLFSSL_NOSHA3_512 1450 #define WOLFSSL_NOSHA3_224 1451 #define WOLFSSL_NOSHA3_256 1452 #define WOLFSSL_NOSHA3_512 1454 #ifdef WOLFSSL_AFALG_XILINX_AES 1455 #undef WOLFSSL_AES_DIRECT 1456 #define WOLFSSL_AES_DIRECT 1460 #if defined(WOLFSSL_APACHE_MYNEWT) 1461 #include "os/os_malloc.h" 1462 #if !defined(WOLFSSL_LWIP) 1463 #include <mn_socket/mn_socket.h> 1466 #if !defined(SIZEOF_LONG) 1467 #define SIZEOF_LONG 4 1469 #if !defined(SIZEOF_LONG_LONG) 1470 #define SIZEOF_LONG_LONG 8 1472 #if (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__) 1473 #define BIG_ENDIAN_ORDER 1475 #undef BIG_ENDIAN_ORDER 1476 #define LITTLE_ENDIAN_ORDER 1479 #define WOLFSSL_USER_IO 1480 #define SINGLE_THREADED 1481 #define NO_DEV_RANDOM 1483 #define NO_WOLFSSL_DIR 1484 #define NO_ERROR_STRINGS 1486 #define NO_SESSION_CACHE 1487 #define NO_ERROR_STRINGS 1488 #define XMALLOC_USER 1489 #define XMALLOC(sz, heap, type) os_malloc(sz) 1490 #define XREALLOC(p, sz, heap, type) os_realloc(p, sz) 1491 #define XFREE(p, heap, type) os_free(p) 1495 #ifdef WOLFSSL_ZEPHYR 1497 #include <misc/printk.h> 1498 #include <misc/util.h> 1501 #define WOLFSSL_DH_CONST 1502 #define WOLFSSL_HAVE_MIN 1503 #define WOLFSSL_HAVE_MAX 1506 #define USE_FLAT_BENCHMARK_H 1507 #define USE_FLAT_TEST_H 1508 #define EXIT_FAILURE 1 1509 #define MAIN_NO_ARGS 1511 void *z_realloc(
void *ptr,
size_t size);
1512 #define realloc z_realloc 1514 #define CONFIG_NET_SOCKETS_POSIX_NAMES 1518 #ifndef SIZEOF_LONG_LONG 1519 #define SIZEOF_LONG_LONG 8 1524 #ifdef WOLFSSL_IMX6_CAAM 1525 #undef WOLFSSL_IMX6_CAAM_RNG 1526 #define WOLFSSL_IMX6_CAAM_RNG 1528 #undef WOLFSSL_IMX6_CAAM_BLOB 1529 #define WOLFSSL_IMX6_CAAM_BLOB 1531 #if defined(HAVE_AESGCM) || defined(WOLFSSL_AES_XTS) 1534 #define HAVE_AES_ECB 1538 #if !defined(XMALLOC_USER) && !defined(MICRIUM_MALLOC) && \ 1539 !defined(WOLFSSL_LEANPSK) && !defined(NO_WOLFSSL_MEMORY) && \ 1540 !defined(XMALLOC_OVERRIDE) 1541 #define USE_WOLFSSL_MEMORY 1545 #if defined(OPENSSL_EXTRA) && !defined(NO_CERTS) 1546 #undef KEEP_PEER_CERT 1547 #define KEEP_PEER_CERT 1552 #ifndef XSTREAM_ALIGN 1553 #if defined(__x86_64__) || defined(__ia64__) || defined(__i386__) 1554 #define NO_XSTREAM_ALIGN 1556 #define XSTREAM_ALIGN 1562 #if defined(HAVE_WRITE_DUP) && defined(HAVE_SECURE_RENEGOTIATION) 1563 #error "WRITE DUP and SECURE RENEGOTIATION cannot both be on" 1570 #define WOLFCRYPT_ONLY 1575 #define TFM_TIMING_RESISTANT 1576 #define NO_WOLFSSL_DIR 1578 #define NO_MAIN_DRIVER 1579 #define WOLFSSL_LOG_PRINTF 1580 #define WOLFSSL_DH_CONST 1585 #define NO_MAIN_DRIVER 1587 #define WOLFSSL_LOG_PRINTF 1588 #define WOLFSSL_DH_CONST 1590 #if !defined(HAVE_FIPS) && !defined(NO_RSA) 1591 #define WC_RSA_BLINDING 1594 #define NO_FILESYSTEM 1595 #define ECC_TIMING_RESISTANT 1596 #define TFM_TIMING_RESISTANT 1597 #define SINGLE_THREADED 1600 #define USE_CERT_BUFFERS_2048 1601 #define USE_FAST_MATH 1607 #ifdef FREESCALE_MMCAU 1608 #ifdef FREESCALE_MMCAU_CLASSIC 1609 #define WOLFSSL_MMCAU_ALIGNMENT 4 1611 #define WOLFSSL_MMCAU_ALIGNMENT 0 1618 #ifndef WOLFSSL_GENERAL_ALIGNMENT 1619 #ifdef WOLFSSL_AESNI 1620 #define WOLFSSL_GENERAL_ALIGNMENT 16 1621 #elif defined(XSTREAM_ALIGN) 1622 #define WOLFSSL_GENERAL_ALIGNMENT 4 1623 #elif defined(FREESCALE_MMCAU) || defined(FREESCALE_MMCAU_CLASSIC) 1624 #define WOLFSSL_GENERAL_ALIGNMENT WOLFSSL_MMCAU_ALIGNMENT 1626 #define WOLFSSL_GENERAL_ALIGNMENT 0 1630 #if defined(WOLFSSL_GENERAL_ALIGNMENT) && (WOLFSSL_GENERAL_ALIGNMENT > 0) 1631 #if defined(_MSC_VER) 1632 #define XGEN_ALIGN __declspec(align(WOLFSSL_GENERAL_ALIGNMENT)) 1633 #elif defined(__GNUC__) 1634 #define XGEN_ALIGN __attribute__((aligned(WOLFSSL_GENERAL_ALIGNMENT))) 1643 #ifdef __INTEL_COMPILER 1644 #pragma warning(disable:2259) 1649 #ifndef ECC_USER_CURVES 1650 #if !defined(WOLFSSL_SP_MATH) && !defined(HAVE_ALL_CURVES) 1651 #define HAVE_ALL_CURVES 1659 #undef HAVE_ECC_SIGN 1660 #define HAVE_ECC_SIGN 1662 #ifndef NO_ECC_VERIFY 1663 #undef HAVE_ECC_VERIFY 1664 #define HAVE_ECC_VERIFY 1666 #ifndef NO_ECC_CHECK_KEY 1667 #undef HAVE_ECC_CHECK_KEY 1668 #define HAVE_ECC_CHECK_KEY 1672 #define HAVE_ECC_DHE 1674 #ifndef NO_ECC_KEY_IMPORT 1675 #undef HAVE_ECC_KEY_IMPORT 1676 #define HAVE_ECC_KEY_IMPORT 1678 #ifndef NO_ECC_KEY_EXPORT 1679 #undef HAVE_ECC_KEY_EXPORT 1680 #define HAVE_ECC_KEY_EXPORT 1685 #ifdef HAVE_CURVE25519 1687 #ifndef NO_CURVE25519_SHARED_SECRET 1688 #undef HAVE_CURVE25519_SHARED_SECRET 1689 #define HAVE_CURVE25519_SHARED_SECRET 1691 #ifndef NO_CURVE25519_KEY_EXPORT 1692 #undef HAVE_CURVE25519_KEY_EXPORT 1693 #define HAVE_CURVE25519_KEY_EXPORT 1695 #ifndef NO_CURVE25519_KEY_IMPORT 1696 #undef HAVE_CURVE25519_KEY_IMPORT 1697 #define HAVE_CURVE25519_KEY_IMPORT 1704 #ifndef NO_ED25519_SIGN 1705 #undef HAVE_ED25519_SIGN 1706 #define HAVE_ED25519_SIGN 1708 #ifndef NO_ED25519_VERIFY 1709 #undef HAVE_ED25519_VERIFY 1710 #define HAVE_ED25519_VERIFY 1712 #ifndef NO_ED25519_KEY_EXPORT 1713 #undef HAVE_ED25519_KEY_EXPORT 1714 #define HAVE_ED25519_KEY_EXPORT 1716 #ifndef NO_ED25519_KEY_IMPORT 1717 #undef HAVE_ED25519_KEY_IMPORT 1718 #define HAVE_ED25519_KEY_IMPORT 1723 #ifdef HAVE_CURVE448 1725 #ifndef NO_CURVE448_SHARED_SECRET 1726 #undef HAVE_CURVE448_SHARED_SECRET 1727 #define HAVE_CURVE448_SHARED_SECRET 1729 #ifndef NO_CURVE448_KEY_EXPORT 1730 #undef HAVE_CURVE448_KEY_EXPORT 1731 #define HAVE_CURVE448_KEY_EXPORT 1733 #ifndef NO_CURVE448_KEY_IMPORT 1734 #undef HAVE_CURVE448_KEY_IMPORT 1735 #define HAVE_CURVE448_KEY_IMPORT 1742 #ifndef NO_ED448_SIGN 1743 #undef HAVE_ED448_SIGN 1744 #define HAVE_ED448_SIGN 1746 #ifndef NO_ED448_VERIFY 1747 #undef HAVE_ED448_VERIFY 1748 #define HAVE_ED448_VERIFY 1750 #ifndef NO_ED448_KEY_EXPORT 1751 #undef HAVE_ED448_KEY_EXPORT 1752 #define HAVE_ED448_KEY_EXPORT 1754 #ifndef NO_ED448_KEY_IMPORT 1755 #undef HAVE_ED448_KEY_IMPORT 1756 #define HAVE_ED448_KEY_IMPORT 1763 #ifndef AES_MAX_KEY_SIZE 1764 #undef AES_MAX_KEY_SIZE 1765 #define AES_MAX_KEY_SIZE 256 1769 #undef WOLFSSL_AES_128 1770 #define WOLFSSL_AES_128 1772 #if !defined(NO_AES_192) && AES_MAX_KEY_SIZE >= 192 1773 #undef WOLFSSL_AES_192 1774 #define WOLFSSL_AES_192 1776 #if !defined(NO_AES_256) && AES_MAX_KEY_SIZE >= 256 1777 #undef WOLFSSL_AES_256 1778 #define WOLFSSL_AES_256 1780 #if !defined(WOLFSSL_AES_128) && defined(HAVE_ECC_ENCRYPT) 1781 #warning HAVE_ECC_ENCRYPT uses AES 128 bit keys 1784 #ifndef NO_AES_DECRYPT 1785 #undef HAVE_AES_DECRYPT 1786 #define HAVE_AES_DECRYPT 1790 #define HAVE_AES_CBC 1792 #ifdef WOLFSSL_AES_XTS 1794 #ifndef WOLFSSL_AES_DIRECT 1795 #define WOLFSSL_AES_DIRECT 1798 #ifdef WOLFSSL_AES_CFB 1800 #ifndef WOLFSSL_AES_DIRECT 1801 #define WOLFSSL_AES_DIRECT 1806 #if (defined(WOLFSSL_TLS13) && defined(WOLFSSL_NO_TLS12)) || \ 1807 (!defined(HAVE_AES_CBC) && defined(NO_DES3) && defined(NO_RC4) && \ 1808 !defined(HAVE_CAMELLIA) && !defined(HAVE_IDEA) && \ 1809 !defined(HAVE_NULL_CIPHER) && !defined(HAVE_HC128)) 1810 #define WOLFSSL_AEAD_ONLY 1813 #if !defined(NO_DH) && !defined(HAVE_FFDHE) 1814 #if defined(HAVE_FFDHE_2048) || defined(HAVE_FFDHE_3072) || \ 1815 defined(HAVE_FFDHE_4096) || defined(HAVE_FFDHE_6144) || \ 1816 defined(HAVE_FFDHE_8192) 1820 #if defined(HAVE_FFDHE_8192) 1821 #define MIN_FFDHE_FP_MAX_BITS 16384 1822 #elif defined(HAVE_FFDHE_6144) 1823 #define MIN_FFDHE_FP_MAX_BITS 12288 1824 #elif defined(HAVE_FFDHE_4096) 1825 #define MIN_FFDHE_FP_MAX_BITS 8192 1826 #elif defined(HAVE_FFDHE_3072) 1827 #define MIN_FFDHE_FP_MAX_BITS 6144 1828 #elif defined(HAVE_FFDHE_2048) 1829 #define MIN_FFDHE_FP_MAX_BITS 4096 1831 #define MIN_FFDHE_FP_MAX_BITS 0 1833 #if defined(HAVE_FFDHE) && defined(FP_MAX_BITS) 1834 #if MIN_FFDHE_FP_MAX_BITS > FP_MAX_BITS 1835 #error "FFDHE parameters are too large for FP_MAX_BIT as set" 1840 #ifdef WOLFSSL_X86_64_BUILD 1841 #if defined(USE_FAST_MATH) && !defined(FP_MAX_BITS) 1842 #if MIN_FFDHE_FP_MAX_BITS <= 8192 1843 #define FP_MAX_BITS 8192 1845 #define FP_MAX_BITS MIN_FFDHE_FP_MAX_BITS 1851 #ifdef WOLFSSL_MAX_STRENGTH 1858 #ifndef WOLFSSL_MIN_AUTH_TAG_SZ 1859 #define WOLFSSL_MIN_AUTH_TAG_SZ 12 1867 #ifdef WOLFSSL_SNIFFER 1868 #ifndef WOLFSSL_STATIC_RSA 1869 #define WOLFSSL_STATIC_RSA 1871 #ifndef WOLFSSL_STATIC_DH 1872 #define WOLFSSL_STATIC_DH 1875 #ifndef WOLFSSL_NO_SESSION_STATS 1876 #ifndef WOLFSSL_SESSION_STATS 1877 #define WOLFSSL_SESSION_STATS 1879 #ifndef WOLFSSL_PEAK_SESSIONS 1880 #define WOLFSSL_PEAK_SESSIONS 1887 #ifndef WOLFSSL_NO_DECODE_EXTRA 1888 #ifndef RSA_DECODE_EXTRA 1889 #define RSA_DECODE_EXTRA 1891 #ifndef ECC_DECODE_EXTRA 1892 #define ECC_DECODE_EXTRA 1898 #ifndef WOLFSSL_DTLS 1899 #define WOLFSSL_DTLS 1907 #ifdef WOLFSSL_ASYNC_CRYPT 1909 #undef HAVE_WOLF_EVENT 1910 #define HAVE_WOLF_EVENT 1912 #ifdef WOLFSSL_ASYNC_CRYPT_TEST 1913 #define WC_ASYNC_DEV_SIZE 168 1915 #define WC_ASYNC_DEV_SIZE 336 1918 #if !defined(HAVE_CAVIUM) && !defined(HAVE_INTEL_QA) && \ 1919 !defined(WOLFSSL_ASYNC_CRYPT_TEST) 1920 #error No async hardware defined with WOLFSSL_ASYNC_CRYPT! 1924 #if !defined(ECC_CACHE_CURVE) 1925 #define ECC_CACHE_CURVE 1928 #ifndef WC_ASYNC_DEV_SIZE 1929 #define WC_ASYNC_DEV_SIZE 0 1933 #ifdef WOLFSSL_LEANTLS 1935 #error leantls build needs ECC 1940 #ifdef WOLFSSL_STATIC_MEMORY 1941 #if defined(HAVE_IO_POOL) || defined(XMALLOC_USER) || defined(NO_WOLFSSL_MEMORY) 1942 #error static memory cannot be used with HAVE_IO_POOL, XMALLOC_USER or NO_WOLFSSL_MEMORY 1944 #if !defined(USE_FAST_MATH) && !defined(NO_BIG_INT) 1945 #error static memory requires fast math please define USE_FAST_MATH 1947 #ifdef WOLFSSL_SMALL_STACK 1948 #error static memory does not support small stack please undefine 1952 #ifdef HAVE_AES_KEYWRAP 1953 #ifndef WOLFSSL_AES_DIRECT 1954 #error AES key wrap requires AES direct please define WOLFSSL_AES_DIRECT 1959 #if defined(NO_AES) && defined(NO_DES3) 1960 #error PKCS7 needs either AES or 3DES enabled, please enable one 1962 #ifndef HAVE_AES_KEYWRAP 1963 #error PKCS7 requires AES key wrap please define HAVE_AES_KEYWRAP 1965 #if defined(HAVE_ECC) && !defined(HAVE_X963_KDF) 1966 #error PKCS7 requires X963 KDF please define HAVE_X963_KDF 1980 #if !defined(NO_PBKDF1) || defined(WOLFSSL_ENCRYPTED_KEYS) || defined(HAVE_PKCS8) || defined(HAVE_PKCS12) 1985 #if !defined(NO_PBKDF2) || defined(HAVE_PKCS7) || defined(HAVE_SCRYPT) 1991 #if !defined(WOLFCRYPT_ONLY) && !defined(NO_OLD_TLS) && \ 1992 (defined(NO_SHA) || defined(NO_MD5)) 1993 #error old TLS requires MD5 and SHA 1997 #if defined(TEST_IPV6) && !defined(WOLFSSL_IPV6) 1998 #define WOLFSSL_IPV6 2004 #if defined(WOLFSSL_MYSQL_COMPATIBLE) && defined(_WIN32) \ 2005 && defined(HAVE_GMTIME_R) 2006 #undef HAVE_GMTIME_R 2009 #if defined(OPENSSL_ALL) || defined(WOLFSSL_NGINX) || defined(WOLFSSL_HAPROXY) 2010 #define SSL_OP_NO_COMPRESSION SSL_OP_NO_COMPRESSION 2011 #define OPENSSL_NO_ENGINE 2012 #define X509_CHECK_FLAG_ALWAYS_CHECK_SUBJECT 2013 #ifndef OPENSSL_EXTRA 2014 #define OPENSSL_EXTRA 2016 #ifndef HAVE_SESSION_TICKET 2017 #define HAVE_SESSION_TICKET 2022 #ifndef KEEP_OUR_CERT 2023 #define KEEP_OUR_CERT 2030 #if defined(WOLFSSL_NGINX) || defined(WOLFSSL_QT) || defined(OPENSSL_ALL) 2031 #define SSL_CTRL_SET_TLSEXT_HOSTNAME 55 2036 #ifdef CURVED25519_SMALL 2037 #define CURVE25519_SMALL 2038 #define ED25519_SMALL 2042 #ifdef CURVED448_SMALL 2043 #define CURVE448_SMALL 2048 #ifndef WOLFSSL_ALERT_COUNT_MAX 2049 #define WOLFSSL_ALERT_COUNT_MAX 5 2053 #ifndef WC_NO_HARDEN 2054 #if (defined(USE_FAST_MATH) && !defined(TFM_TIMING_RESISTANT)) || \ 2055 (defined(HAVE_ECC) && !defined(ECC_TIMING_RESISTANT)) || \ 2056 (!defined(NO_RSA) && !defined(WC_RSA_BLINDING) && !defined(HAVE_FIPS) && \ 2057 !defined(WC_NO_RNG)) 2060 #warning "For timing resistance / side-channel attack prevention consider using harden options" 2062 #pragma message("Warning: For timing resistance / side-channel attack prevention consider using harden options") 2067 #if defined(NO_OLD_WC_NAMES) || defined(OPENSSL_EXTRA) 2069 #if !defined(NO_OLD_SHA_NAMES) && !defined(HAVE_FIPS) 2070 #define NO_OLD_SHA_NAMES 2076 #ifdef OPENSSL_EXTRA 2077 #undef OPENSSL_EXTRA_X509_SMALL 2078 #define OPENSSL_EXTRA_X509_SMALL 2082 #if (defined(WOLFSSL_KEY_GEN) && !defined(WOLFSSL_NO_DER_TO_PEM)) || \ 2083 defined(WOLFSSL_CERT_GEN) || defined(OPENSSL_EXTRA) 2084 #undef WOLFSSL_DER_TO_PEM 2085 #define WOLFSSL_DER_TO_PEM 2089 #ifndef WOLFSSL_ENCRYPTED_KEYS 2090 #if defined(OPENSSL_EXTRA) || defined(OPENSSL_EXTRA_X509_SMALL) || \ 2091 defined(HAVE_WEBSERVER) 2092 #define WOLFSSL_ENCRYPTED_KEYS 2097 #if !defined(WOLFSSL_NO_PEM) 2098 #undef WOLFSSL_PEM_TO_DER 2099 #define WOLFSSL_PEM_TO_DER 2103 #if defined(OPENSSL_ALL) || defined(WOLFSSL_NGINX) || defined(WOLFSSL_HAPROXY) 2104 #undef KEEP_PEER_CERT 2105 #define KEEP_PEER_CERT 2109 #ifdef WOLFSSL_ARMASM 2110 #undef WOLFSSL_NO_HASH_RAW 2111 #define WOLFSSL_NO_HASH_RAW 2114 #if !defined(WOLFSSL_SHA384) && !defined(WOLFSSL_SHA512) && defined(NO_AES) && \ 2115 !defined(WOLFSSL_SHA3) 2116 #undef WOLFSSL_NO_WORD64_OPS 2117 #define WOLFSSL_NO_WORD64_OPS 2120 #if !defined(WOLFCRYPT_ONLY) && !defined(WOLFSSL_NO_TLS12) 2121 #undef WOLFSSL_HAVE_PRF 2122 #define WOLFSSL_HAVE_PRF 2125 #if defined(NO_AES) && defined(NO_DES3) && !defined(HAVE_CAMELLIA) && \ 2126 !defined(WOLFSSL_HAVE_PRF) && defined(NO_PWDBASED) && !defined(HAVE_IDEA) 2127 #undef WOLFSSL_NO_XOR_OPS 2128 #define WOLFSSL_NO_XOR_OPS 2131 #if defined(NO_ASN) && defined(WOLFCRYPT_ONLY) 2132 #undef WOLFSSL_NO_INT_ENCODE 2133 #define WOLFSSL_NO_INT_ENCODE 2134 #undef WOLFSSL_NO_INT_DECODE 2135 #define WOLFSSL_NO_INT_DECODE 2138 #if defined(WOLFCRYPT_ONLY) && defined(WOLFSSL_RSA_VERIFY_ONLY) && \ 2139 defined(WC_NO_RSA_OAEP) 2140 #undef WOLFSSL_NO_CT_OPS 2141 #define WOLFSSL_NO_CT_OPS 2144 #if defined(WOLFCRYPT_ONLY) && defined(NO_AES) && !defined(HAVE_CURVE25519) && \ 2145 !defined(HAVE_CURVE448) && defined(WC_NO_RNG) && defined(WC_NO_RSA_OAEP) 2146 #undef WOLFSSL_NO_CONST_CMP 2147 #define WOLFSSL_NO_CONST_CMP 2150 #if defined(WOLFCRYPT_ONLY) && defined(NO_AES) && !defined(WOLFSSL_SHA384) && \ 2151 !defined(WOLFSSL_SHA512) && defined(WC_NO_RNG) && \ 2152 defined(WOLFSSL_SP_MATH) && defined(WOLFSSL_RSA_PUBLIC_ONLY) 2153 #undef WOLFSSL_NO_FORCE_ZERO 2154 #define WOLFSSL_NO_FORCE_ZERO 2158 #if defined(WOLF_CRYPTO_DEV) && !defined(WOLF_CRYPTO_CB) 2159 #define WOLF_CRYPTO_CB 2162 #if defined(WOLFSSL_TLS13) && defined(WOLFSSL_NO_SIGALG) 2163 #error TLS 1.3 requires the Signature Algorithms extension to be enabled 2166 #ifndef NO_WOLFSSL_BASE64_DECODE 2167 #define WOLFSSL_BASE64_DECODE 2170 #if defined(HAVE_EX_DATA) || defined(FORTRESS) 2171 #define MAX_EX_DATA 5 2174 #ifdef NO_WOLFSSL_SMALL_STACK 2175 #undef WOLFSSL_SMALL_STACK 2179 #if defined(NO_ASN_TIME) && !defined(NO_SESSION_CACHE) 2180 #define NO_SESSION_CACHE 2184 #if defined(__IAR_SYSTEMS_ICC__) && defined(__ROPI__) 2185 #define WOLFSSL_ECC_CURVE_STATIC 2186 #define WOLFSSL_NAMES_STATIC 2187 #define WOLFSSL_NO_CONSTCHARCONST