xref: /freebsd/crypto/libecc/meson.options (revision f0865ec9906d5a18fa2a3b61381f22ce16e606ad)
1*f0865ec9SKyle Evans# about compilation
2*f0865ec9SKyle Evansoption('use_external_rand', type: 'boolean', value: false, description: 'use external get_random() implementation')
3*f0865ec9SKyle Evansoption('use_external_print', type: 'boolean', value: false, description: 'use external ext_printf() implementation')
4*f0865ec9SKyle Evansoption('use_external_time', type: 'boolean', value: false, description: 'use external get_ms_time() implementation')
5*f0865ec9SKyle Evansoption('with_tests', type: 'boolean', value: false, description: 'enable test suites support')
6*f0865ec9SKyle Evansoption('with_rand_source', type: 'string', value: '', description: 'get_random() implementation source')
7*f0865ec9SKyle Evansoption('with_wordsize', type: 'combo',  choices : ['0', '16', '32', '64'], value : '0', description: 'force wordsize, 0 means no forcing')
8*f0865ec9SKyle Evansoption('with_stdlib', type: 'boolean', value : true, description: 'trigger stdlib usage (default to true)')
9*f0865ec9SKyle Evansoption('with_debug', type: 'boolean', value : false, description: 'activate libecc debug assertions and checks')
10*f0865ec9SKyle Evansoption('use_cryptofuzz', type: 'boolean', value : false, description: 'activate cryptofuzz fuzzing tool API (mainly raw signatures)')
11*f0865ec9SKyle Evansoption('assert_print', type: 'boolean', value : false, description: 'activate printing on assertions')
12*f0865ec9SKyle Evansoption('no_warn_unused_ret', type: 'boolean', value : false, description: 'do not trigger a warning for unused functions return values')
13*f0865ec9SKyle Evans
14*f0865ec9SKyle Evans# about security
15*f0865ec9SKyle Evansoption('with_sig_blinding', type: 'boolean', value: false, description: 'blind signature against some side channels')
16*f0865ec9SKyle Evansoption('with_complete_formulas', type: 'boolean', value: true, description: 'use complete formulas for point addition and doubling')
17*f0865ec9SKyle Evansoption('with_double_add', type: 'combo', choices: ['unset', 'false', 'true'], value: 'unset', description: 'force Double and Add always usage')
18*f0865ec9SKyle Evansoption('with_monty_ladder', type: 'combo', choices: ['unset', 'false', 'true'], value: 'unset', description: 'force Montgomery Ladder usage')
19*f0865ec9SKyle Evansoption('with_small_stack', type: 'boolean', value: false, description: 'force small stack usage')
20*f0865ec9SKyle Evans
21*f0865ec9SKyle Evans# about curves
22*f0865ec9SKyle Evansoption('with_iso14888_3_ecrdsa', type: 'boolean', value: false, description: 'ISO14888-3 version of the ECRDSA algorithm with discrepancies from the Russian RFC references')
23*f0865ec9SKyle Evans
24*f0865ec9SKyle Evans# curve, sig and hash selectors. These selectors can be used only if with_override_ecc_config is set to true
25*f0865ec9SKyle Evansoption('with_override_ecc_config', type: 'boolean', value: false, description: 'disable all default config. manually select all cryptographic engines')
26*f0865ec9SKyle Evans
27*f0865ec9SKyle Evans
28*f0865ec9SKyle Evans# All the curves options
29*f0865ec9SKyle Evansoption('with_curves', type: 'array', choices: [
30*f0865ec9SKyle Evans	'frp256v1',
31*f0865ec9SKyle Evans	'secp192r1',
32*f0865ec9SKyle Evans	'secp224r1',
33*f0865ec9SKyle Evans	'secp256r1',
34*f0865ec9SKyle Evans	'secp384r1',
35*f0865ec9SKyle Evans	'secp521r1',
36*f0865ec9SKyle Evans	'brainpoolp192r1',
37*f0865ec9SKyle Evans	'brainpoolp224r1',
38*f0865ec9SKyle Evans	'brainpoolp256r1',
39*f0865ec9SKyle Evans	'brainpoolp384r1',
40*f0865ec9SKyle Evans	'brainpoolp512r1',
41*f0865ec9SKyle Evans	'gost256',
42*f0865ec9SKyle Evans	'gost512',
43*f0865ec9SKyle Evans	'sm2p256test',
44*f0865ec9SKyle Evans	'sm2p256v1',
45*f0865ec9SKyle Evans	'wei25519',
46*f0865ec9SKyle Evans	'wei448',
47*f0865ec9SKyle Evans	'gost_r3410_2012_256_paramseta',
48*f0865ec9SKyle Evans	'secp256k1',
49*f0865ec9SKyle Evans	'gost_r3410_2001_testparamset',
50*f0865ec9SKyle Evans	'gost_r3410_2001_cryptopro_a_paramset',
51*f0865ec9SKyle Evans	'gost_r3410_2001_cryptopro_b_paramset',
52*f0865ec9SKyle Evans	'gost_r3410_2001_cryptopro_c_paramset',
53*f0865ec9SKyle Evans	'gost_r3410_2001_cryptopro_xcha_paramset',
54*f0865ec9SKyle Evans	'gost_r3410_2001_cryptopro_xchb_paramset',
55*f0865ec9SKyle Evans	'gost_r3410_2012_256_paramsetb',
56*f0865ec9SKyle Evans	'gost_r3410_2012_256_paramsetc',
57*f0865ec9SKyle Evans	'gost_r3410_2012_256_paramsetd',
58*f0865ec9SKyle Evans	'gost_r3410_2012_512_paramsettest',
59*f0865ec9SKyle Evans	'gost_r3410_2012_512_paramseta',
60*f0865ec9SKyle Evans	'gost_r3410_2012_512_paramsetb',
61*f0865ec9SKyle Evans	'gost_r3410_2012_512_paramsetc',
62*f0865ec9SKyle Evans	'secp192k1',
63*f0865ec9SKyle Evans	'secp224k1',
64*f0865ec9SKyle Evans	'brainpoolp192t1',
65*f0865ec9SKyle Evans	'brainpoolp224t1',
66*f0865ec9SKyle Evans	'brainpoolp256t1',
67*f0865ec9SKyle Evans	'brainpoolp320r1',
68*f0865ec9SKyle Evans	'brainpoolp320t1',
69*f0865ec9SKyle Evans	'brainpoolp384t1',
70*f0865ec9SKyle Evans	'brainpoolp512t1',
71*f0865ec9SKyle Evans	'bign256v1',
72*f0865ec9SKyle Evans	'bign384v1',
73*f0865ec9SKyle Evans	'bign512v1',
74*f0865ec9SKyle Evans# ADD curves meson option here
75*f0865ec9SKyle Evans# XXX: Do not remove the comment above, as it is
76*f0865ec9SKyle Evans# used by external tools as a placeholder to add or
77*f0865ec9SKyle Evans# remove automatically generated code.
78*f0865ec9SKyle Evans	],
79*f0865ec9SKyle Evansvalue: [], description: 'enable a set of curves when override is set')
80*f0865ec9SKyle Evans
81*f0865ec9SKyle Evans# All the hashes options
82*f0865ec9SKyle Evansoption('with_hashes', type: 'array', choices: [
83*f0865ec9SKyle Evans	'sha224',
84*f0865ec9SKyle Evans	'sha256',
85*f0865ec9SKyle Evans	'sha384',
86*f0865ec9SKyle Evans	'sha512',
87*f0865ec9SKyle Evans	'sha512_224',
88*f0865ec9SKyle Evans	'sha512_256',
89*f0865ec9SKyle Evans	'sha3_224',
90*f0865ec9SKyle Evans	'sha3_256',
91*f0865ec9SKyle Evans	'sha3_384',
92*f0865ec9SKyle Evans	'sha3_512',
93*f0865ec9SKyle Evans	'sm3',
94*f0865ec9SKyle Evans	'shake256',
95*f0865ec9SKyle Evans	'streebog256',
96*f0865ec9SKyle Evans	'streebog512',
97*f0865ec9SKyle Evans	'ripemd160',
98*f0865ec9SKyle Evans	'belt_hash',
99*f0865ec9SKyle Evans	'bash224',
100*f0865ec9SKyle Evans	'bash256',
101*f0865ec9SKyle Evans	'bash384',
102*f0865ec9SKyle Evans	'bash512',
103*f0865ec9SKyle Evans	'with_hmac',
104*f0865ec9SKyle Evans	],
105*f0865ec9SKyle Evansvalue: [], description: 'enable a set of hashes when override is set')
106*f0865ec9SKyle Evans
107*f0865ec9SKyle Evans# All the algorithms options
108*f0865ec9SKyle Evansoption('with_algs', type: 'array', choices: [
109*f0865ec9SKyle Evans	'sig_ecdsa',
110*f0865ec9SKyle Evans	'sig_eckcdsa',
111*f0865ec9SKyle Evans	'sig_ecsdsa',
112*f0865ec9SKyle Evans	'sig_ecosdsa',
113*f0865ec9SKyle Evans	'sig_ecfsdsa',
114*f0865ec9SKyle Evans	'sig_ecgdsa',
115*f0865ec9SKyle Evans	'sig_ecrdsa',
116*f0865ec9SKyle Evans	'sig_sm2',
117*f0865ec9SKyle Evans	'sig_eddsa25519',
118*f0865ec9SKyle Evans	'sig_eddsa448',
119*f0865ec9SKyle Evans	'sig_decdsa',
120*f0865ec9SKyle Evans	'sig_bign',
121*f0865ec9SKyle Evans	'sig_dbign',
122*f0865ec9SKyle Evans	'sig_bip0340',
123*f0865ec9SKyle Evans	'ecccdh',
124*f0865ec9SKyle Evans	'x25519',
125*f0865ec9SKyle Evans	'x448',
126*f0865ec9SKyle Evans	],
127*f0865ec9SKyle Evansvalue: [], description: 'enable a set of algorithms when override is set')
128