/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

  • Committer: Teddy Hogeborn
  • Date: 2019-07-29 16:35:53 UTC
  • Revision ID: teddy@recompile.se-20190729163553-1i442i2cbx64c537
Make tests and man page examples match

Make the tests test_manual_page_example[1-5] match exactly what is
written in the manual page, and add comments to manual page as
reminders to keep tests and manual page examples in sync.

* mandos-ctl (Test_commands_from_options.test_manual_page_example_1):
  Remove "--verbose" option, since the manual does not have it as the
  first example, and change assertion to match.
* mandos-ctl.xml (EXAMPLE): Add comments to all examples documenting
  which test function they correspond to.  Also remove unnecessary
  quotes from option arguments in fourth example, and clarify language
  slightly in fifth example.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
-*- org -*-
2
2
 
3
 
* DONE plugin-runner
 
3
* Testing
 
4
** python-nemu
 
5
 
 
6
* mandos-applet
4
7
 
5
8
* mandos-client
6
 
** TODO [#B] Temporarily lower kernel log level
7
 
   for less printouts during sucessfull boot.
8
 
** TODO IPv4 support
9
 
** TODO use strsep instead of strtok?
10
 
 
11
 
* DONE password-prompt
 
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
12
47
 
13
48
* mandos (server)
14
 
** TODO [#B] Log level                          :bugs:
15
 
** TODO /etc/mandos/clients.d/*.conf
16
 
   Watch this directory and add/remove/update clients?
17
 
** TODO config for TXT record
18
 
** TODO [#B] Run-time communication with server :bugs:
19
 
   Probably using D-Bus
20
 
   See also [[*Mandos-tools]]
21
 
** TODO Implement --foreground                  :bugs:
22
 
   [[info:standards:Option%20Table][Table of Long Options]]
23
 
** TODO Implement --socket
24
 
   [[info:standards:Option%20Table][Table of Long Options]]
25
 
** TODO Date+time on console log messages       :bugs:
26
 
   Is this the default?
27
 
** TODO delete hook when clients fall out by timeout
28
 
 
29
 
* Mandos-tools/utilities
30
 
  All of this probably using D-Bus
31
 
** TODO List clients
32
 
** TODO Disable client
33
 
** TODO Enable client
34
 
** TODO Reset timer
35
 
 
36
 
* Man pages
37
 
** TODO Use xinclude for all common sections
38
 
   Like authors, etc.
39
 
 
40
 
 
41
 
* Installer
42
 
** Client-side
43
 
*** TODO Update initrd.img after installation
44
 
    This seems to use some kind of "trigger" system
45
 
    [[file:/usr/share/doc/dpkg/triggers.txt.gz]]
46
 
    dpkg-trigger(1), deb-triggers(5)
47
 
*** mandos-keygen
48
 
**** TODO [#A] Ask for password twice for confirmation
49
 
**** TODO "--passfile" option
50
 
     Using the "secfile" option instead of "secret"
51
 
**** TODO [#A] "--test" option
52
 
     For testing decryption before rebooting.
53
 
** Server-side
54
 
*** TODO [#A] Create mandos user and group for server
55
 
 
56
 
 
57
 
* [#A] Package
 
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
** TODO Remove old string_to_delta format                                 :2:
 
90
 
 
91
* TODO mandos-dispatch
 
92
  Listens for specified D-Bus signals and spawns shell commands with
 
93
  arguments.
 
94
 
 
95
* mandos-monitor
 
96
** TODO --servicename                                                  :BUGS:
 
97
** TODO help should be toggleable
 
98
** Urwid client data displayer
 
99
   Better view of client data in the listing
 
100
*** Properties popup
 
101
** Print a nice "We are sorry" message, save stack trace to log.
 
102
 
 
103
* mandos-keygen
 
104
** TODO "--secfile" option
 
105
   Using the "secfile" option instead of "secret"
 
106
** TODO [#B] "--test" option
 
107
   For testing decryption before rebooting.
 
108
 
 
109
* Package
58
110
** /usr/share/initramfs-tools/hooks/mandos
59
 
*** TODO Do not install in initrd.img if configured not to.
60
 
    Use "/etc/initramfs-tools/conf.d/mandos"?  Definitely a debconf
61
 
    question.
62
 
** TODO /etc/bash_completion.d/mandos
 
111
*** TODO [#C] use same file name rules as run-parts(8)
 
112
*** TODO [#C] Do not install in initrd.img if configured not to.
 
113
    Use "/etc/initramfs-tools/hooksconf.d/mandos"?
 
114
** TODO [#C] $(pkg-config --variable=completionsdir bash-completion)
63
115
   From XML sources directly?
64
 
** TODO unperish
65
 
** DONE bzr-builddeb
66
 
 
67
 
* TODO Web site
68
 
** DONE http://www.fukt.bsnet.se/mandos
69
 
   Redirects to the wiki page
70
 
** TODO http://wiki.fukt.bsnet.se/wiki/Mandos
71
 
 
72
 
* Mailing list
73
 
** DONE mandos-dev
74
 
*** TODO http://gmane.org/subscribe.php
75
 
 
76
 
* TODO Announce project on Usenet
77
 
  [[news:comp.os.linux.announce]]
 
116
 
 
117
* Side Stuff
 
118
** TODO Locate which package moves the other bin/sh when busybox is deactivated
 
119
** TODO contact owner of package, and ask them to have that shell static in position regardless of busybox
 
120
 
 
121
* [[http://www.undeadly.org/cgi?action=article&sid=20110530221728][OpenBSD]]
78
122
 
79
123
 
80
124
#+STARTUP: showall