Digital BitBox: Fix sending to self

Make sure that a pubkey is only appended to the checkpub array if it
corresponds to a change address. Signing will fail otherwise, if a
non-change pubkey is sent as part of the checkpub list to the Digital
BitBox.
This commit is contained in:
TheCharlatan 2019-09-09 14:52:59 +02:00
parent 103a37b0ca
commit e7079f1bea
No known key found for this signature in database
GPG key ID: 9B79B45691DB4173

View file

@ -570,11 +570,12 @@ class DigitalBitbox_KeyStore(Hardware_KeyStore):
assert o.type == TYPE_ADDRESS
info = tx.output_info.get(o.address)
if info is not None:
index = info.address_index
changePath = self.get_derivation() + "/%d/%d" % index
changePubkey = self.derive_pubkey(index[0], index[1])
pubkeyarray_i = {'pubkey': changePubkey, 'keypath': changePath}
pubkeyarray.append(pubkeyarray_i)
if info.is_change:
index = info.address_index
changePath = self.get_derivation() + "/%d/%d" % index
changePubkey = self.derive_pubkey(index[0], index[1])
pubkeyarray_i = {'pubkey': changePubkey, 'keypath': changePath}
pubkeyarray.append(pubkeyarray_i)
# Special serialization of the unsigned transaction for
# the mobile verification app.