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