@@ -52,7 +52,10 @@ static int secp256k1_scalar_set_b32_seckey(secp256k1_scalar *r, const unsigned c
52
52
* nontrivial to get full test coverage for the exhaustive tests. We therefore
53
53
* (arbitrarily) set r2 = k + 5 (mod n) and r1 = k - r2 * lambda (mod n).
54
54
*/
55
- static void secp256k1_scalar_split_lambda (secp256k1_scalar * r1 , secp256k1_scalar * r2 , const secp256k1_scalar * k ) {
55
+ static void secp256k1_scalar_split_lambda (secp256k1_scalar * SECP256K1_RESTRICT r1 , secp256k1_scalar * SECP256K1_RESTRICT r2 , const secp256k1_scalar * SECP256K1_RESTRICT k ) {
56
+ VERIFY_CHECK (r1 != k );
57
+ VERIFY_CHECK (r2 != k );
58
+ VERIFY_CHECK (r1 != r2 );
56
59
* r2 = (* k + 5 ) % EXHAUSTIVE_TEST_ORDER ;
57
60
* r1 = (* k + (EXHAUSTIVE_TEST_ORDER - * r2 ) * EXHAUSTIVE_TEST_LAMBDA ) % EXHAUSTIVE_TEST_ORDER ;
58
61
}
@@ -119,7 +122,7 @@ static void secp256k1_scalar_split_lambda_verify(const secp256k1_scalar *r1, con
119
122
*
120
123
* See proof below.
121
124
*/
122
- static void secp256k1_scalar_split_lambda (secp256k1_scalar * r1 , secp256k1_scalar * r2 , const secp256k1_scalar * k ) {
125
+ static void secp256k1_scalar_split_lambda (secp256k1_scalar * SECP256K1_RESTRICT r1 , secp256k1_scalar * SECP256K1_RESTRICT r2 , const secp256k1_scalar * SECP256K1_RESTRICT k ) {
123
126
secp256k1_scalar c1 , c2 ;
124
127
static const secp256k1_scalar minus_b1 = SECP256K1_SCALAR_CONST (
125
128
0x00000000UL , 0x00000000UL , 0x00000000UL , 0x00000000UL ,
@@ -139,6 +142,7 @@ static void secp256k1_scalar_split_lambda(secp256k1_scalar *r1, secp256k1_scalar
139
142
);
140
143
VERIFY_CHECK (r1 != k );
141
144
VERIFY_CHECK (r2 != k );
145
+ VERIFY_CHECK (r1 != r2 );
142
146
/* these _var calls are constant time since the shift amount is constant */
143
147
secp256k1_scalar_mul_shift_var (& c1 , k , & g1 , 384 );
144
148
secp256k1_scalar_mul_shift_var (& c2 , k , & g2 , 384 );
0 commit comments