Skip to content

Commit 4cb729a

Browse files
committed
Merge branch 'fix-passphrase'
2 parents ec062e8 + 187f680 commit 4cb729a

File tree

14 files changed

+593
-234
lines changed

14 files changed

+593
-234
lines changed

GNUmakefile

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ help:
2525
@echo "GNUmakefile for cpppo. Targets:"
2626
@echo " help This help"
2727
@echo " test Run unit tests under Python3"
28-
@echo " build Build dist wheel and gui under Python3"
28+
@echo " build Build dist wheel and app under Python3"
2929
@echo " install Install in /usr/local for Python3"
3030
@echo " clean Remove build artifacts"
3131
@echo " upload Upload new version to pypi (package maintainer only)"
@@ -34,10 +34,6 @@ test:
3434
$(PY3TEST)
3535

3636

37-
doctest:
38-
$(PY3TEST) --doctest-modules
39-
40-
4137
analyze:
4238
flake8 -j 1 --max-line-length=200 \
4339
--ignore=W503,E201,E202,E221,E223,E226,E231,E241,E242,E251,E265,E272,E274 \
@@ -52,7 +48,7 @@ build-check:
5248
|| ( echo "\n*** Missing Python modules; run:\n\n $(PY3) -m pip install --upgrade pip setuptools wheel build\n" \
5349
&& false )
5450

55-
build: clean wheel gui
51+
build: clean wheel app
5652

5753
wheel: dist/slip39-$(VERSION)-py3-none-any.whl
5854

@@ -64,8 +60,8 @@ dist/slip39-$(VERSION)-py3-none-any.whl: build-check FORCE
6460
install: dist/slip39-$(VERSION)-py3-none-any.whl FORCE
6561
$(PY3) -m pip install --force-reinstall $^[gui,serial,json]
6662

67-
# Generate, Sign and Zip the gui SLIP39.app package
68-
gui: dist/SLIP39.app-$(VERSION).zip
63+
# Generate, Sign and Zip the macOS SLIP39.app GUI package
64+
app: dist/SLIP39.app-$(VERSION).zip
6965

7066
#(cd dist; zip -r SLIP39.app-$(VERSION).zip SLIP39.app)
7167
# Create a ZIP archive suitable for notarization.

README.org

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -143,19 +143,19 @@ by entering the mnemonics right on the device.
143143
instead), add a =-v= (to see it logged in a tabular format), or =--text= to have it printed to
144144
stdout in full lines (ie. for pipelining to other programs).
145145

146-
** The MacOS =SLIP39.app= GUI
146+
** The macOS =SLIP39.app= GUI App
147147

