-
Notifications
You must be signed in to change notification settings - Fork 3.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add support for Satochip hardware wallet #8967
base: master
Are you sure you want to change the base?
Conversation
Include new wizard Qt desktop client spesmilo#8560 WIP TODO: build binaries, adapt qrcodewidget
In satochip plugin, a user can setup a 2FA using a qrcode. The cancel button allows the user to cancel this action.
flake8 . --count --select="$ELECTRUM_LINTERS" --ignore="$ELECTRUM_LINTERS_IGNORE" --show-source --statistics --exclude "*_pb2.py,electrum/_vendor/" ./electrum/plugins/satochip/__init__.py:6:23: W292 no newline at end of file available_for = ['qt'] ^ 1 W292 no newline at end of file
bitcoin.py/transaction.py: API changes: rm most hex usage See also spesmilo@2f10955
Some notes:
|
Using: $ ELECTRUM_LINTERS='E,F,W,C90,B'
Remove unused imports, variables & code
I have removed unused imports and improved code style. |
Close message dialog correctly when using 2FA
I noticed one typical use-case is not supported yet. The user can't generate a new seed and store it on the card, the user must already have a (BIP39) seed available.. |
one remark w.r.t coding style; there's many java style parenthesis used in if statements :) so e.g.
instead of
|
Yes, that's because electrum does not allow BIP39 generation (by design choice) because it is considered insecure (as there is no seed versioning). Only importing existing BIP39 seed is allowed for compatibility. Also, importing an electrum seed would break compatibility with other hardware wallets, as the (de-facto) standard for hardware wallet is to import a BIP39. We provide another tool for generating (and importing) BIP39 seeds and other utilities (like reset, change PIN...): Satochip-Bridge which will be soon replaced with Satochip-Utils. |
Correct, we don't generate BIP39. |
Hi, is there anything we can do to help with this PR? |
IMO it looks pretty good already, but as I described above, there's still some java-isms w.r.t parenthesis Also, there' still no release tags on the |
I have removed the unnecessary parenthesis from the Satochip plugin code. |
f3a230d
to
c470901
Compare
This is a pull request to add support for the Satochip hardware wallet.
The Satochip hardware wallet is based on a jacavard smartcard and is fully open-source.
The wallet is composed of a javacard applet that is to be loaded on the smartcard, and an Electrum client plugin that acts as the interface between the card and the network. An optional 2FA setting allows to confirm transaction requests on a second android device before signing them (iOS version coming soon).
This pull request updates and supersedes #8453 #7690, #7518 and #6520.
Changes compared to previous PR:
*Based on latest release Electrum v4.5.4
*Use pysatochip v0.12.6 (using minimum functionalities and dependencies)
*Suport for Satochip applet v0.12
New functionalities in Satochip applet v0.12:
*Card authenticity verification based on device certificate & PKI
*Reset to factory option (e.g. if user forget his PIN code or 2FA device)
*Support for importing encrypted seed from a SeedKeeper
More info:
https://github.com/Toporin/ (official repository)
https://pypi.org/project/pysatochip/ (pysatochip library)
https://prezi.com/p/mpq-xhh3mxjl/satochip-gent-meetup/ (Slides from previous meetups in Belgium)
https://t.me/Satochip (Telegram support)