from elligator import curve_to_hash
from elligator import fast_curve_to_hash
from elligator import hash_to_curve
+from elligator import print_raw
from elligator_scalarmult import scalarmult
-from elligator_scalarmult import print_scalar
from random import randrange
scalar = randrange(0, 2**253) * 8 + cofactor
r = private_to_hash(scalar, tweak)
if r is None:
- print_scalar(scalar)
+ print_raw(scalar)
print(format(tweak, '02x') + ":")
print('ff:') # Failure
print('00:') # dummy value for the hash
scalar = randrange(0, 2**253) * 8 + cofactor
r = private_to_hash(scalar, tweak)
if r is not None:
- print_scalar(scalar)
+ print_raw(scalar)
print(format(tweak, '02x') + ":")
print('00:') # Success
- print_scalar(r)
+ print_raw(r)
print()
break
if m != 0: raise ValueError('number is too big!!')
print(':')
+def print_raw(raw):
+ """prints a raw element in little endian"""
+ for _ in range(32):
+ print(format(raw % 256, '02x'), end='')
+ raw //= 256
+ if raw != 0: raise ValueError('number is too big!!')
+ print(':')
+
########################
# Curve25519 constants #
########################
from elligator import sqrt
from elligator import sqrtm1
-def print_scalar(scalar):
- """prints a scalar element in little endian"""
- for _ in range(32):
- print(format(scalar % 256, '02x'), end='')
- scalar //= 256
- if scalar != 0: raise ValueError('number is too big!!')
- print(':')
-
#########################################
# scalar multiplication (Edwards space) #
#########################################