From 9e2817f50a870dbfa73a0162dd436eeaae73ad0a Mon Sep 17 00:00:00 2001 From: Massimiliano Terzi Date: Tue, 1 Jan 2019 16:58:31 +0000 Subject: [PATCH] Update ec-math.py python 3, no need for decoding/encoding --- code/ec-math.py | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/code/ec-math.py b/code/ec-math.py index 7dcaa9ea..54856ebb 100644 --- a/code/ec-math.py +++ b/code/ec-math.py @@ -20,29 +20,25 @@ generator = generator_secp256k1 def random_secret(): - convert_to_int = lambda array: int("".join(array).encode("hex"), 16) - # Collect 256 bits of random data from the OS's cryptographically secure # random number generator - byte_array = os.urandom(32) - - return convert_to_int(byte_array) + byte_array = (os.urandom(32)).hex() + return int(byte_array,16) def get_point_pubkey(point): if (point.y() % 2) == 1: key = '03' + '%064x' % point.x() else: key = '02' + '%064x' % point.x() - return key.decode('hex') + return key def get_point_pubkey_uncompressed(point): key = ('04' + '%064x' % point.x() + '%064x' % point.y()) - return key.decode('hex') - + return key # Generate a new private key. secret = random_secret() @@ -50,9 +46,9 @@ print("Secret: ", secret) # Get the public key point. point = secret * generator -print("EC point:", point) +print("Elliptic Curve point:", point) -print("BTC public key:", get_point_pubkey(point).encode("hex")) +print("BTC public key:", get_point_pubkey(point)) # Given the point (x, y) we can create the object using: point1 = ecdsa.ellipticcurve.Point(curve, point.x(), point.y(), ec_order)