Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
71e51de
Initial commit
Alcofribas4 Dec 18, 2018
64191bd
Basic Segwit support:
Alcofribas4 Jan 15, 2019
6668a05
Update support to Satochip v0.6 (non-hardened chilp optimization)
Alcofribas4 Feb 7, 2019
9a770c1
code cleaning: use card_transmit(apdu) instead of @unlock_pin wrapper
Alcofribas4 Feb 7, 2019
707bb8c
* Add Unit Tests for BIP32 derivation
Alcofribas4 Feb 14, 2019
3ea3e2b
Add Unit Test: test card_sign_message()
Alcofribas4 Feb 14, 2019
ecfff27
refactor get_extended_key(): parse response and return (key, chaincod…
Alcofribas4 Feb 19, 2019
dc70165
Improved smartcard detection function 'detect_smartcard_reader(self)'…
Alcofribas4 Feb 26, 2019
9fa120a
Merge remote-tracking branch 'electrum/master' into satochip
Alcofribas4 Feb 26, 2019
23ee3e8
Remove old test class (replaced by test_CardConnector.py)
Alcofribas4 Feb 26, 2019
1f2b83c
update README,
Toporin Feb 28, 2019
5789ad6
minor formatting
Toporin Feb 28, 2019
a4e6ff5
Change .gitignore to add ./gui/qt/icons_rc.py
Toporin Feb 28, 2019
1017b1c
add satochip icons in electrum
Toporin Mar 1, 2019
dc612ba
improve PIN support: prompt for PIN if needed
Toporin Mar 5, 2019
591b297
Improved PIN support:
Toporin Mar 12, 2019
98a2321
packaging electrum-satochip into executable for windows
Toporin Mar 15, 2019
636b9f5
Sync repository with the latest release of electrum v3.3.4
Toporin Mar 25, 2019
bb04379
Packaging electrum-satochip v3.3.4 into executable for windows
Toporin Mar 26, 2019
037fcd0
Electrum v3.3.4 - Satochip v0.7: Add 2FA support
Toporin May 30, 2019
5eeab49
cleanup & remove temporary build files for osx
Toporin Jul 9, 2019
23d857a
Upgrade to Electrum-Satochip v3.3.8-0.7
Toporin Jul 22, 2019
75fb217
Build .exe distributables with new pyscard .whl version (v.1.9.8)
Toporin Jul 23, 2019
fdff14f
Update test suite in test_CardConnector.py
Toporin Jul 23, 2019
6676fad
Remove temp files in contrib/build-wine
Toporin Jul 23, 2019
1b949e7
Clean up code based on https://github.com/spesmilo/electrum/pull/5523
Toporin Jul 26, 2019
bc44e6f
Clean up code based on https://github.com/spesmilo/electrum/pull/5523
Toporin Jul 27, 2019
a3c351b
Clean up code based on https://github.com/spesmilo/electrum/pull/5523
Toporin Oct 3, 2019
d83fff5
Electrum-Satochip v3.3.8-0.8
Toporin Oct 4, 2019
10c60c4
Electrum-Satochip v3.3.8-0.8
Toporin Oct 4, 2019
481691d
Electrum-Satochip v3.3.8-0.9
Toporin Nov 26, 2019
933e89b
Electrum-Satochip v3.3.8-0.9
Toporin Nov 26, 2019
cb26ea9
Patch: Electrum crashes when cancelling PIN change or seed reset
Toporin Dec 5, 2019
a6057e7
Patch "Recovered authentikey does not correspond to registered authen…
Toporin Dec 5, 2019
bdb5aeb
Electrum-Satochip v4.0.0a0-0.9
Toporin Jan 10, 2020
52bbf97
Updated libpcsclite-dev and swig packages in dockerfile for linux app…
Toporin Jan 10, 2020
d1011ab
Electrum-satochip-v4.0.0a0-0.9
Toporin Jan 10, 2020
e5345b7
Electrum-Satochip v4.0.2-0.11.2
Toporin Aug 12, 2020
1472b3e
Switch to BIP39 seeds by default for Satochip
Toporin Sep 22, 2020
2b5abe7
Bump pysatochip version to v0.11.3 instead of v0.11.2
Toporin Sep 22, 2020
d425254
Merge branch 'switch-to-bip39' into electrum-satochip-v4.0.2-0.11
Toporin Sep 22, 2020
ae0f58b
Merge branch 'master' into electrum-satochip-v4.0.2-0.11
Toporin Oct 5, 2020
ff0580c
Merge remote tracking branch & minor improvements
Toporin Jan 7, 2021
2aab3ba
Add support for Satochip v0.12
Toporin Aug 9, 2021
1f84f1f
Build Electrum-Satochip v4.0.9-0.12 for windows
Toporin Aug 9, 2021
d3683fe
Merge branch 'satochip' into electrum-satochip-v4.0.9-0.12
Toporin Aug 10, 2021
aac6aac
Upgrade Electrum-Satochip to v4.1.5-0.12
Toporin Sep 27, 2021
f75c143
build Linux & Windows
Toporin Sep 28, 2021
1bfe0fe
Merge branch 'electrum-satochip-v4.1.5-0.12' into satochip
Toporin Sep 29, 2021
149e4a4
Clean code
Toporin Sep 29, 2021
704a726
build for osx
Toporin Sep 29, 2021
67e3298
Merge branch 'master' into electrum-satochip-v4.1.5-0.12b
Toporin Feb 25, 2022
ee52384
keystore.sign_message: add optional script_type argument
Toporin Feb 25, 2022
28f937e
Bump pysatochip from v0.12.3 to v0.12.4
Toporin Feb 28, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions contrib/build-linux/appimage/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ RUN apt-get update -q && \
libncurses5-dev=6.1-1ubuntu1.18.04 \
libncurses5=6.1-1ubuntu1.18.04 \
libtinfo-dev=6.1-1ubuntu1.18.04 \
libpcsclite-dev=1.8.23-1 \
swig=3.0.12-1 \
libtinfo5=6.1-1ubuntu1.18.04 \
libsqlite3-dev=3.22.0-1ubuntu0.4 \
libusb-1.0-0-dev=2:1.0.21-2 \
Expand Down
3 changes: 3 additions & 0 deletions contrib/build-wine/deterministic.spec
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ hiddenimports += collect_submodules('keepkeylib')
hiddenimports += collect_submodules('websocket')
hiddenimports += collect_submodules('ckcc')
hiddenimports += collect_submodules('bitbox02')
hiddenimports += collect_submodules('smartcard') # satochip
hiddenimports += ['PyQt5.QtPrintSupport'] # needed by Revealer


Expand Down Expand Up @@ -49,6 +50,7 @@ datas += collect_data_files('btchip')
datas += collect_data_files('keepkeylib')
datas += collect_data_files('ckcc')
datas += collect_data_files('bitbox02')
datas += collect_data_files('pysatochip')

# We don't put these files in to actually include them in the script but to make the Analysis method scan them for imports
a = Analysis([home+'run_electrum',
Expand All @@ -69,6 +71,7 @@ a = Analysis([home+'run_electrum',
home+'electrum/plugins/keepkey/qt.py',
home+'electrum/plugins/ledger/qt.py',
home+'electrum/plugins/coldcard/qt.py',
home+'electrum/plugins/satochip/qt.py',
#home+'packages/requests/utils.py'
],
binaries=binaries,
Expand Down
15 changes: 15 additions & 0 deletions contrib/deterministic-build/requirements-hw.txt
Original file line number Diff line number Diff line change
Expand Up @@ -180,6 +180,21 @@ pyaes==1.6.1 \
pycparser==2.21 \
--hash=sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9 \
--hash=sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206
pyopenssl==20.0.0 \
--hash=sha256:898aefbde331ba718570244c3b01dcddb1b31a3b336613436a45e52e27d9a82d \
--hash=sha256:92f08eccbd73701cf744e8ffd6989aa7842d48cbe3fea8a7c031c5647f590ac5
pysatochip==0.12.4 \
--hash=sha256:805156d252ae9b4bc618ab4167933b60508a878dcf08a3eaca32a4c825811b0d \
--hash=sha256:871b8f7ef80eac3c52f1363b5aee7f3047612b760259f4c5db8c054959557c2c
pyscard==2.0.0 \
--hash=sha256:2abc34387ce5d1567a1052edc47797c1288739b51b664468d34ca77c9a3b05c2 \
--hash=sha256:59cb506e8e793c397f3014f0933752df8d00c97c9f3a3385698e77213423962f \
--hash=sha256:60dbc52f00da90e3428e987679723588598579a7c3c757e9937cecd6e381ddd2 \
--hash=sha256:6d6ddcf57f97b0899b952c1c0746177c4b4b52af2ca47eb4d6bd0b9096530181 \
--hash=sha256:73945cd5a8c6e2e4982ba24d70fdba9e1b4ca68b82169337f4733823f7b49fb6 \
--hash=sha256:852a4e354bb82cc1f68afb204349ca68ea6c5332242644a80651a5c62bb1ab5f \
--hash=sha256:b364d9d9186e793c1c4709eb72a4d29e09067d36ca463b2c2abd995bd1055779 \
--hash=sha256:e162f9af64b49beb435e6543819f604e45534c822eb77fd100773f359fbcb6d8
requests==2.27.1 \
--hash=sha256:68d7c56fd5a8999887728ef304a6d12edc7be74f1cfa47714fc8b414525c9a61 \
--hash=sha256:f22fa1e554c9ddfd16e6e41ac79759e17be9e492b3587efa038054674760e72d
Expand Down
2 changes: 1 addition & 1 deletion contrib/osx/make_osx
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ info "generating locale"


info "Installing some build-time deps for compilation..."
brew install autoconf automake libtool gettext coreutils pkgconfig
brew install autoconf automake libtool gettext coreutils pkgconfig swig

if [ ! -f "$PROJECT_ROOT"/electrum/libsecp256k1.0.dylib ]; then
info "Building libsecp256k1 dylib..."
Expand Down
3 changes: 3 additions & 0 deletions contrib/osx/osx.spec
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ hiddenimports += collect_submodules('keepkeylib')
hiddenimports += collect_submodules('websocket')
hiddenimports += collect_submodules('ckcc')
hiddenimports += collect_submodules('bitbox02')
hiddenimports += collect_submodules('smartcard') # Satochip
hiddenimports += ['PyQt5.QtPrintSupport'] # needed by Revealer

datas = [
Expand All @@ -47,6 +48,7 @@ datas += collect_data_files('btchip')
datas += collect_data_files('keepkeylib')
datas += collect_data_files('ckcc')
datas += collect_data_files('bitbox02')
datas += collect_data_files('pysatochip')

# Add libusb so Trezor and Safe-T mini will work
binaries = [(electrum + "contrib/osx/libusb-1.0.dylib", ".")]
Expand Down Expand Up @@ -75,6 +77,7 @@ a = Analysis([electrum+ MAIN_SCRIPT,
electrum+'electrum/plugins/keepkey/qt.py',
electrum+'electrum/plugins/ledger/qt.py',
electrum+'electrum/plugins/coldcard/qt.py',
electrum+'electrum/plugins/satochip/qt.py',
],
binaries=binaries,
datas=datas,
Expand Down
2 changes: 2 additions & 0 deletions contrib/requirements/requirements-hw.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,5 @@ keepkey>=6.3.1
btchip-python>=0.1.32
ckcc-protocol>=0.7.7
bitbox02>=5.2.0
pyscard>=1.9.9
pysatochip==0.12.4
Binary file added electrum/gui/icons/satochip.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added electrum/gui/icons/satochip_unpaired.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
87 changes: 87 additions & 0 deletions electrum/plugins/satochip/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
Satochip plugin for electrum
=================================================================================

::

Licence: MIT Licence
Author: Toporin
Language: Python (>= 3.6)
Homepage: https://github.com/Toporin/electrum-satochip

Introduction
============

This plugin allows to integrate the Satochip Hardware Wallet with Electrum. To use it, you need a device with the Satochip javacard applet installed (see https://github.com/Toporin/SatochipApplet).
If the wallet is not intialized yet, Electrum will perform the setup (you only need to do this once). During setup, a seed is created: this seed allows you to recover your wallet at anytime, so make sure to BACKUP THE SEED SECURELY! During setup, a PIN code is also created: this PIN allows to unlock th device to access your funds. If you try too many wrong PIN, your device will be locked indefinitely (it is 'bricked'). If you loose your PIN or brick your device, you can only recover your funds with the seed backup.

The Satochip wallet is currently in Beta, use with caution!You can use the software on the Bitcoin testnet using the --testnet option.
This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.

Rem: Electrum uses Python 3.x. In case of error, check first that you are not trying to run Electrum with Python 2.x or with Python 2.x libraries.

Development version (Windows 64bits)
=====================================

Install the latest python 3.6 release from https://www.python.org (https://www.python.org/downloads/release/python-368/)
(Caution: installing another release than 3.6 may cause incompatibility issues with pyscard)

Clone or download the code from GitHub.

Open a PowerShell command line in the electrum folder

In PowerShell, install the electrum dependencies::

python -m pip install .

You may also ned to install Python3-pyqt5::

python -m pip install pyqt5

Install pyscard from https://pyscard.sourceforge.io/
Pyscard is required to connect to the smartcard::

python -m pip install pyscard

In case of error message, you may also install pyscard from the installer:
Download the .whl files from https://sourceforge.net/projects/pyscard/files/pyscard/pyscard%201.9.7/ and run::

python -m pip install pyscard-1.9.7-cp36-cp36m-win_amd64.whl

In PowerShell, run electrum on the testnet (-v allows for verbose output)::

python .\run_electrum -v --testnet


Development version (Ubuntu)
==============================
(Electrum requires Python 3.6, which should be installed by default on Ubuntu)
(If necessary, install pip: sudo apt-get install python3-pip)

Electrum is a pure python application. To use the
Qt interface, install the Qt dependencies::

sudo apt-get install python3-pyqt5

Check out the code from GitHub::

git clone git://github.com/Toporin/electrum.git
cd electrum

In the electrum folder:

Run install (this should install dependencies)::

python3 -m pip install .

Install pyscard (https://pyscard.sourceforge.io/)
Pyscard is required to connect to the smartcard::
sudo apt-get install pcscd
sudo apt-get install python3-pyscard
(For alternatives, see https://github.com/LudovicRousseau/pyscard/blob/master/INSTALL.md for more detailed installation instructions)


To run Electrum use::
python3 electrum -v --testnet



9 changes: 9 additions & 0 deletions electrum/plugins/satochip/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#from electrum.i18n import _

fullname = 'Satochip Wallet'
description = 'Provides support for Satochip hardware wallet'
requires = [('satochip', 'github.com/Toporin/pysatochip')]
registers_keystore = ('hardware', 'satochip', "Satochip wallet")
#registers_keystore = ('hardware', 'satochip', _("Satochip wallet"))
#available_for = ['qt', 'cmdline'] #+kivy?
available_for = ['qt']
Loading