encrypt/decrypt messages in gui
This commit is contained in:
@@ -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)]
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user