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