blob: c511af533741e208b88d592fd298ca98f1032159 [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
20# and for mpi_random_values where we want to return NOT_ACCEPTABLE but
21# this isn't checked at runtime.
22MPI core random basic: 2^28-1..2^28 (NOT_ACCEPTABLE)
23mpi_core_random_basic:0x0fffffff:"10000000":MBEDTLS_ERR_MPI_NOT_ACCEPTABLE
24
25MPI random legacy=core: 2^28-1..2^28 (NOT_ACCEPTABLE)
26mpi_random_values:0x0fffffff:"10000000"
27
28MPI core random basic: 2^29-1..2^29 (NOT_ACCEPTABLE)
29mpi_core_random_basic:0x1fffffff:"20000000":MBEDTLS_ERR_MPI_NOT_ACCEPTABLE
30
31MPI random legacy=core: 2^29-1..2^29 (NOT_ACCEPTABLE)
32mpi_random_values:0x1fffffff:"20000000"
33
34MPI core random basic: 2^30-1..2^30 (NOT_ACCEPTABLE)
35mpi_core_random_basic:0x3fffffff:"40000000":MBEDTLS_ERR_MPI_NOT_ACCEPTABLE
36
37MPI random legacy=core: 2^30-1..2^30 (NOT_ACCEPTABLE)
38mpi_random_values:0x3fffffff:"40000000"
39
40MPI core random basic: 2^31-1..2^31 (NOT_ACCEPTABLE)
41mpi_core_random_basic:0x7fffffff:"80000000":MBEDTLS_ERR_MPI_NOT_ACCEPTABLE
42
43MPI random legacy=core: 2^31-1..2^31 (NOT_ACCEPTABLE)
44mpi_random_values:0x7fffffff:"80000000"
45
46MPI random in range: 1..2
47mpi_random_many:1:"02":1000
48
49MPI random in range: 1..3
50mpi_random_many:1:"03":1000
51
52MPI random in range: 1..4
53mpi_random_many:1:"04":1000
54
55MPI random in range: 1..5
56mpi_random_many:1:"05":1000
57
58MPI random in range: 1..6
59mpi_random_many:1:"06":1000
60
61MPI random in range: 1..7
62mpi_random_many:1:"07":1000
63
64MPI random in range: 1..8
65mpi_random_many:1:"08":1000
66
67MPI random in range: 1..9
68mpi_random_many:1:"09":1000
69
70MPI random in range: 1..10
71mpi_random_many:1:"0a":1000
72
73MPI random in range: 1..11
74mpi_random_many:1:"0b":1000
75
76MPI random in range: 1..12
77mpi_random_many:1:"0c":1000
78
79MPI random in range: 1..255
80mpi_random_many:1:"ff":200
81
82MPI random in range: 1..256
83mpi_random_many:1:"0100":200
84
85MPI random in range: 1..257
86mpi_random_many:1:"0101":200
87
88MPI random in range: 1..272
89mpi_random_many:1:"0110":200
90
91MPI random in range: 1..2^64-1
92mpi_random_many:1:"ffffffffffffffff":100
93
94MPI random in range: 1..2^64
95mpi_random_many:1:"010000000000000000":100
96
97MPI random in range: 1..2^64+1
98mpi_random_many:1:"010000000000000001":100
99
100MPI random in range: 1..2^64+2^63
101mpi_random_many:1:"018000000000000000":100
102
103MPI random in range: 1..2^65-1
104mpi_random_many:1:"01ffffffffffffffff":100
105
106MPI random in range: 1..2^65
107mpi_random_many:1:"020000000000000000":100
108
109MPI random in range: 1..2^65+1
110mpi_random_many:1:"020000000000000001":100
111
112MPI random in range: 1..2^65+2^64
113mpi_random_many:1:"030000000000000000":100
114
115MPI random in range: 1..2^66+2^65
116mpi_random_many:1:"060000000000000000":100
117
118MPI random in range: 1..2^71-1
119mpi_random_many:1:"7fffffffffffffffff":100
120
121MPI random in range: 1..2^71
122mpi_random_many:1:"800000000000000000":100
123
124MPI random in range: 1..2^71+1
125mpi_random_many:1:"800000000000000001":100
126
127MPI random in range: 1..2^71+2^70
128mpi_random_many:1:"c00000000000000000":100
129
130MPI random in range: 1..2^72-1
131mpi_random_many:1:"ffffffffffffffffff":100
132
133MPI random in range: 1..2^72
134mpi_random_many:1:"01000000000000000000":100
135
136MPI random in range: 1..2^72+1
137mpi_random_many:1:"01000000000000000001":100
138
139MPI random in range: 1..2^72+2^71
140mpi_random_many:1:"01800000000000000000":100
141
142MPI random in range: 0..1
143mpi_random_many:0:"04":10000
144
145MPI random in range: 0..4
146mpi_random_many:0:"04":10000
147
148MPI random in range: 2..4
149mpi_random_many:2:"04":10000
150
151MPI random in range: 3..4
152mpi_random_many:3:"04":10000
153
154MPI random in range: smaller result
155mpi_random_sizes:1:"aaaaaaaaaaaaaaaabbbbbbbbbbbbbbbb":1:0
156
157MPI random in range: same size result (32-bit limbs)
158mpi_random_sizes:1:"aaaaaaaaaaaaaaaa":2:0
159
160MPI random in range: same size result (64-bit limbs)
161mpi_random_sizes:1:"aaaaaaaaaaaaaaaa":1:0
162
163MPI random in range: larger result
164mpi_random_sizes:1:"aaaaaaaaaaaaaaaa":3:0
165
166## The "0 limb in upper bound" tests rely on the fact that
167## mbedtls_mpi_read_binary() bases the size of the MPI on the size of
168## the input, without first checking for leading zeros. If this was
169## not the case, the tests would still pass, but would not exercise
170## the advertised behavior.
171MPI random in range: leading 0 limb in upper bound #0
172mpi_random_sizes:1:"00aaaaaaaaaaaaaaaa":0:0
173
174MPI random in range: leading 0 limb in upper bound #1
175mpi_random_sizes:1:"00aaaaaaaaaaaaaaaa":1:0
176
177MPI random in range: leading 0 limb in upper bound #2
178mpi_random_sizes:1:"00aaaaaaaaaaaaaaaa":2:0
179
180MPI random in range: leading 0 limb in upper bound #3
181mpi_random_sizes:1:"00aaaaaaaaaaaaaaaa":3:0
182
183MPI random in range: leading 0 limb in upper bound #4
184mpi_random_sizes:1:"00aaaaaaaaaaaaaaaa":4:0
185
186MPI random in range: previously small >0
187mpi_random_sizes:1:"1234567890":4:1
188
189MPI random in range: previously small <0
190mpi_random_sizes:1:"1234567890":4:-1
191
192MPI random in range: previously large >0
193mpi_random_sizes:1:"1234":4:65
194
195MPI random in range: previously large <0
196mpi_random_sizes:1:"1234":4:-65
197
198MPI random bad arguments: min < 0
199mpi_random_fail:-1:"04":MBEDTLS_ERR_MPI_BAD_INPUT_DATA
200
201MPI random bad arguments: min = N = 0
202mpi_random_fail:0:"00":MBEDTLS_ERR_MPI_BAD_INPUT_DATA
203
204MPI random bad arguments: min = N = 1
205mpi_random_fail:1:"01":MBEDTLS_ERR_MPI_BAD_INPUT_DATA
206
207MPI random bad arguments: min > N = 0
208mpi_random_fail:1:"00":MBEDTLS_ERR_MPI_BAD_INPUT_DATA
209
210MPI random bad arguments: min > N = 1
211mpi_random_fail:2:"01":MBEDTLS_ERR_MPI_BAD_INPUT_DATA
212
213MPI random bad arguments: min > N = 1, 0 limb in upper bound
214mpi_random_fail:2:"000000000000000001":MBEDTLS_ERR_MPI_BAD_INPUT_DATA
215
216MPI random legacy=core: 0..1
217mpi_random_values:0:"01"
218
219MPI random legacy=core: 0..2
220mpi_random_values:0:"02"
221
222MPI random legacy=core: 1..2
223mpi_random_values:1:"02"
224
225MPI random legacy=core: 2^30..2^31
226mpi_random_values:0x40000000:"80000000"
227
228MPI random legacy=core: 2^31-1..2^32-1
229mpi_random_values:0x7fffffff:"ffffffff"
230
231MPI random legacy=core: 0..2^256
232mpi_random_values:0:"010000000000000000000000000000000000000000000000000000000000000000"
233
234MPI random legacy=core: 0..2^256+1
235mpi_random_values:0:"010000000000000000000000000000000000000000000000000000000000000001"
236
237# The following test cases return MPI_NOT_ACCEPTABLE
238# (verified at the time of writing, not enforced at runtime)
239MPI random legacy=core: 2^28-1..2^28 (improbable)
240mpi_random_values:0x0fffffff:"10000000"
241
242MPI random legacy=core: 2^29-1..2^29 (improbable)
243mpi_random_values:0x1fffffff:"20000000"
244
245MPI random legacy=core: 2^30-1..2^30 (improbable)
246mpi_random_values:0x3fffffff:"40000000"
247
248MPI random legacy=core: 2^31-1..2^31 (improbable)
249mpi_random_values:0x7fffffff:"80000000"