spesmilo / spesmilo/electrum

GnuPG integration for password-less wallet protection

Open
#7,969 5 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
8.6k
Forks
3.5k
Avg merge
2d 8h
Merged PRs (30d)
61

Description

Hello,

I'm creating this issue to find out whether if Electrum would be willing to accept a patch of mine. If this has the potential to land in master I would be willing to do this, but my primary concern is that I wouldn't want to maintain a fork of my own, keep it in sync with upstream and all.

The idea is very simple— currently, the only way to protect a permanent wallet in software is via a password, and for those of use who don't have a dedicated hardware like Trezor, or Ledger it's the only option. I do own a Yubikey, however, which functions as a perfectly valid OpenPGP smart card, and I would love to use that for protecting the wallet with E-capability key as opposed to a password. In a setup like this, the encryption key never leaves the device and can only be triggered to decrypt after the hardware PIN is entered, and user touches the device physically. For the most part my Yubikey is plugged in, and I'm using it constantly so I would typically ever enter the PIN once— and then I can use it for a whole range of things by simply touch; it would be very handy to be able to do the same when operating the wallets in Electrum, thereby eliminating a need to remember the password to each individual wallet.

In practice, this means adding a python-gnupg dependency and a limited set of GUI changes, where wallet files like it could have .gpg filename suffix, indicating that it's meant to be manipulated by means of an external GnuPG keystore, provided by a local/remote gpg-agent.

An additional option would have to be added in the keystore dialog:

  1. Create a new seed
  2. I already have a seed
  3. Use a master key
  4. Use a hardware device
  5. Use a OpenGPG

Does this make sense from the maintenance standpoint? I would love to go on and implement this for personal use, but maintaining a fork of my own is simply too much effort, it seems like. Also: Yubikey is traditionally used in 2FA, so perhaps there's extra avenue to further utilise its OpenPGP smart card capability in order to avoid the 3rd party like TrustedCoin.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the keystore dialog and wallet-file handling described in the issue, then review how a python-gnupg dependency could use a local or remote gpg-agent. The proposal would need a defined maintenance scope, GUI behavior, .gpg file handling, and acceptance criteria before implementation can begin.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
desktop, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.