ofek 7 years ago
parent
commit
ed2d5b53d1
  1. 2
      coincurve/utils.py
  2. 7
      tests/test_utils.py

2
coincurve/utils.py

@ -102,7 +102,7 @@ def pad_scalar(scalar):
def validate_secret(secret):
if not ZERO < secret < GROUP_ORDER:
if not 0 < bytes_to_int(secret) < GROUP_ORDER_INT:
raise ValueError('Secret scalar must be greater than 0 and less than '
'{}.'.format(GROUP_ORDER_INT))
return pad_scalar(secret)

7
tests/test_utils.py

@ -35,6 +35,13 @@ class TestValidateSecret:
secret = validate_secret(b'\x01')
assert len(secret) == 32 and ZERO < secret < GROUP_ORDER
def test_bytes_greater_than_group_order(self):
secret = validate_secret(
b'\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff'
b'\xff\xff\xfe\xba\xae\xdc\xe6\xafH\xa0;\xbf\xd2^\x8d'
)
assert len(secret) == 32 and ZERO < secret < GROUP_ORDER
def test_out_of_range(self):
with pytest.raises(ValueError):
validate_secret(ZERO)

Loading…
Cancel
Save