1
0

encrypt/decrypt messages in gui

This commit is contained in:
ThomasV
2014-03-03 10:39:10 +01:00
parent 1face99346
commit da6f292dd5
4 changed files with 113 additions and 28 deletions

View File

@@ -303,6 +303,10 @@ def verify_message(address, signature, message):
return False
def encrypt_message(message, pubkey):
return EC_KEY.encrypt_message(message, pubkey.decode('hex'))
def chunks(l, n):
return [l[i:i+n] for i in xrange(0, len(l), n)]

View File

@@ -207,15 +207,11 @@ class Commands:
return out
def getpubkeys(self, addr):
assert is_valid(addr) and self.wallet.is_mine(addr)
out = { 'address':addr }
account, sequence = self.wallet.get_address_index(addr)
if account != -1:
a = self.wallet.accounts[account]
out['pubkeys'] = a.get_pubkeys( sequence )
out['pubkeys'] = self.wallet.getpubkeys(addr)
return out
def getbalance(self, account= None):
if account is None:
c, u = self.wallet.get_balance()
@@ -400,8 +396,10 @@ class Commands:
else:
return "unknown transaction"
def encrypt(self, pubkey, message):
return EC_KEY.encrypt_message(message, pubkey.decode('hex'))
return bitcoin.encrypt_message(message, pubkey)
def decrypt(self, secret, message):
ec = regenerate_key(secret)

View File

@@ -593,6 +593,14 @@ class NewWallet:
raise Exception("Address not found", address)
def getpubkeys(self, addr):
assert is_valid(addr) and self.is_mine(addr)
account, sequence = self.get_address_index(addr)
if account != -1:
a = self.accounts[account]
return a.get_pubkeys( sequence )
def get_roots(self, account):
roots = []
for a in account.split('&'):
@@ -771,6 +779,16 @@ class NewWallet:
return key.sign_message(message, compressed, address)
def decrypt_message(self, pubkey, message, password):
address = public_key_to_bc_address(pubkey.decode('hex'))
keys = self.get_private_key(address, password)
secret = keys[0]
ec = regenerate_key(secret)
decrypted = ec.decrypt_message(message)
return decrypted[0]
def change_gap_limit(self, value):
if value >= self.gap_limit:
self.gap_limit = value