blob: b51254b5a31f1a8c52057ec17dc1953565e4de40 [file] [log] [blame]
Gilles Peskinede09ddd2022-12-06 13:20:55 +01001MPI core random basic: 0..1
2mpi_core_random_basic:0:"01":0
3
4MPI core random basic: 0..2
5mpi_core_random_basic:0:"02":0
6
7MPI core random basic: 1..2
8mpi_core_random_basic:1:"02":0
9
10MPI core random basic: 2^30..2^31
11mpi_core_random_basic:0x40000000:"80000000":0
12
13MPI core random basic: 0..2^128
14mpi_core_random_basic:0x40000000:"0100000000000000000000000000000000":0
15
16MPI core random basic: 2^30..2^129
17mpi_core_random_basic:0x40000000:"0200000000000000000000000000000000":0
18
19# Use the same data values for mpi_core_random_basic->NOT_ACCEPTABLE
Gilles Peskinea57cf982022-12-06 22:54:09 +010020# and for mpi_XXX_random_values where we want to return NOT_ACCEPTABLE
Gilles Peskine8c32b242022-12-07 23:01:44 +010021# but this isn't checked at runtime.
Gilles Peskinea57cf982022-12-06 22:54:09 +010022MPI core random basic: 2^28-1..2^28+1 (NOT_ACCEPTABLE)
23mpi_core_random_basic:0x0fffffff:"10000001":MBEDTLS_ERR_MPI_NOT_ACCEPTABLE
Gilles Peskinede09ddd2022-12-06 13:20:55 +010024
Gilles Peskinea57cf982022-12-06 22:54:09 +010025MPI random legacy=core: 2^28-1..2^28+1 (NOT_ACCEPTABLE)
26mpi_legacy_random_values:0x0fffffff:"10000001"
Gilles Peskinede09ddd2022-12-06 13:20:55 +010027
Gilles Peskinea57cf982022-12-06 22:54:09 +010028MPI random mod=core: 2^28-1..2^28+1 (NOT_ACCEPTABLE)
29mpi_mod_random_values:0x0fffffff:"10000001"
Gilles Peskinede09ddd2022-12-06 13:20:55 +010030
Gilles Peskinea57cf982022-12-06 22:54:09 +010031MPI core random basic: 2^29-1..2^29+1 (NOT_ACCEPTABLE)
32mpi_core_random_basic:0x1fffffff:"20000001":MBEDTLS_ERR_MPI_NOT_ACCEPTABLE
Gilles Peskinede09ddd2022-12-06 13:20:55 +010033
Gilles Peskinea57cf982022-12-06 22:54:09 +010034MPI random legacy=core: 2^29-1..2^29+1 (NOT_ACCEPTABLE)
35mpi_legacy_random_values:0x1fffffff:"20000001"
Gilles Peskinede09ddd2022-12-06 13:20:55 +010036
Gilles Peskinea57cf982022-12-06 22:54:09 +010037MPI random mod=core: 2^29-1..2^29+1 (NOT_ACCEPTABLE)
38mpi_mod_random_values:0x1fffffff:"20000001"
Gilles Peskinede09ddd2022-12-06 13:20:55 +010039
Gilles Peskinea57cf982022-12-06 22:54:09 +010040MPI core random basic: 2^30-1..2^30+1 (NOT_ACCEPTABLE)
41mpi_core_random_basic:0x3fffffff:"40000001":MBEDTLS_ERR_MPI_NOT_ACCEPTABLE
Gilles Peskinede09ddd2022-12-06 13:20:55 +010042
Gilles Peskinea57cf982022-12-06 22:54:09 +010043MPI random legacy=core: 2^30-1..2^30+1 (NOT_ACCEPTABLE)
44mpi_legacy_random_values:0x3fffffff:"40000001"
45
46MPI random mod=core: 2^30-1..2^30+1 (NOT_ACCEPTABLE)
47mpi_mod_random_values:0x3fffffff:"40000001"
48
49MPI core random basic: 2^31-1..2^31+1 (NOT_ACCEPTABLE)
50mpi_core_random_basic:0x7fffffff:"80000001":MBEDTLS_ERR_MPI_NOT_ACCEPTABLE
51
52MPI random legacy=core: 2^31-1..2^31+1 (NOT_ACCEPTABLE)
53mpi_legacy_random_values:0x7fffffff:"80000001"
54
55MPI random mod=core: 2^31-1..2^31+1 (NOT_ACCEPTABLE)
56mpi_mod_random_values:0x7fffffff:"80000001"
Gilles Peskinede09ddd2022-12-06 13:20:55 +010057
58MPI random in range: 1..2
59mpi_random_many:1:"02":1000
60
61MPI random in range: 1..3
62mpi_random_many:1:"03":1000
63
64MPI random in range: 1..4
65mpi_random_many:1:"04":1000
66
67MPI random in range: 1..5
68mpi_random_many:1:"05":1000
69
70MPI random in range: 1..6
71mpi_random_many:1:"06":1000
72
73MPI random in range: 1..7
74mpi_random_many:1:"07":1000
75
76MPI random in range: 1..8
77mpi_random_many:1:"08":1000
78
79MPI random in range: 1..9
80mpi_random_many:1:"09":1000
81
82MPI random in range: 1..10
83mpi_random_many:1:"0a":1000
84
85MPI random in range: 1..11
86mpi_random_many:1:"0b":1000
87
88MPI random in range: 1..12
89mpi_random_many:1:"0c":1000
90
91MPI random in range: 1..255
92mpi_random_many:1:"ff":200
93
94MPI random in range: 1..256
95mpi_random_many:1:"0100":200
96
97MPI random in range: 1..257
98mpi_random_many:1:"0101":200
99
100MPI random in range: 1..272
101mpi_random_many:1:"0110":200
102
103MPI random in range: 1..2^64-1
104mpi_random_many:1:"ffffffffffffffff":100
105
106MPI random in range: 1..2^64
107mpi_random_many:1:"010000000000000000":100
108
109MPI random in range: 1..2^64+1
110mpi_random_many:1:"010000000000000001":100
111
112MPI random in range: 1..2^64+2^63
113mpi_random_many:1:"018000000000000000":100
114
115MPI random in range: 1..2^65-1
116mpi_random_many:1:"01ffffffffffffffff":100
117
118MPI random in range: 1..2^65
119mpi_random_many:1:"020000000000000000":100
120
121MPI random in range: 1..2^65+1
122mpi_random_many:1:"020000000000000001":100
123
124MPI random in range: 1..2^65+2^64
125mpi_random_many:1:"030000000000000000":100
126
127MPI random in range: 1..2^66+2^65
128mpi_random_many:1:"060000000000000000":100
129
130MPI random in range: 1..2^71-1
131mpi_random_many:1:"7fffffffffffffffff":100
132
133MPI random in range: 1..2^71
134mpi_random_many:1:"800000000000000000":100
135
136MPI random in range: 1..2^71+1
137mpi_random_many:1:"800000000000000001":100
138
139MPI random in range: 1..2^71+2^70
140mpi_random_many:1:"c00000000000000000":100
141
142MPI random in range: 1..2^72-1
143mpi_random_many:1:"ffffffffffffffffff":100
144
145MPI random in range: 1..2^72
146mpi_random_many:1:"01000000000000000000":100
147
148MPI random in range: 1..2^72+1
149mpi_random_many:1:"01000000000000000001":100
150
151MPI random in range: 1..2^72+2^71
152mpi_random_many:1:"01800000000000000000":100
153
154MPI random in range: 0..1
155mpi_random_many:0:"04":10000
156
157MPI random in range: 0..4
158mpi_random_many:0:"04":10000
159
160MPI random in range: 2..4
161mpi_random_many:2:"04":10000
162
163MPI random in range: 3..4
164mpi_random_many:3:"04":10000
165
166MPI random in range: smaller result
167mpi_random_sizes:1:"aaaaaaaaaaaaaaaabbbbbbbbbbbbbbbb":1:0
168
169MPI random in range: same size result (32-bit limbs)
170mpi_random_sizes:1:"aaaaaaaaaaaaaaaa":2:0
171
172MPI random in range: same size result (64-bit limbs)
173mpi_random_sizes:1:"aaaaaaaaaaaaaaaa":1:0
174
175MPI random in range: larger result
176mpi_random_sizes:1:"aaaaaaaaaaaaaaaa":3:0
177
178## The "0 limb in upper bound" tests rely on the fact that
179## mbedtls_mpi_read_binary() bases the size of the MPI on the size of
180## the input, without first checking for leading zeros. If this was
181## not the case, the tests would still pass, but would not exercise
182## the advertised behavior.
183MPI random in range: leading 0 limb in upper bound #0
184mpi_random_sizes:1:"00aaaaaaaaaaaaaaaa":0:0
185
186MPI random in range: leading 0 limb in upper bound #1
187mpi_random_sizes:1:"00aaaaaaaaaaaaaaaa":1:0
188
189MPI random in range: leading 0 limb in upper bound #2
190mpi_random_sizes:1:"00aaaaaaaaaaaaaaaa":2:0
191
192MPI random in range: leading 0 limb in upper bound #3
193mpi_random_sizes:1:"00aaaaaaaaaaaaaaaa":3:0
194
195MPI random in range: leading 0 limb in upper bound #4
196mpi_random_sizes:1:"00aaaaaaaaaaaaaaaa":4:0
197
198MPI random in range: previously small >0
199mpi_random_sizes:1:"1234567890":4:1
200
201MPI random in range: previously small <0
202mpi_random_sizes:1:"1234567890":4:-1
203
204MPI random in range: previously large >0
205mpi_random_sizes:1:"1234":4:65
206
207MPI random in range: previously large <0
208mpi_random_sizes:1:"1234":4:-65
209
210MPI random bad arguments: min < 0
211mpi_random_fail:-1:"04":MBEDTLS_ERR_MPI_BAD_INPUT_DATA
212
213MPI random bad arguments: min = N = 0
214mpi_random_fail:0:"00":MBEDTLS_ERR_MPI_BAD_INPUT_DATA
215
216MPI random bad arguments: min = N = 1
217mpi_random_fail:1:"01":MBEDTLS_ERR_MPI_BAD_INPUT_DATA
218
219MPI random bad arguments: min > N = 0
220mpi_random_fail:1:"00":MBEDTLS_ERR_MPI_BAD_INPUT_DATA
221
222MPI random bad arguments: min > N = 1
223mpi_random_fail:2:"01":MBEDTLS_ERR_MPI_BAD_INPUT_DATA
224
225MPI random bad arguments: min > N = 1, 0 limb in upper bound
226mpi_random_fail:2:"000000000000000001":MBEDTLS_ERR_MPI_BAD_INPUT_DATA
227
228MPI random legacy=core: 0..1
Gilles Peskine8c32b242022-12-07 23:01:44 +0100229mpi_legacy_random_values:0:"01"
Gilles Peskinede09ddd2022-12-06 13:20:55 +0100230
231MPI random legacy=core: 0..2
Gilles Peskine8c32b242022-12-07 23:01:44 +0100232mpi_legacy_random_values:0:"02"
Gilles Peskinede09ddd2022-12-06 13:20:55 +0100233
234MPI random legacy=core: 1..2
Gilles Peskine8c32b242022-12-07 23:01:44 +0100235mpi_legacy_random_values:1:"02"
Gilles Peskinede09ddd2022-12-06 13:20:55 +0100236
237MPI random legacy=core: 2^30..2^31
Gilles Peskine8c32b242022-12-07 23:01:44 +0100238mpi_legacy_random_values:0x40000000:"80000000"
Gilles Peskinede09ddd2022-12-06 13:20:55 +0100239
240MPI random legacy=core: 2^31-1..2^32-1
Gilles Peskine8c32b242022-12-07 23:01:44 +0100241mpi_legacy_random_values:0x7fffffff:"ffffffff"
Gilles Peskinede09ddd2022-12-06 13:20:55 +0100242
243MPI random legacy=core: 0..2^256
Gilles Peskine8c32b242022-12-07 23:01:44 +0100244mpi_legacy_random_values:0:"010000000000000000000000000000000000000000000000000000000000000000"
Gilles Peskinede09ddd2022-12-06 13:20:55 +0100245
246MPI random legacy=core: 0..2^256+1
Gilles Peskine8c32b242022-12-07 23:01:44 +0100247mpi_legacy_random_values:0:"010000000000000000000000000000000000000000000000000000000000000001"
Gilles Peskinea57cf982022-12-06 22:54:09 +0100248
249MPI random mod=core: 0..1
250mpi_mod_random_values:0:"01"
251
252MPI random mod=core: 0..3
253mpi_mod_random_values:0:"03"
254
255MPI random mod=core: 1..3
256mpi_mod_random_values:1:"03"
257
258MPI random mod=core: 2^30..2^31-1
259mpi_mod_random_values:0x40000000:"7fffffff"
260
261MPI random mod=core: 2^31-1..2^32-1
262mpi_mod_random_values:0x7fffffff:"ffffffff"
263
264MPI random mod=core: 0..2^256+1
265mpi_mod_random_values:0:"010000000000000000000000000000000000000000000000000000000000000001"