9
9
from hypothesis import given , assume , settings , example
10
10
11
11
from .ellipticcurve import CurveFp , Point , PointJacobi , INFINITY
12
- from .ecdsa import generator_256 , curve_256 , generator_224
12
+ from .ecdsa import (
13
+ generator_256 ,
14
+ curve_256 ,
15
+ generator_224 ,
16
+ generator_brainpoolp160r1 ,
17
+ curve_brainpoolp160r1 ,
18
+ )
13
19
from .numbertheory import inverse_mod
14
20
15
21
@@ -181,9 +187,13 @@ def test_compare_double_with_multiply(self):
181
187
self .assertEqual (dbl , mlpl )
182
188
183
189
@settings (max_examples = 10 )
184
- @given (st .integers (min_value = 0 , max_value = int (generator_256 .order ())))
190
+ @given (
191
+ st .integers (
192
+ min_value = 0 , max_value = int (generator_brainpoolp160r1 .order ())
193
+ )
194
+ )
185
195
def test_multiplications (self , mul ):
186
- pj = PointJacobi .from_affine (generator_256 )
196
+ pj = PointJacobi .from_affine (generator_brainpoolp160r1 )
187
197
pw = pj .to_affine () * mul
188
198
189
199
pj = pj * mul
@@ -192,12 +202,16 @@ def test_multiplications(self, mul):
192
202
self .assertEqual (pj , pw )
193
203
194
204
@settings (max_examples = 10 )
195
- @given (st .integers (min_value = 0 , max_value = int (generator_256 .order ())))
205
+ @given (
206
+ st .integers (
207
+ min_value = 0 , max_value = int (generator_brainpoolp160r1 .order ())
208
+ )
209
+ )
196
210
@example (0 )
197
- @example (int (generator_256 .order ()))
211
+ @example (int (generator_brainpoolp160r1 .order ()))
198
212
def test_precompute (self , mul ):
199
- precomp = PointJacobi .from_affine (generator_256 , True )
200
- pj = PointJacobi .from_affine (generator_256 )
213
+ precomp = PointJacobi .from_affine (generator_brainpoolp160r1 , True )
214
+ pj = PointJacobi .from_affine (generator_brainpoolp160r1 )
201
215
202
216
a = precomp * mul
203
217
b = pj * mul
@@ -206,12 +220,16 @@ def test_precompute(self, mul):
206
220
207
221
@settings (max_examples = 10 )
208
222
@given (
209
- st .integers (min_value = 1 , max_value = int (generator_256 .order ())),
210
- st .integers (min_value = 1 , max_value = int (generator_256 .order ())),
223
+ st .integers (
224
+ min_value = 1 , max_value = int (generator_brainpoolp160r1 .order ())
225
+ ),
226
+ st .integers (
227
+ min_value = 1 , max_value = int (generator_brainpoolp160r1 .order ())
228
+ ),
211
229
)
212
230
@example (3 , 3 )
213
231
def test_add_scaled_points (self , a_mul , b_mul ):
214
- j_g = PointJacobi .from_affine (generator_256 )
232
+ j_g = PointJacobi .from_affine (generator_brainpoolp160r1 )
215
233
a = PointJacobi .from_affine (j_g * a_mul )
216
234
b = PointJacobi .from_affine (j_g * b_mul )
217
235
@@ -221,23 +239,30 @@ def test_add_scaled_points(self, a_mul, b_mul):
221
239
222
240
@settings (max_examples = 10 )
223
241
@given (
224
- st .integers (min_value = 1 , max_value = int (generator_256 .order ())),
225
- st .integers (min_value = 1 , max_value = int (generator_256 .order ())),
226
- st .integers (min_value = 1 , max_value = int (curve_256 .p () - 1 )),
242
+ st .integers (
243
+ min_value = 1 , max_value = int (generator_brainpoolp160r1 .order ())
244
+ ),
245
+ st .integers (
246
+ min_value = 1 , max_value = int (generator_brainpoolp160r1 .order ())
247
+ ),
248
+ st .integers (min_value = 1 , max_value = int (curve_brainpoolp160r1 .p () - 1 )),
227
249
)
228
250
def test_add_one_scaled_point (self , a_mul , b_mul , new_z ):
229
- j_g = PointJacobi .from_affine (generator_256 )
251
+ j_g = PointJacobi .from_affine (generator_brainpoolp160r1 )
230
252
a = PointJacobi .from_affine (j_g * a_mul )
231
253
b = PointJacobi .from_affine (j_g * b_mul )
232
254
233
- p = curve_256 .p ()
255
+ p = curve_brainpoolp160r1 .p ()
234
256
235
257
assume (inverse_mod (new_z , p ))
236
258
237
259
new_zz = new_z * new_z % p
238
260
239
261
b = PointJacobi (
240
- curve_256 , b .x () * new_zz % p , b .y () * new_zz * new_z % p , new_z
262
+ curve_brainpoolp160r1 ,
263
+ b .x () * new_zz % p ,
264
+ b .y () * new_zz * new_z % p ,
265
+ new_z ,
241
266
)
242
267
243
268
c = a + b
@@ -246,30 +271,40 @@ def test_add_one_scaled_point(self, a_mul, b_mul, new_z):
246
271
247
272
@settings (max_examples = 10 )
248
273
@given (
249
- st .integers (min_value = 1 , max_value = int (generator_256 .order ())),
250
- st .integers (min_value = 1 , max_value = int (generator_256 .order ())),
251
- st .integers (min_value = 1 , max_value = int (curve_256 .p () - 1 )),
274
+ st .integers (
275
+ min_value = 1 , max_value = int (generator_brainpoolp160r1 .order ())
276
+ ),
277
+ st .integers (
278
+ min_value = 1 , max_value = int (generator_brainpoolp160r1 .order ())
279
+ ),
280
+ st .integers (min_value = 1 , max_value = int (curve_brainpoolp160r1 .p () - 1 )),
252
281
)
253
282
@example (1 , 1 , 1 )
254
283
@example (3 , 3 , 3 )
255
- @example (2 , int (generator_256 .order () - 2 ), 1 )
256
- @example (2 , int (generator_256 .order () - 2 ), 3 )
284
+ @example (2 , int (generator_brainpoolp160r1 .order () - 2 ), 1 )
285
+ @example (2 , int (generator_brainpoolp160r1 .order () - 2 ), 3 )
257
286
def test_add_same_scale_points (self , a_mul , b_mul , new_z ):
258
- j_g = PointJacobi .from_affine (generator_256 )
287
+ j_g = PointJacobi .from_affine (generator_brainpoolp160r1 )
259
288
a = PointJacobi .from_affine (j_g * a_mul )
260
289
b = PointJacobi .from_affine (j_g * b_mul )
261
290
262
- p = curve_256 .p ()
291
+ p = curve_brainpoolp160r1 .p ()
263
292
264
293
assume (inverse_mod (new_z , p ))
265
294
266
295
new_zz = new_z * new_z % p
267
296
268
297
a = PointJacobi (
269
- curve_256 , a .x () * new_zz % p , a .y () * new_zz * new_z % p , new_z
298
+ curve_brainpoolp160r1 ,
299
+ a .x () * new_zz % p ,
300
+ a .y () * new_zz * new_z % p ,
301
+ new_z ,
270
302
)
271
303
b = PointJacobi (
272
- curve_256 , b .x () * new_zz % p , b .y () * new_zz * new_z % p , new_z
304
+ curve_brainpoolp160r1 ,
305
+ b .x () * new_zz % p ,
306
+ b .y () * new_zz * new_z % p ,
307
+ new_z ,
273
308
)
274
309
275
310
c = a + b
@@ -278,25 +313,31 @@ def test_add_same_scale_points(self, a_mul, b_mul, new_z):
278
313
279
314
@settings (max_examples = 14 )
280
315
@given (
281
- st .integers (min_value = 1 , max_value = int (generator_256 .order ())),
282
- st .integers (min_value = 1 , max_value = int (generator_256 .order ())),
316
+ st .integers (
317
+ min_value = 1 , max_value = int (generator_brainpoolp160r1 .order ())
318
+ ),
319
+ st .integers (
320
+ min_value = 1 , max_value = int (generator_brainpoolp160r1 .order ())
321
+ ),
283
322
st .lists (
284
- st .integers (min_value = 1 , max_value = int (curve_256 .p () - 1 )),
323
+ st .integers (
324
+ min_value = 1 , max_value = int (curve_brainpoolp160r1 .p () - 1 )
325
+ ),
285
326
min_size = 2 ,
286
327
max_size = 2 ,
287
328
unique = True ,
288
329
),
289
330
)
290
331
@example (2 , 2 , [2 , 1 ])
291
332
@example (2 , 2 , [2 , 3 ])
292
- @example (2 , int (generator_256 .order () - 2 ), [2 , 3 ])
293
- @example (2 , int (generator_256 .order () - 2 ), [2 , 1 ])
333
+ @example (2 , int (generator_brainpoolp160r1 .order () - 2 ), [2 , 3 ])
334
+ @example (2 , int (generator_brainpoolp160r1 .order () - 2 ), [2 , 1 ])
294
335
def test_add_different_scale_points (self , a_mul , b_mul , new_z ):
295
- j_g = PointJacobi .from_affine (generator_256 )
336
+ j_g = PointJacobi .from_affine (generator_brainpoolp160r1 )
296
337
a = PointJacobi .from_affine (j_g * a_mul )
297
338
b = PointJacobi .from_affine (j_g * b_mul )
298
339
299
- p = curve_256 .p ()
340
+ p = curve_brainpoolp160r1 .p ()
300
341
301
342
assume (inverse_mod (new_z [0 ], p ))
302
343
assume (inverse_mod (new_z [1 ], p ))
@@ -305,13 +346,13 @@ def test_add_different_scale_points(self, a_mul, b_mul, new_z):
305
346
new_zz1 = new_z [1 ] * new_z [1 ] % p
306
347
307
348
a = PointJacobi (
308
- curve_256 ,
349
+ curve_brainpoolp160r1 ,
309
350
a .x () * new_zz0 % p ,
310
351
a .y () * new_zz0 * new_z [0 ] % p ,
311
352
new_z [0 ],
312
353
)
313
354
b = PointJacobi (
314
- curve_256 ,
355
+ curve_brainpoolp160r1 ,
315
356
b .x () * new_zz1 % p ,
316
357
b .y () * new_zz1 * new_z [1 ] % p ,
317
358
new_z [1 ],
0 commit comments