MPI core random basic: 0..1 mpi_core_random_basic:0:"01":0 MPI core random basic: 0..2 mpi_core_random_basic:0:"02":0 MPI core random basic: 1..2 mpi_core_random_basic:1:"02":0 MPI core random basic: 2^30..2^31 mpi_core_random_basic:0x40000000:"80000000":0 MPI core random basic: 0..2^128 mpi_core_random_basic:0x40000000:"0100000000000000000000000000000000":0 MPI core random basic: 2^30..2^129 mpi_core_random_basic:0x40000000:"0200000000000000000000000000000000":0 # Use the same data values for mpi_core_random_basic->NOT_ACCEPTABLE # and for mpi_XXX_random_values where we want to return NOT_ACCEPTABLE # but this isn't checked at runtime. MPI core random basic: 2^28-1..2^28+1 (NOT_ACCEPTABLE) mpi_core_random_basic:0x0fffffff:"10000001":MBEDTLS_ERR_MPI_NOT_ACCEPTABLE MPI random legacy=core: 2^28-1..2^28+1 (NOT_ACCEPTABLE) mpi_legacy_random_values:0x0fffffff:"10000001" MPI random mod=core: 2^28-1..2^28+1 (NOT_ACCEPTABLE) (Mont) mpi_mod_random_values:0x0fffffff:"10000001":MBEDTLS_MPI_MOD_REP_MONTGOMERY MPI random mod=core: 2^28-1..2^28+1 (NOT_ACCEPTABLE) (canon) mpi_mod_random_values:0x0fffffff:"10000001":MBEDTLS_MPI_MOD_REP_OPT_RED MPI core random basic: 2^29-1..2^29+1 (NOT_ACCEPTABLE) mpi_core_random_basic:0x1fffffff:"20000001":MBEDTLS_ERR_MPI_NOT_ACCEPTABLE MPI random legacy=core: 2^29-1..2^29+1 (NOT_ACCEPTABLE) mpi_legacy_random_values:0x1fffffff:"20000001" MPI random mod=core: 2^29-1..2^29+1 (NOT_ACCEPTABLE) (Mont) mpi_mod_random_values:0x1fffffff:"20000001":MBEDTLS_MPI_MOD_REP_MONTGOMERY MPI random mod=core: 2^29-1..2^29+1 (NOT_ACCEPTABLE) (canon) mpi_mod_random_values:0x1fffffff:"20000001":MBEDTLS_MPI_MOD_REP_OPT_RED MPI core random basic: 2^30-1..2^30+1 (NOT_ACCEPTABLE) mpi_core_random_basic:0x3fffffff:"40000001":MBEDTLS_ERR_MPI_NOT_ACCEPTABLE MPI random legacy=core: 2^30-1..2^30+1 (NOT_ACCEPTABLE) mpi_legacy_random_values:0x3fffffff:"40000001" MPI random mod=core: 2^30-1..2^30+1 (NOT_ACCEPTABLE) (Mont) mpi_mod_random_values:0x3fffffff:"40000001":MBEDTLS_MPI_MOD_REP_MONTGOMERY MPI random mod=core: 2^30-1..2^30+1 (NOT_ACCEPTABLE) (canon) mpi_mod_random_values:0x3fffffff:"40000001":MBEDTLS_MPI_MOD_REP_OPT_RED MPI core random basic: 2^31-1..2^31+1 (NOT_ACCEPTABLE) mpi_core_random_basic:0x7fffffff:"80000001":MBEDTLS_ERR_MPI_NOT_ACCEPTABLE MPI random legacy=core: 2^31-1..2^31+1 (NOT_ACCEPTABLE) mpi_legacy_random_values:0x7fffffff:"80000001" MPI random mod=core: 2^31-1..2^31+1 (NOT_ACCEPTABLE) (Mont) mpi_mod_random_values:0x7fffffff:"80000001":MBEDTLS_MPI_MOD_REP_MONTGOMERY MPI random mod=core: 2^31-1..2^31+1 (NOT_ACCEPTABLE) (canon) mpi_mod_random_values:0x7fffffff:"80000001":MBEDTLS_MPI_MOD_REP_OPT_RED MPI random in range: 1..2 mpi_random_many:1:"02":1000 MPI random in range: 1..3 mpi_random_many:1:"03":1000 MPI random in range: 1..4 mpi_random_many:1:"04":1000 MPI random in range: 1..5 mpi_random_many:1:"05":1000 MPI random in range: 1..6 mpi_random_many:1:"06":1000 MPI random in range: 1..7 mpi_random_many:1:"07":1000 MPI random in range: 1..8 mpi_random_many:1:"08":1000 MPI random in range: 1..9 mpi_random_many:1:"09":1000 MPI random in range: 1..10 mpi_random_many:1:"0a":1000 MPI random in range: 1..11 mpi_random_many:1:"0b":1000 MPI random in range: 1..12 mpi_random_many:1:"0c":1000 MPI random in range: 1..255 mpi_random_many:1:"ff":200 MPI random in range: 1..256 mpi_random_many:1:"0100":200 MPI random in range: 1..257 mpi_random_many:1:"0101":200 MPI random in range: 1..272 mpi_random_many:1:"0110":200 MPI random in range: 1..2^64-1 mpi_random_many:1:"ffffffffffffffff":100 MPI random in range: 1..2^64 mpi_random_many:1:"010000000000000000":100 MPI random in range: 1..2^64+1 mpi_random_many:1:"010000000000000001":100 MPI random in range: 1..2^64+2^63 mpi_random_many:1:"018000000000000000":100 MPI random in range: 1..2^65-1 mpi_random_many:1:"01ffffffffffffffff":100 MPI random in range: 1..2^65 mpi_random_many:1:"020000000000000000":100 MPI random in range: 1..2^65+1 mpi_random_many:1:"020000000000000001":100 MPI random in range: 1..2^65+2^64 mpi_random_many:1:"030000000000000000":100 MPI random in range: 1..2^66+2^65 mpi_random_many:1:"060000000000000000":100 MPI random in range: 1..2^71-1 mpi_random_many:1:"7fffffffffffffffff":100 MPI random in range: 1..2^71 mpi_random_many:1:"800000000000000000":100 MPI random in range: 1..2^71+1 mpi_random_many:1:"800000000000000001":100 MPI random in range: 1..2^71+2^70 mpi_random_many:1:"c00000000000000000":100 MPI random in range: 1..2^72-1 mpi_random_many:1:"ffffffffffffffffff":100 MPI random in range: 1..2^72 mpi_random_many:1:"01000000000000000000":100 MPI random in range: 1..2^72+1 mpi_random_many:1:"01000000000000000001":100 MPI random in range: 1..2^72+2^71 mpi_random_many:1:"01800000000000000000":100 MPI random in range: 0..1 mpi_random_many:0:"04":10000 MPI random in range: 0..4 mpi_random_many:0:"04":10000 MPI random in range: 2..4 mpi_random_many:2:"04":10000 MPI random in range: 3..4 mpi_random_many:3:"04":10000 MPI random in range: smaller result mpi_random_sizes:1:"aaaaaaaaaaaaaaaabbbbbbbbbbbbbbbb":1:0 MPI random in range: same size result (32-bit limbs) mpi_random_sizes:1:"aaaaaaaaaaaaaaaa":2:0 MPI random in range: same size result (64-bit limbs) mpi_random_sizes:1:"aaaaaaaaaaaaaaaa":1:0 MPI random in range: larger result mpi_random_sizes:1:"aaaaaaaaaaaaaaaa":3:0 ## The "0 limb in upper bound" tests rely on the fact that ## mbedtls_mpi_read_binary() bases the size of the MPI on the size of ## the input, without first checking for leading zeros. If this was ## not the case, the tests would still pass, but would not exercise ## the advertised behavior. MPI random in range: leading 0 limb in upper bound #0 mpi_random_sizes:1:"00aaaaaaaaaaaaaaaa":0:0 MPI random in range: leading 0 limb in upper bound #1 mpi_random_sizes:1:"00aaaaaaaaaaaaaaaa":1:0 MPI random in range: leading 0 limb in upper bound #2 mpi_random_sizes:1:"00aaaaaaaaaaaaaaaa":2:0 MPI random in range: leading 0 limb in upper bound #3 mpi_random_sizes:1:"00aaaaaaaaaaaaaaaa":3:0 MPI random in range: leading 0 limb in upper bound #4 mpi_random_sizes:1:"00aaaaaaaaaaaaaaaa":4:0 MPI random in range: previously small >0 mpi_random_sizes:1:"1234567890":4:1 MPI random in range: previously small <0 mpi_random_sizes:1:"1234567890":4:-1 MPI random in range: previously large >0 mpi_random_sizes:1:"1234":4:65 MPI random in range: previously large <0 mpi_random_sizes:1:"1234":4:-65 MPI random bad arguments: min < 0 mpi_random_fail:-1:"04":MBEDTLS_ERR_MPI_BAD_INPUT_DATA MPI random bad arguments: min = N = 0 mpi_random_fail:0:"00":MBEDTLS_ERR_MPI_BAD_INPUT_DATA MPI random bad arguments: min = N = 1 mpi_random_fail:1:"01":MBEDTLS_ERR_MPI_BAD_INPUT_DATA MPI random bad arguments: min > N = 0 mpi_random_fail:1:"00":MBEDTLS_ERR_MPI_BAD_INPUT_DATA MPI random bad arguments: min > N = 1 mpi_random_fail:2:"01":MBEDTLS_ERR_MPI_BAD_INPUT_DATA MPI random bad arguments: min > N = 1, 0 limb in upper bound mpi_random_fail:2:"000000000000000001":MBEDTLS_ERR_MPI_BAD_INPUT_DATA MPI random legacy=core: 0..1 mpi_legacy_random_values:0:"01" MPI random legacy=core: 0..2 mpi_legacy_random_values:0:"02" MPI random legacy=core: 1..2 mpi_legacy_random_values:1:"02" MPI random legacy=core: 2^30..2^31 mpi_legacy_random_values:0x40000000:"80000000" MPI random legacy=core: 2^31-1..2^32-1 mpi_legacy_random_values:0x7fffffff:"ffffffff" MPI random legacy=core: 0..2^256 mpi_legacy_random_values:0:"010000000000000000000000000000000000000000000000000000000000000000" MPI random legacy=core: 0..2^256+1 mpi_legacy_random_values:0:"010000000000000000000000000000000000000000000000000000000000000001" MPI random mod=core: 0..1 (Mont) mpi_mod_random_values:0:"01":MBEDTLS_MPI_MOD_REP_MONTGOMERY MPI random mod=core: 0..1 (canon) mpi_mod_random_values:0:"01":MBEDTLS_MPI_MOD_REP_OPT_RED MPI random mod=core: 0..3 (Mont) mpi_mod_random_values:0:"03":MBEDTLS_MPI_MOD_REP_MONTGOMERY MPI random mod=core: 0..3 (canon) mpi_mod_random_values:0:"03":MBEDTLS_MPI_MOD_REP_OPT_RED MPI random mod=core: 1..3 (Mont) mpi_mod_random_values:1:"03":MBEDTLS_MPI_MOD_REP_MONTGOMERY MPI random mod=core: 1..3 (canon) mpi_mod_random_values:1:"03":MBEDTLS_MPI_MOD_REP_OPT_RED MPI random mod=core: 2^30..2^31-1 (Mont) mpi_mod_random_values:0x40000000:"7fffffff":MBEDTLS_MPI_MOD_REP_MONTGOMERY MPI random mod=core: 2^30..2^31-1 (canon) mpi_mod_random_values:0x40000000:"7fffffff":MBEDTLS_MPI_MOD_REP_OPT_RED MPI random mod=core: 2^31-1..2^32-1 (Mont) mpi_mod_random_values:0x7fffffff:"ffffffff":MBEDTLS_MPI_MOD_REP_MONTGOMERY MPI random mod=core: 2^31-1..2^32-1 (canon) mpi_mod_random_values:0x7fffffff:"ffffffff":MBEDTLS_MPI_MOD_REP_OPT_RED MPI random mod=core: 0..2^256+1 (Mont) mpi_mod_random_values:0:"010000000000000000000000000000000000000000000000000000000000000001":MBEDTLS_MPI_MOD_REP_MONTGOMERY MPI random mod=core: 0..2^256+1 (canon) mpi_mod_random_values:0:"010000000000000000000000000000000000000000000000000000000000000001":MBEDTLS_MPI_MOD_REP_OPT_RED MPI random mod validation: 1 limb, good, 0..1 mpi_mod_random_validation:0:"1":0:0 MPI random mod validation: 1 limb, good, 1..3 mpi_mod_random_validation:1:"3":0:0 MPI random mod validation: 1 limb, good, 2..3 mpi_mod_random_validation:2:"3":0:0 MPI random mod validation: 1 limb, good, 3..5 mpi_mod_random_validation:3:"5":0:0 MPI random mod validation: 1 limb, good, 4..5 mpi_mod_random_validation:4:"5":0:0 MPI random mod validation: 1 limb, good, 5..7 mpi_mod_random_validation:5:"7":0:0 MPI random mod validation: 1 limb, good, 6..7 mpi_mod_random_validation:6:"7":0:0 MPI random mod validation: 1 limb, good, 0..0x123 mpi_mod_random_validation:0:"123":0:0 MPI random mod validation: 2+ limbs, good mpi_mod_random_validation:0:"01234567890123456789":0:0 MPI random mod validation: 1 limb, output null mpi_mod_random_validation:0:"123":-1:MBEDTLS_ERR_MPI_BAD_INPUT_DATA MPI random mod validation: 1 limb, output too large mpi_mod_random_validation:0:"123":1:MBEDTLS_ERR_MPI_BAD_INPUT_DATA MPI random mod validation: 2+ limbs, output too small mpi_mod_random_validation:0:"01234567890123456789":-1:MBEDTLS_ERR_MPI_BAD_INPUT_DATA MPI random mod validation: 2+ limbs, output too large mpi_mod_random_validation:0:"01234567890123456789":1:MBEDTLS_ERR_MPI_BAD_INPUT_DATA MPI random mod validation: min == upper bound mpi_mod_random_validation:0x123:"123":-1:MBEDTLS_ERR_MPI_BAD_INPUT_DATA MPI random mod validation: min > upper bound mpi_mod_random_validation:0x124:"123":-1:MBEDTLS_ERR_MPI_BAD_INPUT_DATA