Annotation of embedaddon/curl/projects/wolfssl_options.h, revision 1.1.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>