xref: /freebsd-src/contrib/bearssl/src/settings.c (revision 2aaf9152a852aba9eb2036b95f4948ee77988826)
1*0957b409SSimon J. Gerraty /*
2*0957b409SSimon J. Gerraty  * Copyright (c) 2017 Thomas Pornin <pornin@bolet.org>
3*0957b409SSimon J. Gerraty  *
4*0957b409SSimon J. Gerraty  * Permission is hereby granted, free of charge, to any person obtaining
5*0957b409SSimon J. Gerraty  * a copy of this software and associated documentation files (the
6*0957b409SSimon J. Gerraty  * "Software"), to deal in the Software without restriction, including
7*0957b409SSimon J. Gerraty  * without limitation the rights to use, copy, modify, merge, publish,
8*0957b409SSimon J. Gerraty  * distribute, sublicense, and/or sell copies of the Software, and to
9*0957b409SSimon J. Gerraty  * permit persons to whom the Software is furnished to do so, subject to
10*0957b409SSimon J. Gerraty  * the following conditions:
11*0957b409SSimon J. Gerraty  *
12*0957b409SSimon J. Gerraty  * The above copyright notice and this permission notice shall be
13*0957b409SSimon J. Gerraty  * included in all copies or substantial portions of the Software.
14*0957b409SSimon J. Gerraty  *
15*0957b409SSimon J. Gerraty  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16*0957b409SSimon J. Gerraty  * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17*0957b409SSimon J. Gerraty  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18*0957b409SSimon J. Gerraty  * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
19*0957b409SSimon J. Gerraty  * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
20*0957b409SSimon J. Gerraty  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
21*0957b409SSimon J. Gerraty  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22*0957b409SSimon J. Gerraty  * SOFTWARE.
23*0957b409SSimon J. Gerraty  */
24*0957b409SSimon J. Gerraty 
25*0957b409SSimon J. Gerraty #include "inner.h"
26*0957b409SSimon J. Gerraty 
27*0957b409SSimon J. Gerraty static const br_config_option config[] = {
28*0957b409SSimon J. Gerraty 	{ "BR_64",
29*0957b409SSimon J. Gerraty #if BR_64
30*0957b409SSimon J. Gerraty 	 1
31*0957b409SSimon J. Gerraty #else
32*0957b409SSimon J. Gerraty 	 0
33*0957b409SSimon J. Gerraty #endif
34*0957b409SSimon J. Gerraty 	},
35*0957b409SSimon J. Gerraty 	{ "BR_AES_X86NI",
36*0957b409SSimon J. Gerraty #if BR_AES_X86NI
37*0957b409SSimon J. Gerraty 	 1
38*0957b409SSimon J. Gerraty #else
39*0957b409SSimon J. Gerraty 	 0
40*0957b409SSimon J. Gerraty #endif
41*0957b409SSimon J. Gerraty 	},
42*0957b409SSimon J. Gerraty 	{ "BR_amd64",
43*0957b409SSimon J. Gerraty #if BR_amd64
44*0957b409SSimon J. Gerraty 	 1
45*0957b409SSimon J. Gerraty #else
46*0957b409SSimon J. Gerraty 	 0
47*0957b409SSimon J. Gerraty #endif
48*0957b409SSimon J. Gerraty 	},
49*0957b409SSimon J. Gerraty 	{ "BR_ARMEL_CORTEXM_GCC",
50*0957b409SSimon J. Gerraty #if BR_ARMEL_CORTEXM_GCC
51*0957b409SSimon J. Gerraty 	 1
52*0957b409SSimon J. Gerraty #else
53*0957b409SSimon J. Gerraty 	 0
54*0957b409SSimon J. Gerraty #endif
55*0957b409SSimon J. Gerraty 	},
56*0957b409SSimon J. Gerraty 	{ "BR_BE_UNALIGNED",
57*0957b409SSimon J. Gerraty #if BR_BE_UNALIGNED
58*0957b409SSimon J. Gerraty 	 1
59*0957b409SSimon J. Gerraty #else
60*0957b409SSimon J. Gerraty 	 0
61*0957b409SSimon J. Gerraty #endif
62*0957b409SSimon J. Gerraty 	},
63*0957b409SSimon J. Gerraty 	{ "BR_CLANG",
64*0957b409SSimon J. Gerraty #if BR_CLANG
65*0957b409SSimon J. Gerraty 	 1
66*0957b409SSimon J. Gerraty #else
67*0957b409SSimon J. Gerraty 	 0
68*0957b409SSimon J. Gerraty #endif
69*0957b409SSimon J. Gerraty 	},
70*0957b409SSimon J. Gerraty 	{ "BR_CLANG_3_7",
71*0957b409SSimon J. Gerraty #if BR_CLANG_3_7
72*0957b409SSimon J. Gerraty 	 1
73*0957b409SSimon J. Gerraty #else
74*0957b409SSimon J. Gerraty 	 0
75*0957b409SSimon J. Gerraty #endif
76*0957b409SSimon J. Gerraty 	},
77*0957b409SSimon J. Gerraty 	{ "BR_CLANG_3_8",
78*0957b409SSimon J. Gerraty #if BR_CLANG_3_8
79*0957b409SSimon J. Gerraty 	 1
80*0957b409SSimon J. Gerraty #else
81*0957b409SSimon J. Gerraty 	 0
82*0957b409SSimon J. Gerraty #endif
83*0957b409SSimon J. Gerraty 	},
84*0957b409SSimon J. Gerraty 	{ "BR_CT_MUL15",
85*0957b409SSimon J. Gerraty #if BR_CT_MUL15
86*0957b409SSimon J. Gerraty 	 1
87*0957b409SSimon J. Gerraty #else
88*0957b409SSimon J. Gerraty 	 0
89*0957b409SSimon J. Gerraty #endif
90*0957b409SSimon J. Gerraty 	},
91*0957b409SSimon J. Gerraty 	{ "BR_CT_MUL31",
92*0957b409SSimon J. Gerraty #if BR_CT_MUL31
93*0957b409SSimon J. Gerraty 	 1
94*0957b409SSimon J. Gerraty #else
95*0957b409SSimon J. Gerraty 	 0
96*0957b409SSimon J. Gerraty #endif
97*0957b409SSimon J. Gerraty 	},
98*0957b409SSimon J. Gerraty 	{ "BR_GCC",
99*0957b409SSimon J. Gerraty #if BR_GCC
100*0957b409SSimon J. Gerraty 	 1
101*0957b409SSimon J. Gerraty #else
102*0957b409SSimon J. Gerraty 	 0
103*0957b409SSimon J. Gerraty #endif
104*0957b409SSimon J. Gerraty 	},
105*0957b409SSimon J. Gerraty 	{ "BR_GCC_4_4",
106*0957b409SSimon J. Gerraty #if BR_GCC_4_4
107*0957b409SSimon J. Gerraty 	 1
108*0957b409SSimon J. Gerraty #else
109*0957b409SSimon J. Gerraty 	 0
110*0957b409SSimon J. Gerraty #endif
111*0957b409SSimon J. Gerraty 	},
112*0957b409SSimon J. Gerraty 	{ "BR_GCC_4_5",
113*0957b409SSimon J. Gerraty #if BR_GCC_4_5
114*0957b409SSimon J. Gerraty 	 1
115*0957b409SSimon J. Gerraty #else
116*0957b409SSimon J. Gerraty 	 0
117*0957b409SSimon J. Gerraty #endif
118*0957b409SSimon J. Gerraty 	},
119*0957b409SSimon J. Gerraty 	{ "BR_GCC_4_6",
120*0957b409SSimon J. Gerraty #if BR_GCC_4_6
121*0957b409SSimon J. Gerraty 	 1
122*0957b409SSimon J. Gerraty #else
123*0957b409SSimon J. Gerraty 	 0
124*0957b409SSimon J. Gerraty #endif
125*0957b409SSimon J. Gerraty 	},
126*0957b409SSimon J. Gerraty 	{ "BR_GCC_4_7",
127*0957b409SSimon J. Gerraty #if BR_GCC_4_7
128*0957b409SSimon J. Gerraty 	 1
129*0957b409SSimon J. Gerraty #else
130*0957b409SSimon J. Gerraty 	 0
131*0957b409SSimon J. Gerraty #endif
132*0957b409SSimon J. Gerraty 	},
133*0957b409SSimon J. Gerraty 	{ "BR_GCC_4_8",
134*0957b409SSimon J. Gerraty #if BR_GCC_4_8
135*0957b409SSimon J. Gerraty 	 1
136*0957b409SSimon J. Gerraty #else
137*0957b409SSimon J. Gerraty 	 0
138*0957b409SSimon J. Gerraty #endif
139*0957b409SSimon J. Gerraty 	},
140*0957b409SSimon J. Gerraty 	{ "BR_GCC_4_9",
141*0957b409SSimon J. Gerraty #if BR_GCC_4_9
142*0957b409SSimon J. Gerraty 	 1
143*0957b409SSimon J. Gerraty #else
144*0957b409SSimon J. Gerraty 	 0
145*0957b409SSimon J. Gerraty #endif
146*0957b409SSimon J. Gerraty 	},
147*0957b409SSimon J. Gerraty 	{ "BR_GCC_5_0",
148*0957b409SSimon J. Gerraty #if BR_GCC_5_0
149*0957b409SSimon J. Gerraty 	 1
150*0957b409SSimon J. Gerraty #else
151*0957b409SSimon J. Gerraty 	 0
152*0957b409SSimon J. Gerraty #endif
153*0957b409SSimon J. Gerraty 	},
154*0957b409SSimon J. Gerraty 	{ "BR_i386",
155*0957b409SSimon J. Gerraty #if BR_i386
156*0957b409SSimon J. Gerraty 	 1
157*0957b409SSimon J. Gerraty #else
158*0957b409SSimon J. Gerraty 	 0
159*0957b409SSimon J. Gerraty #endif
160*0957b409SSimon J. Gerraty 	},
161*0957b409SSimon J. Gerraty 	{ "BR_INT128",
162*0957b409SSimon J. Gerraty #if BR_INT128
163*0957b409SSimon J. Gerraty 	 1
164*0957b409SSimon J. Gerraty #else
165*0957b409SSimon J. Gerraty 	 0
166*0957b409SSimon J. Gerraty #endif
167*0957b409SSimon J. Gerraty 	},
168*0957b409SSimon J. Gerraty 	{ "BR_LE_UNALIGNED",
169*0957b409SSimon J. Gerraty #if BR_LE_UNALIGNED
170*0957b409SSimon J. Gerraty 	 1
171*0957b409SSimon J. Gerraty #else
172*0957b409SSimon J. Gerraty 	 0
173*0957b409SSimon J. Gerraty #endif
174*0957b409SSimon J. Gerraty 	},
175*0957b409SSimon J. Gerraty 	{ "BR_LOMUL",
176*0957b409SSimon J. Gerraty #if BR_LOMUL
177*0957b409SSimon J. Gerraty 	 1
178*0957b409SSimon J. Gerraty #else
179*0957b409SSimon J. Gerraty 	 0
180*0957b409SSimon J. Gerraty #endif
181*0957b409SSimon J. Gerraty 	},
182*0957b409SSimon J. Gerraty 	{ "BR_MAX_EC_SIZE", BR_MAX_EC_SIZE },
183*0957b409SSimon J. Gerraty 	{ "BR_MAX_RSA_SIZE", BR_MAX_RSA_SIZE },
184*0957b409SSimon J. Gerraty 	{ "BR_MAX_RSA_FACTOR", BR_MAX_RSA_FACTOR },
185*0957b409SSimon J. Gerraty 	{ "BR_MSC",
186*0957b409SSimon J. Gerraty #if BR_MSC
187*0957b409SSimon J. Gerraty 	 1
188*0957b409SSimon J. Gerraty #else
189*0957b409SSimon J. Gerraty 	 0
190*0957b409SSimon J. Gerraty #endif
191*0957b409SSimon J. Gerraty 	},
192*0957b409SSimon J. Gerraty 	{ "BR_MSC_2005",
193*0957b409SSimon J. Gerraty #if BR_MSC_2005
194*0957b409SSimon J. Gerraty 	 1
195*0957b409SSimon J. Gerraty #else
196*0957b409SSimon J. Gerraty 	 0
197*0957b409SSimon J. Gerraty #endif
198*0957b409SSimon J. Gerraty 	},
199*0957b409SSimon J. Gerraty 	{ "BR_MSC_2008",
200*0957b409SSimon J. Gerraty #if BR_MSC_2008
201*0957b409SSimon J. Gerraty 	 1
202*0957b409SSimon J. Gerraty #else
203*0957b409SSimon J. Gerraty 	 0
204*0957b409SSimon J. Gerraty #endif
205*0957b409SSimon J. Gerraty 	},
206*0957b409SSimon J. Gerraty 	{ "BR_MSC_2010",
207*0957b409SSimon J. Gerraty #if BR_MSC_2010
208*0957b409SSimon J. Gerraty 	 1
209*0957b409SSimon J. Gerraty #else
210*0957b409SSimon J. Gerraty 	 0
211*0957b409SSimon J. Gerraty #endif
212*0957b409SSimon J. Gerraty 	},
213*0957b409SSimon J. Gerraty 	{ "BR_MSC_2012",
214*0957b409SSimon J. Gerraty #if BR_MSC_2012
215*0957b409SSimon J. Gerraty 	 1
216*0957b409SSimon J. Gerraty #else
217*0957b409SSimon J. Gerraty 	 0
218*0957b409SSimon J. Gerraty #endif
219*0957b409SSimon J. Gerraty 	},
220*0957b409SSimon J. Gerraty 	{ "BR_MSC_2013",
221*0957b409SSimon J. Gerraty #if BR_MSC_2013
222*0957b409SSimon J. Gerraty 	 1
223*0957b409SSimon J. Gerraty #else
224*0957b409SSimon J. Gerraty 	 0
225*0957b409SSimon J. Gerraty #endif
226*0957b409SSimon J. Gerraty 	},
227*0957b409SSimon J. Gerraty 	{ "BR_MSC_2015",
228*0957b409SSimon J. Gerraty #if BR_MSC_2015
229*0957b409SSimon J. Gerraty 	 1
230*0957b409SSimon J. Gerraty #else
231*0957b409SSimon J. Gerraty 	 0
232*0957b409SSimon J. Gerraty #endif
233*0957b409SSimon J. Gerraty 	},
234*0957b409SSimon J. Gerraty 	{ "BR_POWER8",
235*0957b409SSimon J. Gerraty #if BR_POWER8
236*0957b409SSimon J. Gerraty 	 1
237*0957b409SSimon J. Gerraty #else
238*0957b409SSimon J. Gerraty 	 0
239*0957b409SSimon J. Gerraty #endif
240*0957b409SSimon J. Gerraty 	},
241*0957b409SSimon J. Gerraty 	{ "BR_RDRAND",
242*0957b409SSimon J. Gerraty #if BR_RDRAND
243*0957b409SSimon J. Gerraty 	 1
244*0957b409SSimon J. Gerraty #else
245*0957b409SSimon J. Gerraty 	 0
246*0957b409SSimon J. Gerraty #endif
247*0957b409SSimon J. Gerraty 	},
248*0957b409SSimon J. Gerraty 	{ "BR_SLOW_MUL",
249*0957b409SSimon J. Gerraty #if BR_SLOW_MUL
250*0957b409SSimon J. Gerraty 	 1
251*0957b409SSimon J. Gerraty #else
252*0957b409SSimon J. Gerraty 	 0
253*0957b409SSimon J. Gerraty #endif
254*0957b409SSimon J. Gerraty 	},
255*0957b409SSimon J. Gerraty 	{ "BR_SLOW_MUL15",
256*0957b409SSimon J. Gerraty #if BR_SLOW_MUL15
257*0957b409SSimon J. Gerraty 	 1
258*0957b409SSimon J. Gerraty #else
259*0957b409SSimon J. Gerraty 	 0
260*0957b409SSimon J. Gerraty #endif
261*0957b409SSimon J. Gerraty 	},
262*0957b409SSimon J. Gerraty 	{ "BR_SSE2",
263*0957b409SSimon J. Gerraty #if BR_SSE2
264*0957b409SSimon J. Gerraty 	 1
265*0957b409SSimon J. Gerraty #else
266*0957b409SSimon J. Gerraty 	 0
267*0957b409SSimon J. Gerraty #endif
268*0957b409SSimon J. Gerraty 	},
269*0957b409SSimon J. Gerraty 	{ "BR_UMUL128",
270*0957b409SSimon J. Gerraty #if BR_UMUL128
271*0957b409SSimon J. Gerraty 	 1
272*0957b409SSimon J. Gerraty #else
273*0957b409SSimon J. Gerraty 	 0
274*0957b409SSimon J. Gerraty #endif
275*0957b409SSimon J. Gerraty 	},
276*0957b409SSimon J. Gerraty 	{ "BR_USE_UNIX_TIME",
277*0957b409SSimon J. Gerraty #if BR_USE_UNIX_TIME
278*0957b409SSimon J. Gerraty 	 1
279*0957b409SSimon J. Gerraty #else
280*0957b409SSimon J. Gerraty 	 0
281*0957b409SSimon J. Gerraty #endif
282*0957b409SSimon J. Gerraty 	},
283*0957b409SSimon J. Gerraty 	{ "BR_USE_WIN32_RAND",
284*0957b409SSimon J. Gerraty #if BR_USE_WIN32_RAND
285*0957b409SSimon J. Gerraty 	 1
286*0957b409SSimon J. Gerraty #else
287*0957b409SSimon J. Gerraty 	 0
288*0957b409SSimon J. Gerraty #endif
289*0957b409SSimon J. Gerraty 	},
290*0957b409SSimon J. Gerraty 	{ "BR_USE_WIN32_TIME",
291*0957b409SSimon J. Gerraty #if BR_USE_WIN32_TIME
292*0957b409SSimon J. Gerraty 	 1
293*0957b409SSimon J. Gerraty #else
294*0957b409SSimon J. Gerraty 	 0
295*0957b409SSimon J. Gerraty #endif
296*0957b409SSimon J. Gerraty 	},
297*0957b409SSimon J. Gerraty 
298*0957b409SSimon J. Gerraty 	{ NULL, 0 }
299*0957b409SSimon J. Gerraty };
300*0957b409SSimon J. Gerraty 
301*0957b409SSimon J. Gerraty /* see bearssl.h */
302*0957b409SSimon J. Gerraty const br_config_option *
br_get_config(void)303*0957b409SSimon J. Gerraty br_get_config(void)
304*0957b409SSimon J. Gerraty {
305*0957b409SSimon J. Gerraty 	return config;
306*0957b409SSimon J. Gerraty }
307