From 2c1f9a4cb56ffff99d17fddb0d3617552f161477 Mon Sep 17 00:00:00 2001 From: ikndevs Date: Wed, 29 Jan 2014 13:22:56 +0000 Subject: [PATCH 1/3] added support for Base58Encoded private keys --- jeeq.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) mode change 100644 => 100755 jeeq.py diff --git a/jeeq.py b/jeeq.py old mode 100644 new mode 100755 index 949eaf7..4c9f178 --- a/jeeq.py +++ b/jeeq.py @@ -459,11 +459,15 @@ def generate_keys(curved=curveBitcoin, bitcoin=True, addv=0, G=generatorBitcoin) elif GetFlag('-d'): addv=int(GetArg('-v',0)) message=GetArg('-i') - private_key=GetArg('-k') + undecoded_private_key=GetArg('-k') - if len(private_key)==64: - private_key=private_key.decode('hex') - assert len(private_key)==32, 'Bad private key, you must give it in hexadecimal' + private_key = '' + if len(undecoded_private_key)==64: + private_key=undecoded_private_key.decode('hex') # try hex first + if len(private_key)!=32: + private_key=DecodeBase58Check(undecoded_private_key)[1:33] # try base58check next + + assert len(private_key)==32, 'Bad private key, you must give it in hexadecimal, or base58check' output=decrypt_message(private_key, message, verbose=True, generator=generatorBitcoin) From 01b59aed6eb4401fcd9f369fc3f3baf252b98f61 Mon Sep 17 00:00:00 2001 From: ikndevs Date: Thu, 30 Jan 2014 08:43:26 +0000 Subject: [PATCH 2/3] fixed indent bug --- jeeq.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/jeeq.py b/jeeq.py index 4c9f178..11cb374 100755 --- a/jeeq.py +++ b/jeeq.py @@ -404,7 +404,7 @@ def print_help(e=False): exit(0) def generate_keys(curved=curveBitcoin, bitcoin=True, addv=0, G=generatorBitcoin): #will return private key < 2^256 - _r = generator.order() + _r = G.order() rand = ( '%013x' % long(random.random() * 0xfffffffffffff) )*5 pvk = (long(rand,16) >> 4)%_r P = pvk*G @@ -430,7 +430,7 @@ def generate_keys(curved=curveBitcoin, bitcoin=True, addv=0, G=generatorBitcoin) if GetFlag('--generate-keys') or GetFlag('-g'): v=int(GetArg('-v',0)) keys=generate_keys(addv=v) - print 'Private key: ', keys[0] + print 'Private key: ', keys[0] print 'Compressed public key: ', keys[1] print 'Uncompressed public key: ', keys[2] print 'Compressed address: ', keys[3][0] @@ -467,7 +467,7 @@ def generate_keys(curved=curveBitcoin, bitcoin=True, addv=0, G=generatorBitcoin) if len(private_key)!=32: private_key=DecodeBase58Check(undecoded_private_key)[1:33] # try base58check next - assert len(private_key)==32, 'Bad private key, you must give it in hexadecimal, or base58check' + assert len(private_key)==32, 'Bad private key, you must give it in hexadecimal, or base58check' output=decrypt_message(private_key, message, verbose=True, generator=generatorBitcoin) From 317766e7edae9dd1e937cab572e1329b3a370195 Mon Sep 17 00:00:00 2001 From: ikndevs Date: Thu, 30 Jan 2014 08:50:31 +0000 Subject: [PATCH 3/3] fixed indent bug 2 --- jeeq.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jeeq.py b/jeeq.py index 11cb374..c464342 100755 --- a/jeeq.py +++ b/jeeq.py @@ -430,7 +430,7 @@ def generate_keys(curved=curveBitcoin, bitcoin=True, addv=0, G=generatorBitcoin) if GetFlag('--generate-keys') or GetFlag('-g'): v=int(GetArg('-v',0)) keys=generate_keys(addv=v) - print 'Private key: ', keys[0] + print 'Private key: ', keys[0] print 'Compressed public key: ', keys[1] print 'Uncompressed public key: ', keys[2] print 'Compressed address: ', keys[3][0]