Annotation of embedaddon/curl/projects/wolfssl_options.h, revision 1.1

1.1     ! misho       1: /***************************************************************************
        !             2:  *                                  _   _ ____  _
        !             3:  *  Project                     ___| | | |  _ \| |
        !             4:  *                             / __| | | | |_) | |
        !             5:  *                            | (__| |_| |  _ <| |___
        !             6:  *                             \___|\___/|_| \_\_____|
        !             7:  *
        !             8:  * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
        !             9:  *
        !            10:  * This software is licensed as described in the file COPYING, which
        !            11:  * you should have received as part of this distribution. The terms
        !            12:  * are also available at https://curl.haxx.se/docs/copyright.html.
        !            13:  *
        !            14:  * You may opt to use, copy, modify, merge, publish, distribute and/or sell
        !            15:  * copies of the Software, and permit persons to whom the Software is
        !            16:  * furnished to do so, under the terms of the COPYING file.
        !            17:  *
        !            18:  * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
        !            19:  * KIND, either express or implied.
        !            20:  *
        !            21:  ***************************************************************************/
        !            22: /*
        !            23: By default wolfSSL has a very conservative configuration that can result in
        !            24: connections to servers failing due to certificate or algorithm problems.
        !            25: To remedy this issue for libcurl I've generated this options file that
        !            26: build-wolfssl will copy to the wolfSSL include directories and will result in
        !            27: maximum compatibility.
        !            28: 
        !            29: These are the configure options that were used to build wolfSSL v3.11.0 in
        !            30: mingw and generate the options in this file:
        !            31: 
        !            32: C_EXTRA_FLAGS="\
        !            33:   -Wno-attributes \
        !            34:   -Wno-unused-but-set-variable \
        !            35:   -DFP_MAX_BITS=16384 \
        !            36:   -DTFM_TIMING_RESISTANT \
        !            37:   -DWOLFSSL_STATIC_DH \
        !            38:   -DWOLFSSL_STATIC_RSA \
        !            39:   " \
        !            40: ./configure --prefix=/usr/local \
        !            41:   --disable-jobserver \
        !            42:   --enable-aesgcm \
        !            43:   --enable-alpn \
        !            44:   --enable-certgen \
        !            45:   --enable-des3 \
        !            46:   --enable-dh \
        !            47:   --enable-dsa \
        !            48:   --enable-ecc \
        !            49:   --enable-eccshamir \
        !            50:   --enable-fastmath \
        !            51:   --enable-opensslextra \
        !            52:   --enable-ripemd \
        !            53:   --enable-sessioncerts \
        !            54:   --enable-sha512 \
        !            55:   --enable-sni \
        !            56:   --enable-sslv3 \
        !            57:   --enable-supportedcurves \
        !            58:   --enable-testcert \
        !            59:   > config.out 2>&1
        !            60: 
        !            61: Two generated options HAVE_THREAD_LS and _POSIX_THREADS were removed since they
        !            62: are inapplicable for our Visual Studio build. Currently thread local storage is
        !            63: only used by the Fixed Point cache ECC which we're not enabling. However even
        !            64: if we later may decide to enable the cache it will fallback on mutexes when
        !            65: thread local storage is not available. wolfSSL is using __declspec(thread) to
        !            66: create the thread local storage and that could be a problem for LoadLibrary.
        !            67: 
        !            68: Regarding the options that were added via C_EXTRA_FLAGS:
        !            69: 
        !            70: FP_MAX_BITS=16384
        !            71: https://www.yassl.com/forums/topic423-cacertorgs-ca-cert-verify-failed-but-withdisablefastmath-it-works.html
        !            72: "Since root.crt uses a 4096-bit RSA key, you'll need to increase the fastmath
        !            73: buffer size.  You can do this using the define:
        !            74: FP_MAX_BITS and setting it to 8192."
        !            75: 
        !            76: TFM_TIMING_RESISTANT
        !            77: https://wolfssl.com/wolfSSL/Docs-wolfssl-manual-2-building-wolfssl.html
        !            78: From section 2.4.5 Increasing Performance, USE_FAST_MATH:
        !            79: "Because the stack memory usage can be larger when using fastmath, we recommend
        !            80: defining TFM_TIMING_RESISTANT as well when using this option."
        !            81: 
        !            82: WOLFSSL_STATIC_DH:    Allow TLS_ECDH_ ciphers
        !            83: WOLFSSL_STATIC_RSA:   Allow TLS_RSA_ ciphers
        !            84: https://github.com/wolfSSL/wolfssl/blob/v3.6.6/README.md#note-1
        !            85: Static key cipher suites are deprecated and disabled by default since v3.6.6.
        !            86: */
        !            87: 
        !            88: /* wolfssl options.h
        !            89:  * generated from configure options
        !            90:  *
        !            91:  * Copyright (C) 2006-2015 wolfSSL Inc.
        !            92:  *
        !            93:  * This file is part of wolfSSL. (formerly known as CyaSSL)
        !            94:  *
        !            95:  */
        !            96: 
        !            97: #ifndef WOLFSSL_OPTIONS_H
        !            98: #define WOLFSSL_OPTIONS_H
        !            99: 
        !           100: 
        !           101: #ifdef __cplusplus
        !           102: extern "C" {
        !           103: #endif
        !           104: 
        !           105: #undef  FP_MAX_BITS
        !           106: #define FP_MAX_BITS 16384
        !           107: 
        !           108: #undef  TFM_TIMING_RESISTANT
        !           109: #define TFM_TIMING_RESISTANT
        !           110: 
        !           111: #undef  WOLFSSL_STATIC_DH
        !           112: #define WOLFSSL_STATIC_DH
        !           113: 
        !           114: #undef  WOLFSSL_STATIC_RSA
        !           115: #define WOLFSSL_STATIC_RSA
        !           116: 
        !           117: #undef  OPENSSL_EXTRA
        !           118: #define OPENSSL_EXTRA
        !           119: 
        !           120: /*
        !           121: The commented out defines below are the equivalent of --enable-tls13.
        !           122: Uncomment them to build wolfSSL with TLS 1.3 support as of v3.11.1-tls13-beta.
        !           123: This is for experimenting only, afaict TLS 1.3 support doesn't appear to be
        !           124: functioning correctly yet. https://github.com/wolfSSL/wolfssl/pull/943
        !           125: 
        !           126: #undef  WC_RSA_PSS
        !           127: #define WC_RSA_PSS
        !           128: 
        !           129: #undef  WOLFSSL_TLS13
        !           130: #define WOLFSSL_TLS13
        !           131: 
        !           132: #undef  HAVE_TLS_EXTENSIONS
        !           133: #define HAVE_TLS_EXTENSIONS
        !           134: 
        !           135: #undef  HAVE_FFDHE_2048
        !           136: #define HAVE_FFDHE_2048
        !           137: 
        !           138: #undef  HAVE_HKDF
        !           139: #define HAVE_HKDF
        !           140: */
        !           141: 
        !           142: #undef  TFM_TIMING_RESISTANT
        !           143: #define TFM_TIMING_RESISTANT
        !           144: 
        !           145: #undef  ECC_TIMING_RESISTANT
        !           146: #define ECC_TIMING_RESISTANT
        !           147: 
        !           148: #undef  WC_RSA_BLINDING
        !           149: #define WC_RSA_BLINDING
        !           150: 
        !           151: #undef  HAVE_AESGCM
        !           152: #define HAVE_AESGCM
        !           153: 
        !           154: #undef  WOLFSSL_RIPEMD
        !           155: #define WOLFSSL_RIPEMD
        !           156: 
        !           157: #undef  WOLFSSL_SHA512
        !           158: #define WOLFSSL_SHA512
        !           159: 
        !           160: #undef  WOLFSSL_SHA384
        !           161: #define WOLFSSL_SHA384
        !           162: 
        !           163: #undef  SESSION_CERTS
        !           164: #define SESSION_CERTS
        !           165: 
        !           166: #undef  WOLFSSL_CERT_GEN
        !           167: #define WOLFSSL_CERT_GEN
        !           168: 
        !           169: #undef  HAVE_ECC
        !           170: #define HAVE_ECC
        !           171: 
        !           172: #undef  TFM_ECC256
        !           173: #define TFM_ECC256
        !           174: 
        !           175: #undef  ECC_SHAMIR
        !           176: #define ECC_SHAMIR
        !           177: 
        !           178: #undef  WOLFSSL_ALLOW_SSLV3
        !           179: #define WOLFSSL_ALLOW_SSLV3
        !           180: 
        !           181: #undef  NO_RC4
        !           182: #define NO_RC4
        !           183: 
        !           184: #undef  NO_HC128
        !           185: #define NO_HC128
        !           186: 
        !           187: #undef  NO_RABBIT
        !           188: #define NO_RABBIT
        !           189: 
        !           190: #undef  HAVE_POLY1305
        !           191: #define HAVE_POLY1305
        !           192: 
        !           193: #undef  HAVE_ONE_TIME_AUTH
        !           194: #define HAVE_ONE_TIME_AUTH
        !           195: 
        !           196: #undef  HAVE_CHACHA
        !           197: #define HAVE_CHACHA
        !           198: 
        !           199: #undef  HAVE_HASHDRBG
        !           200: #define HAVE_HASHDRBG
        !           201: 
        !           202: #undef  HAVE_TLS_EXTENSIONS
        !           203: #define HAVE_TLS_EXTENSIONS
        !           204: 
        !           205: #undef  HAVE_SNI
        !           206: #define HAVE_SNI
        !           207: 
        !           208: #undef  HAVE_TLS_EXTENSIONS
        !           209: #define HAVE_TLS_EXTENSIONS
        !           210: 
        !           211: #undef  HAVE_ALPN
        !           212: #define HAVE_ALPN
        !           213: 
        !           214: #undef  HAVE_TLS_EXTENSIONS
        !           215: #define HAVE_TLS_EXTENSIONS
        !           216: 
        !           217: #undef  HAVE_SUPPORTED_CURVES
        !           218: #define HAVE_SUPPORTED_CURVES
        !           219: 
        !           220: #undef  HAVE_EXTENDED_MASTER
        !           221: #define HAVE_EXTENDED_MASTER
        !           222: 
        !           223: #undef  WOLFSSL_TEST_CERT
        !           224: #define WOLFSSL_TEST_CERT
        !           225: 
        !           226: #undef  NO_PSK
        !           227: #define NO_PSK
        !           228: 
        !           229: #undef  NO_MD4
        !           230: #define NO_MD4
        !           231: 
        !           232: #undef  USE_FAST_MATH
        !           233: #define USE_FAST_MATH
        !           234: 
        !           235: #undef  WC_NO_ASYNC_THREADING
        !           236: #define WC_NO_ASYNC_THREADING
        !           237: 
        !           238: 
        !           239: #ifdef __cplusplus
        !           240: }
        !           241: #endif
        !           242: 
        !           243: 
        !           244: #endif /* WOLFSSL_OPTIONS_H */

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>