# about compilation
option('use_external_rand', type: 'boolean', value: false, description: 'use external get_random() implementation')
option('use_external_print', type: 'boolean', value: false, description: 'use external ext_printf() implementation')
option('use_external_time', type: 'boolean', value: false, description: 'use external get_ms_time() implementation')
option('with_tests', type: 'boolean', value: false, description: 'enable test suites support')
option('with_rand_source', type: 'string', value: '', description: 'get_random() implementation source')
option('with_wordsize', type: 'combo', choices : ['0', '16', '32', '64'], value : '0', description: 'force wordsize, 0 means no forcing')
option('with_stdlib', type: 'boolean', value : true, description: 'trigger stdlib usage (default to true)')
option('with_debug', type: 'boolean', value : false, description: 'activate libecc debug assertions and checks')
option('use_cryptofuzz', type: 'boolean', value : false, description: 'activate cryptofuzz fuzzing tool API (mainly raw signatures)')
option('assert_print', type: 'boolean', value : false, description: 'activate printing on assertions')
option('no_warn_unused_ret', type: 'boolean', value : false, description: 'do not trigger a warning for unused functions return values')
# about security
option('with_sig_blinding', type: 'boolean', value: false, description: 'blind signature against some side channels')
option('with_complete_formulas', type: 'boolean', value: true, description: 'use complete formulas for point addition and doubling')
option('with_double_add', type: 'combo', choices: ['unset', 'false', 'true'], value: 'unset', description: 'force Double and Add always usage')
option('with_monty_ladder', type: 'combo', choices: ['unset', 'false', 'true'], value: 'unset', description: 'force Montgomery Ladder usage')
option('with_small_stack', type: 'boolean', value: false, description: 'force small stack usage')
# about curves
option('with_iso14888_3_ecrdsa', type: 'boolean', value: false, description: 'ISO14888-3 version of the ECRDSA algorithm with discrepancies from the Russian RFC references')
# curve, sig and hash selectors. These selectors can be used only if with_override_ecc_config is set to true
option('with_override_ecc_config', type: 'boolean', value: false, description: 'disable all default config. manually select all cryptographic engines')
# All the curves options
option('with_curves', type: 'array', choices: [
'frp256v1',
'secp192r1',
'secp224r1',
'secp256r1',
'secp384r1',
'secp521r1',
'brainpoolp192r1',
'brainpoolp224r1',
'brainpoolp256r1',
'brainpoolp384r1',
'brainpoolp512r1',
'gost256',
'gost512',
'sm2p256test',
'sm2p256v1',
'wei25519',
'wei448',
'gost_r3410_2012_256_paramseta',
'secp256k1',
'gost_r3410_2001_testparamset',
'gost_r3410_2001_cryptopro_a_paramset',
'gost_r3410_2001_cryptopro_b_paramset',
'gost_r3410_2001_cryptopro_c_paramset',
'gost_r3410_2001_cryptopro_xcha_paramset',
'gost_r3410_2001_cryptopro_xchb_paramset',
'gost_r3410_2012_256_paramsetb',
'gost_r3410_2012_256_paramsetc',
'gost_r3410_2012_256_paramsetd',
'gost_r3410_2012_512_paramsettest',
'gost_r3410_2012_512_paramseta',
'gost_r3410_2012_512_paramsetb',
'gost_r3410_2012_512_paramsetc',
'secp192k1',
'secp224k1',
'brainpoolp192t1',
'brainpoolp224t1',
'brainpoolp256t1',
'brainpoolp320r1',
'brainpoolp320t1',
'brainpoolp384t1',
'brainpoolp512t1',
'bign256v1',
'bign384v1',
'bign512v1',
# ADD curves meson option here
# XXX: Do not remove the comment above, as it is
# used by external tools as a placeholder to add or
# remove automatically generated code.
],
value: [], description: 'enable a set of curves when override is set')
# All the hashes options
option('with_hashes', type: 'array', choices: [
'sha224',
'sha256',
'sha384',
'sha512',
'sha512_224',
'sha512_256',
'sha3_224',
'sha3_256',
'sha3_384',
'sha3_512',
'sm3',
'shake256',
'streebog256',
'streebog512',
'ripemd160',
'belt_hash',
'bash224',
'bash256',
'bash384',
'bash512',
'with_hmac',
],
value: [], description: 'enable a set of hashes when override is set')
# All the algorithms options
option('with_algs', type: 'array', choices: [
'sig_ecdsa',
'sig_eckcdsa',
'sig_ecsdsa',
'sig_ecosdsa',
'sig_ecfsdsa',
'sig_ecgdsa',
'sig_ecrdsa',
'sig_sm2',
'sig_eddsa25519',
'sig_eddsa448',
'sig_decdsa',
'sig_bign',
'sig_dbign',
'sig_bip0340',
'ecccdh',
'x25519',
'x448',
],
value: [], description: 'enable a set of algorithms when override is set')