Skip to content

Commit 55f7cfd

Browse files
committed
Changes for 3.0.6
1 parent 38c822e commit 55f7cfd

18 files changed

Lines changed: 572 additions & 94 deletions

docs/limitations.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,8 @@
6363
- we always store xpubs in BIP32 format, although we can read SLIP132 format (Ypub/Zpub/etc)
6464
- if XPUB values are in the PSBT, we assume it's going to be a multisig transaction signing, so
6565
there must be an unsigned input with M-of-N script
66+
- change outputs (indicated with paths, scripts in output section) must correspond to
67+
the active multisig wallet, and cannot be used to describe an unrelated (multisig) wallet.
6668

6769
# SIGHASH types
6870

releases/ChangeLog.md

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,18 @@
1-
- Bugfix: need blank line between addresses shown if sending to multiple destinations.
1+
## 3.0.6 - Dec 19, 2019
2+
3+
- Security Bugfix: Fixed a multisig PSBT-tampering issue, that could allow a MitM to
4+
steal funds. Please upgrade ASAP.
5+
- Enhancement: Sign a text file from MicroSD. Input file must have extension .TXT and
6+
contain a single line of text. Signing key subpath can also provided on the second line.
7+
- Enhancement: Now shows the change outputs of the transaction during signing
8+
process. This additional data can be ignored, but it is useful for those who
9+
wish to verify all parts of the new transaction.
10+
- Enhancement: PSBT files on MicroSD can now be provided in base64 or hex encodings. Resulting
11+
(signed) PSBT will be written in same encoding as the input PSBT.
12+
- Bugfix: crashed on entry into the Address Explorer (some users, sometimes).
13+
- Bugfix: add blank line between addresses shown if sending to multiple destinations.
14+
- Bugfix: multisig outputs were not checked to see if they are change (would have been
15+
shown as regular outputs), if the PSBT did not have XPUB data in globals section.
216

317
## 3.0.5 - Nov 25, 2019
418

shared/actions.py

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1076,7 +1076,14 @@ def is_psbt(filename):
10761076
return False
10771077

10781078
with open(filename, 'rb') as fd:
1079-
return fd.read(5) == b'psbt\xff'
1079+
taste = fd.read(10)
1080+
if taste[0:5] == b'psbt\xff':
1081+
return True
1082+
if taste[0:10] == b'70736274ff': # hex-encoded
1083+
return True
1084+
if taste[0:6] == b'cHNidP': # base64-encoded
1085+
return True
1086+
return False
10801087

10811088
choices = await file_picker(None, suffix='psbt', min_size=50,
10821089
max_size=MAX_TXN_LEN, taster=is_psbt)
@@ -1109,6 +1116,29 @@ def is_psbt(filename):
11091116
await sign_psbt_file(input_psbt)
11101117

11111118

1119+
async def sign_message_on_sd(*a):
1120+
# Menu item: choose a file to be signed (as a short text message)
1121+
#
1122+
def is_signable(filename):
1123+
if '-signed' in filename.lower():
1124+
return False
1125+
with open(filename, 'rt') as fd:
1126+
lines = fd.readlines()
1127+
return (1 <= len(lines) <= 5)
1128+
1129+
fn = await file_picker('Choose text file to be signed.',
1130+
suffix='txt', min_size=2,
1131+
max_size=500, taster=is_signable,
1132+
none_msg='No suitable files found. Must be one line of text, in a .TXT file, optionally followed by a subkey derivation path on a second line.')
1133+
1134+
if not fn:
1135+
return
1136+
1137+
# start the process
1138+
from auth import sign_txt_file
1139+
await sign_txt_file(fn)
1140+
1141+
11121142
async def pin_changer(_1, _2, item):
11131143
# Help them to change pins with appropriate warnings.
11141144
# - forcing them to drill-down to get warning about secondary is on purpose

0 commit comments

Comments
 (0)