1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
|
03:07 < nickm> ok. tomorrow morning I try to get messaging sorted, and try to
write up a registry-based exe version checker.
- Download improvements.
- Back off on download failure.
- Handle full stalled file in download.
- Use if-modified-since on timestamp
- Write client-side code
. Decide early if a python implementation will do for v1.
o Adjust httplib, urllib2 to use socks4a.
o Check SOCKS package for suitability as basis for socks4a support?
- Look into best packageing practices
. Write code to run, telling another process about status,
eventually coming up with a list of packages to install or an
"A-OK" signal.
D GUI
o DL-via-Tor
o Install-when-done
o Verbose output
- quiet output.
X Rendezvous-back with Tor when done.
- Better configurability: let users override mirrors, keys, etc.
- Backend for "A bunch of files you can unzip someplace."
- OSX backend (hard).
- Proper exponential back-off on download backend.
- Wrapping
- More unit tests
. Documentation
- More comments, more tests
o Document EXE and RPM formats in HOWTO.
. full pydoc
- revise spec
- Testing
- Much bigger unit tests.
- Bugs Roger keeps noticing
- you can add the same role to a key twice.
- wishlist item: thandy-pk dumpkey-all
- Confusing tracebacks that could use a check and error message:
If you type the wrong password,
Traceback (most recent call last):
File "/home/thandy/updater-live/lib/python2.4/site-packages/thandy/SignerCLI.p
y", line 313, in ?
main()
File "/home/thandy/updater-live/lib/python2.4/site-packages/thandy/SignerCLI.p
y", line 308, in main
globals()[cmd](args)
File "/home/thandy/updater-live/lib/python2.4/site-packages/thandy/SignerCLI.p
y", line 202, in keygen
k.load()
File "/home/thandy/updater-live//lib/python2.4/site-packages/thandy/keys.py",
line 385, in load
contents = decryptSecret(contents, password)
File "/home/thandy/updater-live//lib/python2.4/site-packages/thandy/keys.py",
line 343, in decryptSecret
raise thandy.BadPassword()
thandy.BadPassword
when your ~/.thandy/timestamp_key didn't get the secret key dumped too,
thandy@moria:~$ thandy-server timestamp
Traceback (most recent call last):
File "/home/thandy/updater-live/lib/python2.4/site-packages/thandy/ServerCLI.p
y", line 191, in ?
main()
File "/home/thandy/updater-live/lib/python2.4/site-packages/thandy/ServerCLI.p
y", line 186, in main
globals()[cmd](args)
File "/home/thandy/updater-live/lib/python2.4/site-packages/thandy/ServerCLI.p
y", line 166, in timestamp
keylist = thandy.formats.makeKeylistObj(ts_keyfile, True)
File "/home/thandy/updater-live//lib/python2.4/site-packages/thandy/formats.py
", line 752, in makeKeylistObj
klist.append({'key': k.format(private=includePrivate), 'roles' : k.getRoles(
) })
File "/home/thandy/updater-live//lib/python2.4/site-packages/thandy/keys.py",
line 189, in format
result['d'] = intToBase64(self.key.d)
File "/usr/lib/python2.4/site-packages/Crypto/PublicKey/RSA.py", line 154, in
__getattr__
return getattr(self.key, attr)
AttributeError: rsaKey instance has no attribute 'd'
|