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