1 #ifndef _WIN_USER_SETTINGS_H_
2 #define _WIN_USER_SETTINGS_H_
3 
4 /* Verify this is Windows */
5 #ifndef _WIN32
6 #error This user_settings.h header is only designed for Windows
7 #endif
8 
9 /* Configurations */
10 #if defined(HAVE_FIPS)
11     /* FIPS */
12     #define OPENSSL_EXTRA
13     #define HAVE_THREAD_LS
14     #define WOLFSSL_KEY_GEN
15     #define HAVE_AESGCM
16     #define HAVE_HASHDRBG
17     #define WOLFSSL_SHA384
18     #define WOLFSSL_SHA512
19     #define NO_PSK
20     #define NO_HC128
21     #define NO_RC4
22     #define NO_RABBIT
23     #define NO_DSA
24     #define NO_MD4
25 
26     #define GCM_NONCE_MID_SZ 12
27 #else
28     /* Enables blinding mode, to prevent timing attacks */
29     #define WC_RSA_BLINDING
30     #define NO_MULTIBYTE_PRINT
31 
32     #if defined(WOLFSSL_LIB)
33         /* The lib */
34         #define OPENSSL_EXTRA
35         #define WOLFSSL_RIPEMD
36         #define NO_PSK
37         #define HAVE_EXTENDED_MASTER
38         #define WOLFSSL_SNIFFER
39         #define HAVE_SECURE_RENEGOTIATION
40 
41         #define HAVE_AESGCM
42         #define WOLFSSL_SHA384
43         #define WOLFSSL_SHA512
44 
45         #define HAVE_SUPPORTED_CURVES
46         #define HAVE_TLS_EXTENSIONS
47 
48         #define HAVE_ECC
49         #define ECC_SHAMIR
50         #define ECC_TIMING_RESISTANT
51 
52         /* Optional Performance Speedups */
53         #if 0
54             /* AESNI on x64 */
55             #ifdef _WIN64
56                 #define HAVE_INTEL_RDSEED
57                 #define WOLFSSL_AESNI
58             #endif
59 
60             /* Single Precision Support for RSA/DH 1024/2048/3072 and
61              * ECC P-256/P-384 */
62             #define WOLFSSL_SP
63             #define WOLFSSL_HAVE_SP_ECC
64             #define WOLFSSL_HAVE_SP_DH
65             #define WOLFSSL_HAVE_SP_RSA
66 
67             #ifdef _WIN64
68                 /* Old versions of MASM compiler do not recognize newer
69                  * instructions. */
70                 #if 0
71                     #define NO_AVX2_SUPPORT
72                     #define NO_MOVBE_SUPPORT
73                 #endif
74                 #define WOLFSSL_SP_ASM
75                 #define WOLFSSL_SP_X86_64_ASM
76             #endif
77         #endif
78 
79     #else
80         /* The servers and clients */
81         #define OPENSSL_EXTRA
82         #define NO_PSK
83     #endif
84 #endif /* HAVE_FIPS */
85 
86 #endif /* _WIN_USER_SETTINGS_H_ */
87