@@ -57,12 +57,13 @@ void bench_setup(void* arg) {
57
57
}
58
58
59
59
void bench_scalar_add (void * arg ) {
60
- int i ;
60
+ int i , j = 0 ;
61
61
bench_inv * data = (bench_inv * )arg ;
62
62
63
63
for (i = 0 ; i < 2000000 ; i ++ ) {
64
- secp256k1_scalar_add (& data -> scalar_x , & data -> scalar_x , & data -> scalar_y );
64
+ j += secp256k1_scalar_add (& data -> scalar_x , & data -> scalar_x , & data -> scalar_y );
65
65
}
66
+ CHECK (j <= 2000000 );
66
67
}
67
68
68
69
void bench_scalar_negate (void * arg ) {
@@ -94,35 +95,37 @@ void bench_scalar_mul(void* arg) {
94
95
95
96
#ifdef USE_ENDOMORPHISM
96
97
void bench_scalar_split (void * arg ) {
97
- int i ;
98
+ int i , j = 0 ;
98
99
bench_inv * data = (bench_inv * )arg ;
99
100
100
101
for (i = 0 ; i < 20000 ; i ++ ) {
101
- secp256k1_scalar l , r ;
102
- secp256k1_scalar_split_lambda (& l , & r , & data -> scalar_x );
103
- secp256k1_scalar_add (& data -> scalar_x , & data -> scalar_x , & data -> scalar_y );
102
+ secp256k1_scalar_split_lambda (& data -> scalar_x , & data -> scalar_y , & data -> scalar_x );
103
+ j += secp256k1_scalar_add (& data -> scalar_x , & data -> scalar_x , & data -> scalar_y );
104
104
}
105
+ CHECK (j <= 20000 );
105
106
}
106
107
#endif
107
108
108
109
void bench_scalar_inverse (void * arg ) {
109
- int i ;
110
+ int i , j = 0 ;
110
111
bench_inv * data = (bench_inv * )arg ;
111
112
112
113
for (i = 0 ; i < 2000 ; i ++ ) {
113
114
secp256k1_scalar_inverse (& data -> scalar_x , & data -> scalar_x );
114
- secp256k1_scalar_add (& data -> scalar_x , & data -> scalar_x , & data -> scalar_y );
115
+ j += secp256k1_scalar_add (& data -> scalar_x , & data -> scalar_x , & data -> scalar_y );
115
116
}
117
+ CHECK (j <= 2000 );
116
118
}
117
119
118
120
void bench_scalar_inverse_var (void * arg ) {
119
- int i ;
121
+ int i , j = 0 ;
120
122
bench_inv * data = (bench_inv * )arg ;
121
123
122
124
for (i = 0 ; i < 2000 ; i ++ ) {
123
125
secp256k1_scalar_inverse_var (& data -> scalar_x , & data -> scalar_x );
124
- secp256k1_scalar_add (& data -> scalar_x , & data -> scalar_x , & data -> scalar_y );
126
+ j += secp256k1_scalar_add (& data -> scalar_x , & data -> scalar_x , & data -> scalar_y );
125
127
}
128
+ CHECK (j <= 2000 );
126
129
}
127
130
128
131
void bench_field_normalize (void * arg ) {
@@ -182,15 +185,16 @@ void bench_field_inverse_var(void* arg) {
182
185
}
183
186
184
187
void bench_field_sqrt (void * arg ) {
185
- int i ;
188
+ int i , j = 0 ;
186
189
bench_inv * data = (bench_inv * )arg ;
187
190
secp256k1_fe t ;
188
191
189
192
for (i = 0 ; i < 20000 ; i ++ ) {
190
193
t = data -> fe_x ;
191
- secp256k1_fe_sqrt (& data -> fe_x , & t );
194
+ j += secp256k1_fe_sqrt (& data -> fe_x , & t );
192
195
secp256k1_fe_add (& data -> fe_x , & data -> fe_y );
193
196
}
197
+ CHECK (j <= 20000 );
194
198
}
195
199
196
200
void bench_group_double_var (void * arg ) {
@@ -230,32 +234,37 @@ void bench_group_add_affine_var(void* arg) {
230
234
}
231
235
232
236
void bench_group_jacobi_var (void * arg ) {
233
- int i ;
237
+ int i , j = 0 ;
234
238
bench_inv * data = (bench_inv * )arg ;
235
239
236
240
for (i = 0 ; i < 20000 ; i ++ ) {
237
- secp256k1_gej_has_quad_y_var (& data -> gej_x );
241
+ j += secp256k1_gej_has_quad_y_var (& data -> gej_x );
238
242
}
243
+ CHECK (j == 20000 );
239
244
}
240
245
241
246
void bench_ecmult_wnaf (void * arg ) {
242
- int i ;
247
+ int i , bits = 0 , overflow = 0 ;
243
248
bench_inv * data = (bench_inv * )arg ;
244
249
245
250
for (i = 0 ; i < 20000 ; i ++ ) {
246
- secp256k1_ecmult_wnaf (data -> wnaf , 256 , & data -> scalar_x , WINDOW_A );
247
- secp256k1_scalar_add (& data -> scalar_x , & data -> scalar_x , & data -> scalar_y );
251
+ bits += secp256k1_ecmult_wnaf (data -> wnaf , 256 , & data -> scalar_x , WINDOW_A );
252
+ overflow += secp256k1_scalar_add (& data -> scalar_x , & data -> scalar_x , & data -> scalar_y );
248
253
}
254
+ CHECK (overflow >= 0 );
255
+ CHECK (bits <= 256 * 20000 );
249
256
}
250
257
251
258
void bench_wnaf_const (void * arg ) {
252
- int i ;
259
+ int i , bits = 0 , overflow = 0 ;
253
260
bench_inv * data = (bench_inv * )arg ;
254
261
255
262
for (i = 0 ; i < 20000 ; i ++ ) {
256
- secp256k1_wnaf_const (data -> wnaf , & data -> scalar_x , WINDOW_A , 256 );
257
- secp256k1_scalar_add (& data -> scalar_x , & data -> scalar_x , & data -> scalar_y );
263
+ bits += secp256k1_wnaf_const (data -> wnaf , & data -> scalar_x , WINDOW_A , 256 );
264
+ overflow += secp256k1_scalar_add (& data -> scalar_x , & data -> scalar_x , & data -> scalar_y );
258
265
}
266
+ CHECK (overflow >= 0 );
267
+ CHECK (bits <= 256 * 20000 );
259
268
}
260
269
261
270
@@ -312,7 +321,7 @@ void bench_context_sign(void* arg) {
312
321
313
322
#ifndef USE_NUM_NONE
314
323
void bench_num_jacobi (void * arg ) {
315
- int i ;
324
+ int i , j = 0 ;
316
325
bench_inv * data = (bench_inv * )arg ;
317
326
secp256k1_num nx , norder ;
318
327
@@ -321,8 +330,9 @@ void bench_num_jacobi(void* arg) {
321
330
secp256k1_scalar_get_num (& norder , & data -> scalar_y );
322
331
323
332
for (i = 0 ; i < 200000 ; i ++ ) {
324
- secp256k1_num_jacobi (& nx , & norder );
333
+ j += secp256k1_num_jacobi (& nx , & norder );
325
334
}
335
+ CHECK (j <= 200000 );
326
336
}
327
337
#endif
328
338
0 commit comments