#ifndef _WIN_USER_SETTINGS_H_ #define _WIN_USER_SETTINGS_H_ /* For FIPS 140-2 3389 build set to "#if 1" */ #if 0 #undef HAVE_FIPS #define HAVE_FIPS #undef HAVE_FIPS_VERSION #define HAVE_FIPS_VERSION 2 #undef HAVE_FIPS_VERSION_MINOR #define HAVE_FIPS_VERSION_MINOR 0 #endif /* Set the following to 1 for WCv5.0-RC12 build. */ #if 1 #undef HAVE_FIPS #define HAVE_FIPS #undef HAVE_FIPS_VERSION #define HAVE_FIPS_VERSION 6 #undef HAVE_FIPS_VERSION_MAJOR #define HAVE_FIPS_VERSION_MAJOR 6 #undef HAVE_FIPS_VERSION_MINOR #define HAVE_FIPS_VERSION_MINOR 0 #undef HAVE_FIPS_VERSION_PATCH #define HAVE_FIPS_VERSION_PATCH 0 #endif /* For FIPS Ready, uncomment the following: */ /* #define WOLFSSL_FIPS_READY */ #ifdef WOLFSSL_FIPS_READY #undef HAVE_FIPS #define HAVE_FIPS #undef HAVE_FIPS_VERSION #define HAVE_FIPS_VERSION 5 #undef HAVE_FIPS_VERSION_MINOR #define HAVE_FIPS_VERSION_MINOR 3 #endif /* Verify this is Windows */ #ifndef _WIN32 #error This user_settings.h header is only designed for Windows #endif /* Configurations */ #if defined(HAVE_FIPS) /* FIPS */ #define OPENSSL_EXTRA #define HAVE_THREAD_LS #define WOLFSSL_KEY_GEN #define HAVE_AESGCM #define HAVE_HASHDRBG #define WOLFSSL_SHA384 #define WOLFSSL_SHA512 #define NO_PSK #define NO_RC4 #define NO_DSA #define NO_MD4 #if defined(HAVE_FIPS_VERSION) && (HAVE_FIPS_VERSION >= 2) #define WOLFSSL_SHA224 #define WOLFSSL_SHA3 #define WC_RSA_PSS #define WC_RSA_NO_PADDING #define HAVE_ECC #define HAVE_ECC384 #define HAVE_ECC521 #define HAVE_SUPPORTED_CURVES #define HAVE_TLS_EXTENSIONS #define ECC_SHAMIR #define HAVE_ECC_CDH #define ECC_TIMING_RESISTANT #define TFM_TIMING_RESISTANT #define WOLFSSL_AES_COUNTER #define WOLFSSL_AES_DIRECT #define HAVE_AES_ECB #define HAVE_AESCCM #define WOLFSSL_CMAC #define HAVE_HKDF #define WOLFSSL_VALIDATE_ECC_IMPORT #define WOLFSSL_VALIDATE_FFC_IMPORT #define HAVE_FFDHE_Q #ifdef _WIN64 #define WOLFSSL_AESNI #endif #endif /* FIPS v2 */ #if defined(HAVE_FIPS_VERSION) && (HAVE_FIPS_VERSION >= 5) #define NO_DES #define NO_DES3 #define NO_MD5 #define NO_OLD_TLS #define WOLFSSL_TLS13 #define HAVE_TLS_EXTENSIONS #define HAVE_SUPPORTED_CURVES #define GCM_TABLE_4BIT #define WOLFSSL_NO_SHAKE256 #define WOLFSSL_VALIDATE_ECC_KEYGEN #define WOLFSSL_ECDSA_SET_K #define WOLFSSL_WOLFSSH #define WOLFSSL_PUBLIC_MP #define WC_RNG_SEED_CB #define TFM_ECC256 #define ECC_USER_CURVES #define HAVE_ECC192 #define HAVE_ECC224 #define HAVE_ECC256 #define HAVE_ECC384 #define HAVE_ECC521 #define HAVE_FFDHE_2048 #define HAVE_FFDHE_3072 #define HAVE_FFDHE_4096 #define HAVE_FFDHE_6144 #define HAVE_FFDHE_8192 #define WOLFSSL_AES_OFB #define FP_MAX_BITS 16384 #endif /* FIPS v5 */ #if defined(HAVE_FIPS_VERSION) && (HAVE_FIPS_VERSION >= 6) #undef WOLFSSL_AESNI /* Comment out if using PAA */ #define HAVE_ED25519 #define HAVE_CURVE25519 #define WOLFSSL_ED25519_STREAMING_VERIFY #define HAVE_ED25519_KEY_IMPORT #define HAVE_ED448 #define HAVE_CURVE448 #define HAVE_ED448_KEY_IMPORT #define WOLFSSL_ED448_STREAMING_VERIFY #undef WOLFSSL_NO_SHAKE256 #define WOLFSSL_SHAKE256 #define WOLFSSL_SHAKE128 #define WOLFSSL_AES_CFB #define WOLFSSL_AES_XTS #define WOLFSSL_AESXTS_STREAM #define WOLFSSL_AESGCM_STREAM #define HAVE_AES_KEYWRAP #define WC_SRTP_KDF #define HAVE_PBKDF2 #define WOLFCRYPT_FIPS_CORE_HASH_VALUE \ AE8F969C072FB4A87B5C594F96162002F3CCEB6026BDB2553C8621AE197F7059 //woPAA //E257E8C21764333E4710316D208A90D4ECA0682D6F40DC3F4A6E259D4752E306 //wPAA #define WOLFSSL_NOSHA512_224 #define WOLFSSL_NOSHA512_256 /* uncomment for FIPS debugging */ /* #define DEBUG_FIPS_VERBOSE */ /* uncomment for whole library debugging */ /* #define DEBUG_WOLFSSL */ #endif /* FIPS v6 */ #else /* Enables blinding mode, to prevent timing attacks */ #define WC_RSA_BLINDING #if defined(WOLFSSL_LIB) /* The lib */ #define OPENSSL_EXTRA #define WOLFSSL_RIPEMD #define NO_PSK #define HAVE_EXTENDED_MASTER #define WOLFSSL_SNIFFER #define HAVE_SECURE_RENEGOTIATION #define HAVE_AESGCM #define WOLFSSL_SHA384 #define WOLFSSL_SHA512 #define HAVE_SUPPORTED_CURVES #define HAVE_TLS_EXTENSIONS #define HAVE_ECC #define ECC_SHAMIR #define ECC_TIMING_RESISTANT #else /* The servers and clients */ #define OPENSSL_EXTRA #define NO_PSK #endif #endif /* HAVE_FIPS */ /* For optesting and code review and harness/vector processing */ #if 0 #undef USE_CERT_BUFFERS_2048 #define USE_CERT_BUFFERS_2048 #undef USE_CERT_BUFFERS_256 #define USE_CERT_BUFFERS_256 #define NO_MAIN_DRIVER #define HAVE_FORCE_FIPS_FAILURE #define OPTEST_LOGGING_ENABLED #define OPTEST_INVALID_LOGGING_ENABLED #define DEBUG_FIPS_VERBOSE #define OPTEST_RUNNING_ORGANIC #define DEBUG_WOLFSSL #define OPTEST_LOG_TE_MAPPING #define DEEPLY_EMBEDDED #define WORKING_WITH_AEGISOLVE #endif /* 1 || 0 */ #endif /* _WIN_USER_SETTINGS_H_ */