/mandos/trunk

To get this branch, use:
bzr branch http://bzr.recompile.se/loggerhead/mandos/trunk

« back to all changes in this revision

Viewing changes to TODO

merge

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
-*- org -*-
2
2
 
3
 
* Testing
4
 
** python-nemu
5
 
 
6
 
* mandos-applet
7
 
 
8
 
* mandos-client
9
 
** TODO A --server option which only adds to the server list.
10
 
   (Unlike --connect, which implicitly disables zeroconf.)
11
 
** TODO [#B] Use capabilities instead of seteuid().
12
 
   https://forums.grsecurity.net/viewtopic.php?f=7&t=2522
13
 
** TODO [#B] Use getaddrinfo(hints=AI_NUMERICHOST) instead of inet_pton()
14
 
** TODO [#C] Make start_mandos_communication() take "struct server".
15
 
** TODO [#C] --interfaces=regex,eth*,noregex (bridge-utils-interfaces(5))
16
 
** TODO [#A] Detect partial writes to stdout and exit with EX_TEMPFAIL
17
 
** TODO [#B] Use reallocarray() with GNU LibC 2.29 or later.
18
 
 
19
 
* splashy
20
 
** TODO [#B] use scandir(3) instead of readdir(3)
21
 
** TODO [#A] Detect partial writes to stdout and exit with EX_TEMPFAIL
22
 
 
23
 
* usplash (Deprecated)
24
 
** TODO [#B] Make it work again
25
 
** TODO [#B] use scandir(3) instead of readdir(3)
26
 
** TODO [#A] Detect partial writes to stdout and exit with EX_TEMPFAIL
27
 
 
28
 
* askpass-fifo
29
 
** TODO [#A] Detect partial writes to stdout and exit with EX_TEMPFAIL
30
 
 
31
 
* password-prompt
32
 
** TODO [#B] lock stdin (with flock()?)
33
 
** TODO [#A] Detect partial writes to stdout and exit with EX_TEMPFAIL
34
 
 
35
 
* plymouth
36
 
** TODO [#A] Detect partial writes to stdout and exit with EX_TEMPFAIL
37
 
** TODO [#B] Use reallocarray() with GNU LibC 2.29 or later.
38
 
 
39
 
* TODO [#B] passdev
40
 
 
41
 
* plugin-runner
42
 
** TODO handle printing for errors for plugins
43
 
*** Hook up stderr of plugins, buffer them, and prepend "Mandos Plugin [plugin name]"
44
 
** TODO [#C] use same file name rules as run-parts(8)
45
 
** kernel command line option for debug info
46
 
** TODO [#A] Restart plugins which exit with EX_TEMPFAIL
47
 
 
48
 
* mandos (server)
49
 
** TODO [#B] --notify-command
50
 
   This would allow the mandos.service to use
51
 
   --notify-command="systemd-notify --pid --ready"
52
 
** TODO [#B] python-systemd
53
 
*** import systemd.daemon; systemd.daemon.notify()
54
 
** TODO [#B] Log level                                                    :BUGS:
55
 
*** TODO /etc/mandos/clients.d/*.conf
56
 
    Watch this directory and add/remove/update clients?
57
 
** TODO [#C] config for TXT record
58
 
** TODO Log level dbus option
59
 
   SetLogLevel D-Bus call
60
 
** TODO [#C] DBusServiceObjectUsingSuper
61
 
** TODO [#B] Global enable/disable flag
62
 
** TODO [#B] By-client countdown on number of secrets given
63
 
** D-Bus Client method NeedsPassword(50) - Timeout, default disapprove
64
 
    + SetPass(u"gazonk", True) -> Approval, persistent
65
 
    + Approve(False) -> Close client connection immediately
66
 
** TODO [#C] python-parsedatetime
67
 
** TODO Separate logging logic to own object
68
 
** TODO [#B] Limit approval_delay to max gnutls/tls timeout value
69
 
** TODO [#B] break the wait on approval_delay if connection dies
70
 
** TODO Generate Client.runtime_expansions from client options + extra
71
 
** TODO Allow %%(checker)s as a runtime expansion
72
 
** TODO D-Bus AddClient() method on server object
73
 
** TODO Use org.freedesktop.DBus.Method.NoReply annotation on async methods. :2:
74
 
** TODO Save state periodically to recover better from hard shutdowns
75
 
** TODO CheckerCompleted method, deprecate CheckedOK
76
 
** TODO Secret Service API?
77
 
   https://standards.freedesktop.org/secret-service/
78
 
** TODO Remove D-Bus interfaces with old domain name                      :2:
79
 
** TODO Remove old string_to_delta format                                 :2:
80
 
** TODO http://0pointer.de/blog/projects/stateless.html
81
 
*** File in /usr/lib/sysusers.d to create user+group "_mandos"
82
 
** TODO Error handling on error parsing config files
83
 
** TODO init.d script error handling
84
 
** TODO D-Bus server properties; address, port, interface, etc.           :2:
85
 
** Python 3                                                               :2:
86
 
*** TODO [#C] In Python 3.3, use shlex.quote() instead of re.escape()
87
 
 
88
 
* mandos-ctl
89
 
*** Handle "no D-Bus server" and/or "no Mandos server found" better
90
 
** TODO Remove old string_to_delta format                                 :2:
91
 
 
92
 
* TODO mandos-dispatch
93
 
  Listens for specified D-Bus signals and spawns shell commands with
94
 
  arguments.
95
 
 
96
 
* mandos-monitor
97
 
** TODO --servicename                                                  :BUGS:
98
 
** TODO help should be toggleable
99
 
** Urwid client data displayer
100
 
   Better view of client data in the listing
101
 
*** Properties popup
102
 
** Print a nice "We are sorry" message, save stack trace to log.
103
 
 
104
 
* mandos-keygen
105
 
** TODO "--secfile" option
106
 
   Using the "secfile" option instead of "secret"
107
 
** TODO [#B] "--test" option
108
 
   For testing decryption before rebooting.
109
 
 
110
 
* Package
111
 
** /usr/share/initramfs-tools/hooks/mandos
112
 
*** TODO [#C] use same file name rules as run-parts(8)
113
 
*** TODO [#C] Do not install in initrd.img if configured not to.
114
 
    Use "/etc/initramfs-tools/hooksconf.d/mandos"?
115
 
** TODO [#C] $(pkg-config --variable=completionsdir bash-completion)
116
 
   From XML sources directly?
117
 
 
118
 
* Side Stuff
119
 
** TODO Locate which package moves the other bin/sh when busybox is deactivated
120
 
** TODO contact owner of package, and ask them to have that shell static in position regardless of busybox
121
 
 
122
 
* [[http://www.undeadly.org/cgi?action=article&sid=20110530221728][OpenBSD]]
 
3
* README file
 
4
 
 
5
* Mandos client
 
6
** [#A] Man page
 
7
** [#A] check exit codes of all system calls
 
8
** [#B] header files/symbols tally
 
9
** IPv4 support
 
10
** use strsep instead of strtok?
 
11
** Do not depend on GPG key rings on disk
 
12
   This would mean creating new GPG key rings with GPGME by importing
 
13
   the key files from scratch every time we start the program.
 
14
 
 
15
* Passprompt
 
16
** [#A] Man page
 
17
 
 
18
* Pluginbasedclient
 
19
** [#A] Man page
 
20
** [#A] check exit codes of all system calls
 
21
** [#B] header files/symbols tally
 
22
** use strsep instead of strtok?
 
23
** use config file in addition to arguments
 
24
** pass things in environment, like device name, etc
 
25
 
 
26
* Server
 
27
** [#A] Man page
 
28
** [#A] write PID file
 
29
** [#A] /etc/init.d/mandos-server
 
30
** Better comments in config files
 
31
** Log level
 
32
** /etc/mandos/clients.d/*.conf
 
33
   Watch this directory and add/remove/update clients?
 
34
** config for TXT record
 
35
** Run-time communication with server
 
36
   probably using D-Bus
 
37
 
 
38
* Mandos-tools/utilities
 
39
  All of this probably using D-Bus
 
40
** List clients
 
41
** Enable client
 
42
** Disable client
 
43
 
 
44
* Installer
 
45
** Change initrd.img file to not be publically readable
 
46
** Create GPG key ring files in initrd
123
47
 
124
48
 
125
49
#+STARTUP: showall