Skip to content

Commit d492d2f

Browse files
authored
FEAT: Remove support for deprecated SECP256K1 flags (#140)
1 parent dc3cdbd commit d492d2f

File tree

5 files changed

+21
-49
lines changed

5 files changed

+21
-49
lines changed

Diff for: _cffi_build/secp256k1.h

+4-10
Original file line numberDiff line numberDiff line change
@@ -14,22 +14,16 @@ typedef int (*secp256k1_nonce_function)(
1414
void *data,
1515
unsigned int attempt
1616
);
17-
#define SECP256K1_FLAGS_TYPE_MASK ...
18-
#define SECP256K1_FLAGS_TYPE_CONTEXT ...
19-
#define SECP256K1_FLAGS_TYPE_COMPRESSION ...
20-
#define SECP256K1_FLAGS_BIT_CONTEXT_VERIFY ...
21-
#define SECP256K1_FLAGS_BIT_CONTEXT_SIGN ...
22-
#define SECP256K1_FLAGS_BIT_CONTEXT_DECLASSIFY ...
23-
#define SECP256K1_FLAGS_BIT_COMPRESSION ...
17+
2418
#define SECP256K1_CONTEXT_NONE ...
25-
#define SECP256K1_CONTEXT_VERIFY ...
26-
#define SECP256K1_CONTEXT_SIGN ...
27-
#define SECP256K1_CONTEXT_DECLASSIFY ...
2819
#define SECP256K1_EC_COMPRESSED ...
2920
#define SECP256K1_EC_UNCOMPRESSED ...
3021
#define SECP256K1_TAG_PUBKEY_EVEN ...
3122
#define SECP256K1_TAG_PUBKEY_ODD ...
3223
#define SECP256K1_TAG_PUBKEY_UNCOMPRESSED ...
24+
#define SECP256K1_TAG_PUBKEY_HYBRID_EVEN ...
25+
#define SECP256K1_TAG_PUBKEY_HYBRID_ODD ...
26+
3327
extern const secp256k1_context *secp256k1_context_static;
3428
extern void secp256k1_selftest(void);
3529
extern secp256k1_context *secp256k1_context_create(

Diff for: coincurve/_windows_libsecp256k1.py

+5-12
Original file line numberDiff line numberDiff line change
@@ -23,21 +23,14 @@
2323
unsigned int attempt
2424
);
2525
26-
#define SECP256K1_FLAGS_TYPE_MASK 255
27-
#define SECP256K1_FLAGS_TYPE_CONTEXT 1
28-
#define SECP256K1_FLAGS_TYPE_COMPRESSION 2
29-
#define SECP256K1_FLAGS_BIT_CONTEXT_VERIFY 256
30-
#define SECP256K1_FLAGS_BIT_CONTEXT_SIGN 512
31-
#define SECP256K1_FLAGS_BIT_CONTEXT_DECLASSIFY 1024
32-
#define SECP256K1_FLAGS_BIT_COMPRESSION 256
33-
#define SECP256K1_TAG_PUBKEY_EVEN 2
34-
#define SECP256K1_TAG_PUBKEY_ODD 3
35-
#define SECP256K1_TAG_PUBKEY_UNCOMPRESSED 4
36-
3726
#define SECP256K1_CONTEXT_NONE 1
38-
#define SECP256K1_CONTEXT_DECLASSIFY 1025
3927
#define SECP256K1_EC_COMPRESSED 258
4028
#define SECP256K1_EC_UNCOMPRESSED 2
29+
#define SECP256K1_TAG_PUBKEY_EVEN 2
30+
#define SECP256K1_TAG_PUBKEY_ODD 3
31+
#define SECP256K1_TAG_PUBKEY_UNCOMPRESSED 4
32+
#define SECP256K1_TAG_PUBKEY_HYBRID_EVEN 6
33+
#define SECP256K1_TAG_PUBKEY_HYBRID_ODD 7
4134
4235
extern const secp256k1_context *secp256k1_context_static;
4336
extern void secp256k1_selftest(void);

Diff for: coincurve/context.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@
22
from threading import Lock
33
from typing import Optional
44

5-
from coincurve.flags import CONTEXT_ALL, CONTEXT_FLAGS
5+
from coincurve.flags import CONTEXT_FLAGS, CONTEXT_NONE
66

77
from ._libsecp256k1 import ffi, lib
88

99

1010
class Context:
11-
def __init__(self, seed: Optional[bytes] = None, flag=CONTEXT_ALL, name: str = ''):
11+
def __init__(self, seed: Optional[bytes] = None, flag=CONTEXT_NONE, name: str = ''):
1212
if flag not in CONTEXT_FLAGS:
1313
raise ValueError(f'{flag} is an invalid context flag.')
1414
self._lock = Lock()

Diff for: coincurve/flags.py

+10-4
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,16 @@
11
from ._libsecp256k1 import lib
22

3-
CONTEXT_SIGN = lib.SECP256K1_CONTEXT_SIGN
4-
CONTEXT_VERIFY = lib.SECP256K1_CONTEXT_VERIFY
5-
CONTEXT_ALL = CONTEXT_SIGN | CONTEXT_VERIFY
63
CONTEXT_NONE = lib.SECP256K1_CONTEXT_NONE
7-
CONTEXT_FLAGS = {CONTEXT_SIGN, CONTEXT_VERIFY, CONTEXT_ALL, CONTEXT_NONE}
4+
CONTEXT_FLAGS = {
5+
CONTEXT_NONE,
6+
}
87

98
EC_COMPRESSED = lib.SECP256K1_EC_COMPRESSED
109
EC_UNCOMPRESSED = lib.SECP256K1_EC_UNCOMPRESSED
10+
11+
# Additional flags available from libsecp256k1
12+
# lib.SECP256K1_TAG_PUBKEY_EVEN
13+
# lib.SECP256K1_TAG_PUBKEY_ODD
14+
# lib.SECP256K1_TAG_PUBKEY_UNCOMPRESSED
15+
# lib.SECP256K1_TAG_PUBKEY_HYBRID_EVEN
16+
# lib.SECP256K1_TAG_PUBKEY_HYBRID_ODD

Diff for: tests/test_flags.py

-21
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,13 @@
11
from coincurve.flags import (
2-
CONTEXT_ALL,
32
CONTEXT_FLAGS,
43
CONTEXT_NONE,
5-
CONTEXT_SIGN,
6-
CONTEXT_VERIFY,
74
EC_COMPRESSED,
85
EC_UNCOMPRESSED,
96
)
107

118

129
def test_context_flags():
1310
expected_flags = {
14-
CONTEXT_SIGN,
15-
CONTEXT_VERIFY,
16-
CONTEXT_ALL,
1711
CONTEXT_NONE,
1812
}
1913
assert CONTEXT_FLAGS == expected_flags
@@ -24,21 +18,6 @@ def test_context_none():
2418
assert CONTEXT_NONE == (1 << 0)
2519

2620

27-
def test_context_sign():
28-
# From libsecp256k1's include/secp256k1.h
29-
assert CONTEXT_SIGN == ((1 << 0) | (1 << 9))
30-
31-
32-
def test_context_verify():
33-
# From libsecp256k1's include/secp256k1.h
34-
assert CONTEXT_VERIFY == ((1 << 0) | (1 << 8))
35-
36-
37-
def test_context_all():
38-
# From libsecp256k1's include/secp256k1.h
39-
assert CONTEXT_ALL == (CONTEXT_SIGN | CONTEXT_VERIFY)
40-
41-
4221
def test_ec_compressed():
4322
# From libsecp256k1's include/secp256k1.h
4423
assert EC_COMPRESSED == (1 << 1) | (1 << 8)

0 commit comments

Comments
 (0)