From 40005dc00d3b70a16fc10900b93d99b0cea2c246 Mon Sep 17 00:00:00 2001 From: Janus Date: Thu, 15 Mar 2018 01:13:11 +0100 Subject: [PATCH] lightning: use derivePrivKey in signOutputRaw --- lib/lightning.py | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/lib/lightning.py b/lib/lightning.py index bf771b48..64168177 100644 --- a/lib/lightning.py +++ b/lib/lightning.py @@ -469,11 +469,7 @@ def SignOutputRaw(json): def signOutputRaw(tx, signDesc): - adr = None - if len(signDesc.keyDescriptor.pubKey) != 0: - adr = bitcoin.pubkey_to_address('p2wpkh', binascii.hexlify( - signDesc.keyDescriptor.pubKey).decode("utf-8")) # Because this is all NewAddress supports - pri = fetchPrivKey(adr, signDesc.keyDescriptor.keyLocator.family, signDesc.keyDescriptor.keyLocator.index) + pri = derivePrivKey(signDesc) pri2 = maybeTweakPrivKey(signDesc, pri) sig = rawTxInWitnessSignature(tx, signDesc.sigHashes, signDesc.inputIndex, signDesc.output.value, signDesc.witnessScript, sigHashAll, pri2) @@ -801,6 +797,7 @@ async def readReqAndReply(obj, writer): await writer.drain() def privKeyForPubKey(pubKey): + global globalIdx priv_keys = WALLET.storage.get("lightning_extra_keys", []) for i in priv_keys: candidate = EC_KEY(i.to_bytes(32, "big")) @@ -827,7 +824,6 @@ def privKeyForPubKey(pubKey): #assert False, "could not find private key for pubkey {} hex={}".format(pubKey, binascii.hexlify(pubKey).decode("ascii")) def derivePrivKey(keyDesc): - global globalIdx keyDescFam = keyDesc.keyLocator.family keyDescIdx = keyDesc.keyLocator.index keyDescPubKey = keyDesc.pubKey