@@ -276,7 +276,6 @@ static void secp256k1_pedersen_commitment_save(secp256k1_pedersen_commitment* co
276
276
277
277
int secp256k1_pedersen_commitment_parse (const secp256k1_context * ctx , secp256k1_pedersen_commitment * commit , const unsigned char * input ) {
278
278
secp256k1_fe x ;
279
- secp256k1_ge ge ;
280
279
281
280
VERIFY_CHECK (ctx != NULL );
282
281
ARG_CHECK (commit != NULL );
@@ -285,28 +284,20 @@ int secp256k1_pedersen_commitment_parse(const secp256k1_context* ctx, secp256k1_
285
284
286
285
if ((input [0 ] & 0xFE ) != 8 ||
287
286
!secp256k1_fe_set_b32_limit (& x , & input [1 ]) ||
288
- !secp256k1_ge_set_xquad ( & ge , & x )) {
287
+ !secp256k1_ge_x_on_curve_var ( & x )) {
289
288
return 0 ;
290
289
}
291
- if (input [0 ] & 1 ) {
292
- secp256k1_ge_neg (& ge , & ge );
293
- }
294
- secp256k1_pedersen_commitment_save (commit , & ge );
290
+
291
+ memcpy (commit -> data , input , 33 );
295
292
return 1 ;
296
293
}
297
294
298
295
int secp256k1_pedersen_commitment_serialize (const secp256k1_context * ctx , unsigned char * output , const secp256k1_pedersen_commitment * commit ) {
299
- secp256k1_ge ge ;
300
-
301
296
VERIFY_CHECK (ctx != NULL );
302
297
ARG_CHECK (output != NULL );
303
298
ARG_CHECK (commit != NULL );
304
299
305
- secp256k1_pedersen_commitment_load (& ge , commit );
306
-
307
- output [0 ] = 9 ^ secp256k1_fe_is_square_var (& ge .y );
308
- secp256k1_fe_normalize_var (& ge .x );
309
- secp256k1_fe_get_b32 (& output [1 ], & ge .x );
300
+ memcpy (output , commit -> data , 33 );
310
301
return 1 ;
311
302
}
312
303
0 commit comments