1 /*
2  * Feature flags for LibreSSL... so you can actually tell when things
3  * are enabled, rather than not being able to tell when things are
4  * enabled (or possibly not yet not implemented, or removed!).
5  */
6 module libressl_d.openssl.opensslfeatures;
7 
8 
9 version (LIBRESSL_INTERNAL) {
10 	enum LIBRESSL_INTERNAL = true;
11 } else {
12 	enum LIBRESSL_INTERNAL = false;
13 }
14 
15 version (LIBRESSL_HAS_TLS1_3) {
16 	enum LIBRESSL_HAS_TLS1_3 = true;
17 } else {
18 	enum LIBRESSL_HAS_TLS1_3 = false;
19 }
20 
21 version (none):
22 
23 version = LIBRESSL_HAS_TLS1_3;
24 version = LIBRESSL_HAS_DTLS1_2;
25 
26 version = OPENSSL_THREADS;
27 
28 version = OPENSSL_NO_BUF_FREELISTS;
29 version = OPENSSL_NO_GMP;
30 version = OPENSSL_NO_JPAKE;
31 version = OPENSSL_NO_KRB5;
32 version = OPENSSL_NO_RSAX;
33 version = OPENSSL_NO_SHA0;
34 version = OPENSSL_NO_SSL2;
35 version = OPENSSL_NO_STORE;
36 
37 /*
38  * OPENSSL_NO_* flags that currently appear in OpenSSL.
39  */
40 
41 /* version = OPENSSL_NO_AFALGENG; */
42 /* version = OPENSSL_NO_ALGORITHMS; */
43 /* version = OPENSSL_NO_ARIA; */
44 /* version = OPENSSL_NO_ASM; */
45 version = OPENSSL_NO_ASYNC;
46 /* version = OPENSSL_NO_AUTOALGINIT; */
47 /* version = OPENSSL_NO_AUTOERRINIT; */
48 /* version = OPENSSL_NO_AUTOLOAD_CONFIG; */
49 /* version = OPENSSL_NO_BF; */
50 /* version = OPENSSL_NO_BLAKE2; */
51 /* version = OPENSSL_NO_CAMELLIA; */
52 /* version = OPENSSL_NO_CAPIENG; */
53 /* version = OPENSSL_NO_CAST; */
54 /* version = OPENSSL_NO_CHACHA; */
55 /* version = OPENSSL_NO_CMAC; */
56 /* version = OPENSSL_NO_CMS; */
57 version = OPENSSL_NO_COMP; /* XXX */
58 /* version = OPENSSL_NO_CRYPTO_MDEBUG; */
59 /* version = OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE; */
60 /* version = OPENSSL_NO_CT; */
61 /* version = OPENSSL_NO_DECC_INIT; */
62 /* version = OPENSSL_NO_DES; */
63 /* version = OPENSSL_NO_DEVCRYPTOENG; */
64 /* version = OPENSSL_NO_DGRAM; */
65 /* version = OPENSSL_NO_DH; */
66 /* version = OPENSSL_NO_DSA; */
67 /* version = OPENSSL_NO_DSO; */
68 /* version = OPENSSL_NO_DTLS; */
69 /* version = OPENSSL_NO_DTLS1; */
70 /* version = OPENSSL_NO_DTLS1_2; */
71 /* version = OPENSSL_NO_DTLS1_2_METHOD; */
72 /* version = OPENSSL_NO_DTLS1_METHOD; */
73 version = OPENSSL_NO_DYNAMIC_ENGINE;
74 /* version = OPENSSL_NO_EC; */
75 /* version = OPENSSL_NO_EC2M; */
76 version = OPENSSL_NO_EC_NISTP_64_GCC_128;
77 version = OPENSSL_NO_EGD;
78 /* version = OPENSSL_NO_ENGINE; */
79 /* version = OPENSSL_NO_ERR; */
80 /* version = OPENSSL_NO_FUZZ_AFL; */
81 /* version = OPENSSL_NO_FUZZ_LIBFUZZER; */
82 /* version = OPENSSL_NO_GOST; */
83 version = OPENSSL_NO_HEARTBEATS;
84 /* version = OPENSSL_NO_HW; */
85 /* version = OPENSSL_NO_HW_PADLOCK; */
86 /* version = OPENSSL_NO_IDEA; */
87 /* version = OPENSSL_NO_INLINE_ASM; */
88 version = OPENSSL_NO_MD2;
89 /* version = OPENSSL_NO_MD4; */
90 /* version = OPENSSL_NO_MD5; */
91 version = OPENSSL_NO_MDC2;
92 /* version = OPENSSL_NO_MULTIBLOCK; */
93 /* version = OPENSSL_NO_NEXTPROTONEG; */
94 /* version = OPENSSL_NO_OCB; */
95 /* version = OPENSSL_NO_OCSP; */
96 /* version = OPENSSL_NO_PINSHARED; */
97 /* version = OPENSSL_NO_POLY1305; */
98 /* version = OPENSSL_NO_POSIX_IO; */
99 version = OPENSSL_NO_PSK;
100 /* version = OPENSSL_NO_RC2; */
101 /* version = OPENSSL_NO_RC4; */
102 version = OPENSSL_NO_RC5;
103 /* version = OPENSSL_NO_RDRAND; */
104 version = OPENSSL_NO_RFC3779;
105 /* version = OPENSSL_NO_RMD160; */
106 /* version = OPENSSL_NO_RSA; */
107 /* version = OPENSSL_NO_SCRYPT; */
108 version = OPENSSL_NO_SCTP;
109 /* version = OPENSSL_NO_SECURE_MEMORY; */
110 version = OPENSSL_NO_SEED;
111 /* version = OPENSSL_NO_SIPHASH; */
112 /* version = OPENSSL_NO_SM2; */
113 /* version = OPENSSL_NO_SM3; */
114 /* version = OPENSSL_NO_SM4; */
115 /* version = OPENSSL_NO_SOCK; */
116 version = OPENSSL_NO_SRP;
117 /* version = OPENSSL_NO_SRTP; */
118 version = OPENSSL_NO_SSL3;
119 version = OPENSSL_NO_SSL3_METHOD;
120 version = OPENSSL_NO_SSL_TRACE;
121 /* version = OPENSSL_NO_STATIC_ENGINE; */
122 /* version = OPENSSL_NO_STDIO; */
123 /* version = OPENSSL_NO_TLS; */
124 /* version = OPENSSL_NO_TLS1; */
125 /* version = OPENSSL_NO_TLS1_1; */
126 /* version = OPENSSL_NO_TLS1_1_METHOD; */
127 /* version = OPENSSL_NO_TLS1_2; */
128 /* version = OPENSSL_NO_TLS1_2_METHOD; */
129 
130 version (LIBRESSL_HAS_TLS1_3) {
131 } else {
132 	version = OPENSSL_NO_TLS1_3;
133 }
134 
135 /* version = OPENSSL_NO_TLS1_METHOD; */
136 /* version = OPENSSL_NO_TS; */
137 /* version = OPENSSL_NO_UI_CONSOLE; */
138 /* version = OPENSSL_NO_UNIT_TEST; */
139 /* version = OPENSSL_NO_WEAK_SSL_CIPHERS; */
140 /* version = OPENSSL_NO_WHIRLPOOL; */