mirror of
https://github.com/Mbed-TLS/mbedtls.git
synced 2024-12-29 09:21:19 +00:00
e1d8326e90
mbedtls_mpi_mod_raw_random() and mbedtls_mpi_mod_random() were producing output in the Montgomery representation, instead of obeying the representation chosen in the modulus structure. Fix this. Duplicate the test cases for mod-random output to have separate test cases for each representation. Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
341 lines
10 KiB
Plaintext
341 lines
10 KiB
Plaintext
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
|