1
0
Fork 0
mirror of https://github.com/bitcoin/bips.git synced 2025-02-25 16:04:13 +01:00

Merge pull request #80 from jonasnick/bytes

Accept seckey in the form of bytes and not int in the reference BIP-schnorr code...
This commit is contained in:
Pieter Wuille 2019-10-07 10:44:57 -07:00 committed by GitHub
commit 00f941b8c7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -66,12 +66,16 @@ def is_quad(x):
return jacobi(x) == 1
def pubkey_gen(seckey):
P = point_mul(G, seckey)
x = int_from_bytes(seckey)
if not (1 <= x <= n - 1):
raise ValueError('The secret key must be an integer in the range 1..n-1.')
P = point_mul(G, x)
return bytes_from_point(P)
def schnorr_sign(msg, seckey0):
if len(msg) != 32:
raise ValueError('The message must be a 32-byte array.')
seckey0 = int_from_bytes(seckey0)
if not (1 <= seckey0 <= n - 1):
raise ValueError('The secret key must be an integer in the range 1..n-1.')
P = point_mul(G, seckey0)
@ -122,7 +126,7 @@ def test_vectors():
result = result == 'TRUE'
print('\nTest vector #%-3i: ' % int(index))
if seckey != '':
seckey = int(seckey, 16)
seckey = bytes.fromhex(seckey)
pubkey_actual = pubkey_gen(seckey)
if pubkey != pubkey_actual:
print(' * Failed key generation.')