1515#include "ecmult_gen.h"
1616
1717static int secp256k1_eckey_pubkey_parse (secp256k1_ge * elem , const unsigned char * pub , size_t size ) {
18- if (size == 33 && (pub [0 ] == 0x02 || pub [0 ] == 0x03 )) {
18+ if (size == 33 && (pub [0 ] == SECP256K1_TAG_PUBKEY_EVEN || pub [0 ] == SECP256K1_TAG_PUBKEY_ODD )) {
1919 secp256k1_fe x ;
20- return secp256k1_fe_set_b32 (& x , pub + 1 ) && secp256k1_ge_set_xo_var (elem , & x , pub [0 ] == 0x03 );
20+ return secp256k1_fe_set_b32 (& x , pub + 1 ) && secp256k1_ge_set_xo_var (elem , & x , pub [0 ] == SECP256K1_TAG_PUBKEY_ODD );
2121 } else if (size == 65 && (pub [0 ] == 0x04 || pub [0 ] == 0x06 || pub [0 ] == 0x07 )) {
2222 secp256k1_fe x , y ;
2323 if (!secp256k1_fe_set_b32 (& x , pub + 1 ) || !secp256k1_fe_set_b32 (& y , pub + 33 )) {
2424 return 0 ;
2525 }
2626 secp256k1_ge_set_xy (elem , & x , & y );
27- if ((pub [0 ] == 0x06 || pub [0 ] == 0x07 ) && secp256k1_fe_is_odd (& y ) != (pub [0 ] == 0x07 )) {
27+ if ((pub [0 ] == SECP256K1_TAG_PUBKEY_HYBRID_EVEN || pub [0 ] == SECP256K1_TAG_PUBKEY_HYBRID_ODD ) &&
28+ secp256k1_fe_is_odd (& y ) != (pub [0 ] == SECP256K1_TAG_PUBKEY_HYBRID_ODD )) {
2829 return 0 ;
2930 }
3031 return secp256k1_ge_is_valid_var (elem );
@@ -42,10 +43,10 @@ static int secp256k1_eckey_pubkey_serialize(secp256k1_ge *elem, unsigned char *p
4243 secp256k1_fe_get_b32 (& pub [1 ], & elem -> x );
4344 if (compressed ) {
4445 * size = 33 ;
45- pub [0 ] = 0x02 | ( secp256k1_fe_is_odd (& elem -> y ) ? 0x01 : 0x00 ) ;
46+ pub [0 ] = secp256k1_fe_is_odd (& elem -> y ) ? SECP256K1_TAG_PUBKEY_ODD : SECP256K1_TAG_PUBKEY_EVEN ;
4647 } else {
4748 * size = 65 ;
48- pub [0 ] = 0x04 ;
49+ pub [0 ] = SECP256K1_TAG_PUBKEY_UNCOMPRESSED ;
4950 secp256k1_fe_get_b32 (& pub [33 ], & elem -> y );
5051 }
5152 return 1 ;
0 commit comments