148-
If you prefer a graphical user-interface, try the MacOS app. You can run it directly if you
148+
If you prefer a graphical user-interface, try the macOS app. You can run it directly if you
149149
install Python 3.9+ from [[https://python.org/downloads][python.org/downlaods]] or using homebrew =brew install [email protected]= (or
150150
higher, eg. [email protected]=). Then, start the GUI in a variety of ways:
151151

152152
#+LATEX: {\scriptsize
153153
#+BEGIN_EXAMPLE
154-
slip39-App
155-
python -m slip39.App
154+
slip39-gui
155+
python -m slip39.gui
156156
#+END_EXAMPLE
157157

158-
Alternatively, download and install the MacOS App: [[https://github.com/pjkundert/python-slip39/releases/latest][github.com/pjkundert/python-slip-39/releases]].
158+
Alternatively, download and install the macOS GUI App: [[https://github.com/pjkundert/python-slip39/releases/latest][github.com/pjkundert/python-slip-39/releases]].
159159

160160
You will need to authorize it to run in System Preferences / Security & Privacy / Privacy.
161161

@@ -1060,7 +1060,7 @@ by entering the mnemonics right on the device.
10601060
and using [[https://www.python.org/downloads/][the official python.org/downloads installer]].
10611061

10621062
Either of these methods will get you a =python3= executable running version 3.9+, usable for
1063-
running the =slip39= module, and the =slip39.App= GUI.
1063+
running the =slip39= module, and the =slip39.gui= GUI.
10641064

10651065
** The =slip39= Module
10661066

@@ -1078,14 +1078,14 @@ by entering the mnemonics right on the device.
10781078
: $ python3 -m pip install slip39[gui]
10791079

10801080
Then, there are several ways to run the GUI:
1081-
: $ python3 -m slip39.App # Execute the python slip39.App module main method
1082-
: $ slip39-App # Run the script provided by the slip39 module
1081+
: $ python3 -m slip39.gui # Execute the python slip39.gui module main method
1082+
: $ slip39-gui # Run the main function provided by the slip39.gui module
10831083

1084-
*** The MacOS =SLIP39.app= GUI
1084+
*** The macOS =SLIP39.app= GUI
10851085

1086-
You can build the native MacOS =SLIP39.app=.
1086+
You can build the native macOS =SLIP39.app= App.
10871087

1088-
This requires the official python.org/downloads installer; the homebrew [email protected] will not
1088+
This requires the official [[https://python.org/downloads][python.org/downloads]] installer; the homebrew [email protected] will not
10891089
work for building the native app using either =PyInstaller=. (The =py2app= approach doesn't work
10901090
in either version of Python).
10911091

README.pdf

107 Bytes
Binary file not shown.

README.txt

Lines changed: 119 additions & 116 deletions
Large diffs are not rendered by default.

SLIP39.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@
22

33
import sys
44

5-
from slip39.App.main import main
5+
from slip39.gui.main import main
66

77
sys.exit( main() )

macOS.org

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
#+title: SLIP39 macOS App
2+
#+date: 2022-02-02 22:22:00
3+
#+draft: false
4+
#+EXPORT_FILE_NAME: macOS.pdf
5+
#+STARTUP: org-startup-with-inline-images inlineimages
6+
#+STARTUP: org-latex-tables-centered nil
7+
#+OPTIONS: ^:nil # Disable sub/superscripting with bare _; _{...} still works
8+
#+OPTIONS: toc:nil
9+
10+
#+BEGIN_SRC emacs-lisp :noweb no-export :exports results
11+
;; Tables not centered
12+
(
13+
setq org-latex-tables-centered nil
14+
org-src-preserve-indentation t
15+
org-edit-src-content-indentation 0
16+
)
17+
nil
18+
#+END_SRC
19+
20+
#+RESULTS:
21+
22+
#+BEGIN_ABSTRACT
23+
Creating Ethereum, Bitcoin and other accounts is complex and fraught with potential for loss of funds.
24+
25+
All Crypto wallets start with a "Seed": a large, random number that is used to generate all of the
26+
actual Bitcoin, Ethereum, etc. wallets.
27+
28+
The best practice for using these wallets is to load this "Seed" into a secure hardware device, like
29+
a Trezor hardware wallet.
30+
#+END_ABSTRACT
31+
#+TOC: headlines 2
32+
33+
* Security with Availability
34+
35+
For both BIP-39 and SLIP-39, a 128-bit random "seed" is the source of an unlimited sequence of
36+
Ethereum HD Wallet accounts. Anyone who can obtain this seed gains control of all Ethereum,
37+
Bitcoin (and other) accounts derived from it, so it must be securely stored.
38+
39+
Losing this seed means that all of the HD Wallet accounts are permanently lost. Therefore, it
40+
must be backed up reliably, and be readily accessible.
41+
42+
Therefore, we must:
43+
44+
- Ensure that nobody untrustworthy can recover the seed, but
45+
- Store the seed in many places with several (some perhaps untrustworthy) people.
46+
47+
How can we address these conflicting requirements?

macOS.pdf

81.1 KB
Binary file not shown.

macOS.txt

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
━━━━━━━━━━━━━━━━━━
2+
SLIP39 MACOS APP
3+
4+
Perry Kundert
5+
━━━━━━━━━━━━━━━━━━
6+
7+
8+
2022-02-02 22:22:00
9+
10+
11+
Creating Ethereum, Bitcoin and other accounts is complex and fraught
12+
with potential for loss of funds.
13+
14+
All Crypto wallets start with a "Seed": a large, random number that is
15+
used to generate all of the actual Bitcoin, Ethereum, etc. wallets.
16+
17+
The best practice for using these wallets is to load this "Seed" into a
18+
secure hardware device, like a Trezor hardware wallet.
19+
Table of Contents
20+
─────────────────
21+
22+
1. Security with Availability
23+
24+
25+
1 Security with Availability
26+
════════════════════════════
27+
28+
For both BIP-39 and SLIP-39, a 128-bit random "seed" is the source of
29+
an unlimited sequence of Ethereum HD Wallet accounts. Anyone who can
30+
obtain this seed gains control of all Ethereum, Bitcoin (and other)
31+
accounts derived from it, so it must be securely stored.
32+
33+
Losing this seed means that all of the HD Wallet accounts are
34+
permanently lost. Therefore, it must be backed up reliably, and be
35+
readily accessible.
36+
37+
Therefore, we must:
38+
39+
• Ensure that nobody untrustworthy can recover the seed, but
40+
• Store the seed in many places with several (some perhaps
41+
untrustworthy) people.
42+
43+
How can we address these conflicting requirements?

setup.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
'slip39 = slip39.main:main',
2020
'slip39-recovery = slip39.recovery.main:main',
2121
'slip39-generator = slip39.generator.main:main',
22-
'slip39-App = slip39.App.main:main',
22+
'slip39-gui = slip39.gui.main:main',
2323
]
2424

2525
entry_points = {
@@ -33,15 +33,15 @@
3333
for option in [
3434
'serial', # slip39[serial]: Support serial I/O of generated wallet data
3535
'json', # slip39[json]: Support output of encrypted Ethereum JSON wallets
36-
'gui', # slip39[gui]: Support PySimpleGUI/tkinter graphical UI App
36+
'gui', # slip39[gui]: Support PySimpleGUI/tkinter Graphical UI App
3737
]
3838
}
3939

4040
package_dir = {
4141
"slip39": "./slip39",
4242
"slip39.recovery": "./slip39/recovery",
4343
"slip39.generator": "./slip39/generator",
44-
"slip39.App": "./slip39/App",
44+
"slip39.gui": "./slip39/gui",
4545
}
4646

4747
long_description_content_type = 'text/markdown'
@@ -169,7 +169,8 @@
169169
"Bug Tracker": "https://github.com/pjkundert/python-slip39/issues",
170170
}
171171

172-
# For py2{app,exe} App Generation
172+
'''
173+
# For py2{app,exe} App Generation. TODO: Does not work; use PyInstaller instead
173174
mainscript = "SLIP39.py"
174175
175176
if sys.platform == 'darwin':
@@ -200,6 +201,7 @@
200201
# and install the main script as such
201202
scripts = [ mainscript ],
202203
)
204+
'''
203205

204206
setup(
205207
name = "slip39",
@@ -222,5 +224,5 @@
222224
url = "https://github.com/pjkundert/python-slip39",
223225
classifiers = classifiers,
224226
python_requires = ">=3.9",
225-
**extra_options
227+
#**extra_options
226228
)

0 commit comments

Comments
 (0)