Feature #10964

Include TREZOR support (Bitcoin hardware wallet)

Added by stick 2016-01-17 19:37:59 . Updated 2016-12-04 14:13:20 .

Status:
Resolved
Priority:
Low
Assignee:
stick
Category:
Hardware support
Target version:
Start date:
2016-01-17
Due date:
% Done:

50%

Feature Branch:
Type of work:
Code
Blueprint:

Starter:
Affected tool:
Deliverable for:

Description

Tails already includes Electrum bitcoin client which supports TREZOR bitcoin hardware wallet (bitcointrezor.com). In order to complete the support we need to do the following changes:

1) add package python-trezor (from testing or unstable)
2) add the following udev rule to system: https://github.com/trezor/trezor-common/blob/master/udev/51-trezor.rules


Subtasks


History

#1 Updated by stick 2016-01-17 20:30:54

Also this needs python-mnemonic and python-protobuf which might or might not already be included in the distro.

#2 Updated by intrigeri 2016-01-17 21:03:28

  • Target version deleted (Tails_2.0)

(@frontdesk: please triage this. I’m merely removing it from the 2.0 dashboard, since we’ve feature-frozen 2.0 a month ago.)

#3 Updated by stick 2016-01-28 23:37:29

Full package tree that needs to be imported from testing/unstable:

  • python-trezor
    • python-hid
    • python-mnemonic

#4 Updated by stick 2016-01-29 16:59:20

I just learned that the mentioned udev rule is already a part of python-trezor-0.6.10-1 package in testing (see https://packages.debian.org/stretch/all/python-trezor/filelist), so please ignore change #2.

#5 Updated by mercedes508 2016-01-31 19:43:32

Could you please explain deeper why it should be included in Tails?

#6 Updated by stick 2016-01-31 23:35:00

There are literally thousands of people using TREZOR all around the world and they are looking for an option how to use it anonymously. We tell them to use Electrum and setup Tor. This is quite hard to do for a common user and Tails makes this task so much easier. Electrum is already a part of Tails, but requires a permanent storage to hold your bitcoins. Advantage of using Electrum with TREZOR is that you don’t need this, as keys are stored on a separate device and Electrum can easily recreate the whole wallet from scratch every time. I think adding support for this makes sense for TREZOR users which is a big group, that’s why I suggested it.

#7 Updated by intrigeri 2016-02-02 13:23:41

  • Status changed from New to Confirmed
  • Priority changed from Normal to Low

I personally don’t think it is worth maintaining a delta with Debian for this => next step to add this feature is to have the needed bits (udev rules and anything else that’s missing) into Debian.

Meanwhile, an option would be to move all Tails-specific udev rules from /etc/udev/rules.d/ to /lib/udev/rules.d, so that users can make /etc/udev/rules.d/ persistent and drop whatever they want in there. Patches going this way would be considered :)

#8 Updated by stick 2016-02-02 14:01:46

You have not read the issue thoroughly. Everything is properly packaged in Debian testing (including udev-rules). All needs to be done is add python-trezor/testing, python-hid/testing and python-mnemonic/testing to the default selection of packages.

#9 Updated by intrigeri 2016-02-02 16:25:29

  • Type of work changed from Debian to Code

OK, sorry I missed that comment (too bad the ticket’s description is still stating wrong facts). I wonder if we should include these packages, or simply document that one can easily use the Additional Software Packages feature to install them. As a first iteration, I’d rather see the latter happen for the Tails 2.x (Jessie) series: I’m worried that we include these 3 packages now, and then in 6 months they can’t be installed as-is on Jessie and then we have to maintain backports, which would make this bonus feature much more costly to maintain than I would like. And for Tails 3.x (Stretch) we can include these 3 packages directly into Tails. Thoughts?

#10 Updated by intrigeri 2016-02-02 16:25:40

  • Type of work changed from Code to Discuss

#11 Updated by intrigeri 2016-07-30 09:35:44

  • Estimated time deleted (1 h)
  • Type of work changed from Discuss to Code

#12 Updated by stick 2016-11-27 20:07:19

With Tails 3.0 Alpha in circulation this issue is again relevant.

#13 Updated by stick 2016-12-04 03:40:47

I think the only change needed is the following:

--- a/config/chroot_local-packageslists/tails-common.list
+++ b/config/chroot_local-packageslists/tails-common.list
@@ -405,5 +405,8 @@ openjdk-7-jre
 # Enable Electrum's Qt GUI
 python-qt4

+# Enable TREZOR Hardware Wallet for Electrum
+python-trezor
+
 # Provide gnome-open (used to open e.g. URLs in KeePassX, Icedove, Electrum...)
 libgnome2-bin

#14 Updated by intrigeri 2016-12-04 08:34:53

  • Status changed from Confirmed to In Progress
  • Assignee set to stick
  • Target version set to Tails_3.0
  • % Done changed from 0 to 50
  • QA Check set to Info Needed

The next successful Stretch-based build will include it: https://nightly.tails.boum.org/build_Tails_ISO_feature-stretch/lastSuccessful/archive/build-artifacts/. Please test and report back here.

#15 Updated by stick 2016-12-04 12:31:53

I confirm that TREZOR integration works as expected in

tails-amd64-feature_stretch-3.0-20161204T0934Z-207de7f.iso

Thanks! I think we can close the issue.

#16 Updated by intrigeri 2016-12-04 14:13:20

  • Status changed from In Progress to Resolved