summaryrefslogtreecommitdiff
path: root/bip-0340
diff options
context:
space:
mode:
authorJonas Nick <jonasd.nick@gmail.com>2022-08-19 18:58:44 +0000
committerJonas Nick <jonasd.nick@gmail.com>2022-08-23 10:07:32 +0000
commit3998dbbc8a3ab3bfabb1b2e90a4840ad93a84adb (patch)
tree83bc306aa263d3771b4f68e1742ed0c899040c70 /bip-0340
parent2119931f0169643cb6cd303279749fb2fd1676af (diff)
BIP 340: fix function signature of lift_x in reference code
bip-0340.mediawiki defines lift_x as taking an integer argument. This commit changes the argument of lift_x in the reference code to be identical to the specification. Previously it took a byte array.
Diffstat (limited to 'bip-0340')
-rw-r--r--bip-0340/reference.py5
1 files changed, 2 insertions, 3 deletions
diff --git a/bip-0340/reference.py b/bip-0340/reference.py
index 5b38c0a..162bb88 100644
--- a/bip-0340/reference.py
+++ b/bip-0340/reference.py
@@ -68,8 +68,7 @@ def bytes_from_point(P: Point) -> bytes:
def xor_bytes(b0: bytes, b1: bytes) -> bytes:
return bytes(x ^ y for (x, y) in zip(b0, b1))
-def lift_x(b: bytes) -> Optional[Point]:
- x = int_from_bytes(b)
+def lift_x(x: int) -> Optional[Point]:
if x >= p:
return None
y_sq = (pow(x, 3, p) + 7) % p
@@ -128,7 +127,7 @@ def schnorr_verify(msg: bytes, pubkey: bytes, sig: bytes) -> bool:
raise ValueError('The public key must be a 32-byte array.')
if len(sig) != 64:
raise ValueError('The signature must be a 64-byte array.')
- P = lift_x(pubkey)
+ P = lift_x(int_from_bytes(pubkey))
r = int_from_bytes(sig[0:32])
s = int_from_bytes(sig[32:64])
if (P is None) or (r >= p) or (s >= n):