3
* [[http://www.undeadly.org/cgi?action=article&sid=20110530221728][OpenBSD]]
6
** Use org.freedesktop.DBus.Method.NoReply annotation on async methods.
7
** Emit [[http://dbus.freedesktop.org/doc/dbus-specification.html#standard-interfaces-properties][org.freedesktop.DBus.Properties.PropertiesChanged]] signal
8
Deprecate se.recompile.Mandos.Client.PropertyChanged - annotate!
9
Can use "invalidates" annotation to also emit on changed secret.
10
** Support [[http://dbus.freedesktop.org/doc/dbus-specification.html#standard-interfaces-objectmanager][org.freedesktop.DBus.ObjectManager]] interface on server object
11
Deprecate methods GetAllClients(), GetAllClientsWithProperties()
12
and signals ClientAdded and ClientRemoved.
17
** TODO [#A] Wireless network hook
18
** TODO [#B] Use capabilities instead of seteuid().
19
** TODO [#B] Use struct sockaddr_storage instead of a union
20
** TODO [#B] Use getaddrinfo(hints=AI_NUMERICHOST) instead of inet_pton()
21
** TODO [#B] Use getnameinfo(serv=NULL, NI_NUMERICHOST) instead of inet_ntop()
22
** TODO [#B] Prefer /run/tmp over /tmp, if it exists
25
** TODO [#B] use scandir(3) instead of readdir(3)
27
* usplash (Deprecated)
28
** TODO [#A] Make it work again
29
** TODO [#B] use scandir(3) instead of readdir(3)
30
** TODO Use [[info:libc:Argz%20Functions][argz_extract]]
33
** TODO [#B] Drop privileges after opening FIFO.
36
** TODO [#B] lock stdin (with flock()?)
6
** [#B] Temporarily lower kernel log level
7
for less printouts during sucessfull boot.
9
** use strsep instead of strtok?
10
** Do not depend on GnuPG key rings on disk
11
This would mean creating new GnuPG key rings with GPGME by
12
importing the key files from scratch on every program start.
13
** Keydir move: /etc/mandos -> /etc/keys/mandos
14
Must create in preinst if not pre-depending on cryptsetup
43
** TODO handle printing for errors for plugins
44
*** Hook up stderr of plugins, buffer them, and prepend mandos pluig [plugin name]
45
** TODO [#B] use scandir(3) instead of readdir(3)
46
** TODO [#C] use same file name rules as run-parts(8)
47
** kernel command line option for debug info
48
** TODO [#B] Use openat()
19
** [#A] /etc/init.d/mandos-server :teddy:
20
** [#B] Log level :bugs:
21
** /etc/mandos/clients.d/*.conf
22
Watch this directory and add/remove/update clients?
23
** config for TXT record
24
** [#B] Run-time communication with server :bugs:
26
See also [[*Mandos-tools]]
27
** Implement --foreground :bugs:
28
[[info:standards:Option%20Table][Table of Long Options]]
30
[[info:standards:Option%20Table][Table of Long Options]]
31
** Date+time on console log messages :bugs:
33
** delete hook when clients fall out by timeout
35
* Mandos-tools/utilities
36
All of this probably using D-Bus
43
** Use xinclude for common sections
49
*** Update initrd.img after installation
50
This seems to use some kind of "trigger" system
51
[[file:/usr/share/doc/dpkg/triggers.txt.gz]]
52
dpkg-trigger(1), deb-triggers(5)
54
**** "--passfile" option
55
Using the "secfile" option instead of "secret"
56
**** [#A] "--test" option
57
For testing decryption before rebooting.
59
*** [#A] Create mandos user and group for server
60
*** [#A] Create /var/run/mandos directory with perm and ownership
61
*** [#A] install rc.d script and do update-rc.d
62
between config files and man pages
51
** TODO Document why we ignore sigint
52
** TODO [#B] Log level :BUGS:
53
*** TODO /etc/mandos/clients.d/*.conf
54
Watch this directory and add/remove/update clients?
55
** TODO [#C] config for TXT record
56
** TODO Log level dbus option
57
SetLogLevel D-Bus call
58
** TODO Implement --foreground :BUGS:
59
[[info:standards:Option%20Table][Table of Long Options]]
60
** TODO Implement --socket
61
[[info:standards:Option%20Table][Table of Long Options]]
62
** TODO [#C] DBusServiceObjectUsingSuper
63
** TODO [#B] Global enable/disable flag
64
** TODO [#B] By-client countdown on number of secrets given
65
** TODO [#B] Support RFC 3339 time duration syntax
67
*** NeedsPassword(50) - Timeout, default disapprove
68
+ SetPass(u"gazonk", True) -> Approval, persistent
69
+ Approve(False) -> Close client connection immediately
70
** TODO [#C] python-parsedatetime
71
** TODO [#C] systemd/launchd
72
http://0pointer.de/blog/projects/systemd.html
73
http://wiki.debian.org/systemd
74
** TODO Separate logging logic to own object
75
** TODO [#A] Limit approval_delay to max gnutls/tls timeout value
76
** TODO [#B] break the wait on approval_delay if connection dies
77
** TODO Generate Client.runtime_expansions from client options + extra
78
** TODO Allow %%(checker)s as a runtime expansion
79
** TODO Use python-tlslite?
80
** TODO D-Bus AddClient() method on server object
83
** Add mandos contact info in manual pages
86
*** Handle "no D-Bus server" and/or "no Mandos server found" better
87
*** [#B] --dump option
88
** TODO Support RFC 3339 time duration syntax
90
* TODO mandos-dispatch
91
Listens for specified D-Bus signals and spawns shell commands with
95
** TODO help should be toggleable
96
** Urwid client data displayer
97
Better view of client data in the listing
99
** Print a nice "We are sorry" message, save stack trace to log.
100
** Show timeout countdown for approval
103
** TODO "--secfile" option
104
Using the "secfile" option instead of "secret"
105
** TODO [#B] "--test" option
106
For testing decryption before rebooting.
109
** TODO [#C] Implement DEB_BUILD_OPTIONS
110
http://www.debian.org/doc/debian-policy/ch-source.html#s-debianrules-options
66
113
** /usr/share/initramfs-tools/hooks/mandos
67
*** Do not install in initrd.img if configured not to.
68
Use "/etc/initramfs-tools/conf.d/mandos"? Definitely a debconf
70
** /etc/bash_completion.d/mandos
114
*** TODO [#C] use same file name rules as run-parts(8)
115
*** TODO [#C] Do not install in initrd.img if configured not to.
116
Use "/etc/initramfs-tools/hooksconf.d/mandos"?
117
** TODO [#C] /etc/bash_completion.d/mandos
71
118
From XML sources directly?
81
* Announce project on news
82
[[news:comp.os.linux.announce]]
121
** TODO Locate which package moves the other bin/sh when busybox is deactivated
122
** TODO contact owner of package, and ask them to have that shell static in position regardless of busybox
85
125
#+STARTUP: showall