@@ -611,7 +611,7 @@ static void secp256k1_ecmult(const secp256k1_ecmult_context *ctx, secp256k1_gej
611
611
}
612
612
613
613
static size_t secp256k1_strauss_scratch_size (size_t n_points ) {
614
- static const size_t point_size = (sizeof (secp256k1_ge ) + sizeof (secp256k1_fe )) * ECMULT_TABLE_SIZE (WINDOW_A ) + sizeof (struct secp256k1_strauss_point_state ) + sizeof ( secp256k1_gej ) + sizeof ( secp256k1_scalar ) ;
614
+ static const size_t point_size = (sizeof (secp256k1_ge ) + sizeof (secp256k1_fe )) * ECMULT_TABLE_SIZE (WINDOW_A ) + sizeof (struct secp256k1_strauss_point_state );
615
615
return n_points * point_size ;
616
616
}
617
617
@@ -633,8 +633,6 @@ static int secp256k1_ecmult_adaptor_cb(secp256k1_scalar *sc, secp256k1_gej *pt,
633
633
}
634
634
635
635
static int secp256k1_ecmult_strauss_batch (const secp256k1_callback * error_callback , const secp256k1_ecmult_context * ctx , secp256k1_scratch * scratch , secp256k1_gej * r , const secp256k1_scalar * inp_g_sc , secp256k1_ecmult_multi_callback cb , void * cbdata , size_t n_points , size_t cb_offset ) {
636
- secp256k1_gej * points ;
637
- secp256k1_scalar * scalars ;
638
636
struct secp256k1_ecmult_adaptor_cb_data adaptor_data ;
639
637
struct secp256k1_strauss_state state ;
640
638
const size_t scratch_checkpoint = secp256k1_scratch_checkpoint (error_callback , scratch );
@@ -644,20 +642,14 @@ static int secp256k1_ecmult_strauss_batch(const secp256k1_callback* error_callba
644
642
return 1 ;
645
643
}
646
644
647
- points = (secp256k1_gej * )secp256k1_scratch_alloc (error_callback , scratch , n_points * sizeof (secp256k1_gej ));
648
- scalars = (secp256k1_scalar * )secp256k1_scratch_alloc (error_callback , scratch , n_points * sizeof (secp256k1_scalar ));
649
645
adaptor_data .cb = cb ;
650
646
adaptor_data .data = cbdata ;
651
647
state .aux = (secp256k1_fe * )secp256k1_scratch_alloc (error_callback , scratch , n_points * ECMULT_TABLE_SIZE (WINDOW_A ) * sizeof (secp256k1_fe ));
652
648
state .pre_a = (secp256k1_ge * )secp256k1_scratch_alloc (error_callback , scratch , n_points * ECMULT_TABLE_SIZE (WINDOW_A ) * sizeof (secp256k1_ge ));
653
649
state .ps = (struct secp256k1_strauss_point_state * )secp256k1_scratch_alloc (error_callback , scratch , n_points * sizeof (struct secp256k1_strauss_point_state ));
654
650
655
- if (points == NULL || scalars == NULL || state .aux == NULL || state .pre_a == NULL || state .ps == NULL ) {
656
- secp256k1_scratch_apply_checkpoint (error_callback , scratch , scratch_checkpoint );
657
- return 0 ;
658
- }
659
-
660
- if (!secp256k1_ecmult_strauss_wnaf (ctx , & state , r , n_points , & secp256k1_ecmult_adaptor_cb , & adaptor_data , cb_offset , inp_g_sc )) {
651
+ if (state .aux == NULL || state .pre_a == NULL || state .ps == NULL ||
652
+ !secp256k1_ecmult_strauss_wnaf (ctx , & state , r , n_points , & secp256k1_ecmult_adaptor_cb , & adaptor_data , cb_offset , inp_g_sc )) {
661
653
secp256k1_scratch_apply_checkpoint (error_callback , scratch , scratch_checkpoint );
662
654
return 0 ;
663
655
}
0 commit comments