/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: 2009-09-10 17:21:36 UTC
  • Revision ID: teddy@fukt.bsnet.se-20090910172136-plhvv6jjz8bjrhz4
* plugins.d/mandos-client.c (init_gnutls_session): Retry interrupted
                                                   GnuTLS functions.
  (main): Drop privileges early, and raise them only where needed and
          lower them whenever possible.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
-*- org -*-
2
2
 
3
 
* README file
4
 
 
5
 
* COPYING file
6
 
  [[file:/usr/share/common-licenses/GPL-3][GPLv3]]
7
 
 
8
 
* Mandos-client
9
 
** [#A] Man page: man8/mandos-client.8mandos
10
 
** [#B] Fix %d format strings to use [[https://secure.wikimedia.org/wikipedia/en/wiki/Inttypes.h][<inttypes.h>]]
11
 
** use strsep instead of strtok?
12
 
** use config file in addition to arguments
13
 
** pass things in environment, like device name, etc
14
 
 
15
 
* Password-request
16
 
** [#A] Man page: man8/password-request.8mandos
17
 
** [#B] Fix %d format strings to use [[https://secure.wikimedia.org/wikipedia/en/wiki/Inttypes.h][<inttypes.h>]]
18
 
** IPv4 support
19
 
** use strsep instead of strtok?
20
 
** Do not depend on GPG key rings on disk
21
 
   This would mean creating new GPG key rings with GPGME by importing
22
 
   the key files from scratch on every program start.
23
 
 
24
 
* Password-prompt
25
 
** [#A] Man page: man8/password-prompt.8mandos
26
 
** Use getpass(3)?
27
 
   Man page says "obsolete", but [[info:libc:getpass][GNU LibC Manual: Reading Passwords]]
28
 
   does not.  See also [[http://sources.redhat.com/ml/libc-alpha/2003-05/msg00251.html][Marcus Brinkmann: Re: getpass obsolete?]] and
29
 
   [[http://article.gmane.org/gmane.comp.lib.glibc.alpha/4906][Petter Reinholdtsen: Re: getpass obsolete?]], and especially also
30
 
   [[http://www.steve.org.uk/Reference/Unix/faq_4.html#SEC48][Unix Programming FAQ 3.1 How can I make my program not echo input?]]
31
 
 
32
 
* Server
33
 
** [#A] Command man page: man8/mandos.8
34
 
** [#A] Config file man page: man5/mandos.conf (mandos.conf)
35
 
** [#A] Config file man page: man5/mandos-clients.conf (clients.conf)
36
 
** [#A] /etc/init.d/mandos-server               :teddy:
37
 
** Log level
38
 
** /etc/mandos/clients.d/*.conf
 
3
* mandos-client
 
4
** TODO [#B] use scandir(3) instead of readdir(3)
 
5
** TODO [#B] Prefix all debug output with argv[0]
 
6
** TODO [#B] Retry a server which has a non-definite reply:
 
7
*** A closed connection during the TLS handshake
 
8
*** A TCP timeout
 
9
** TODO [#B] Use capabilities instead of seteuid().
 
10
 
 
11
* splashy
 
12
** TODO [#A] Re-raise signal received when exiting due to handled signal  :test:
 
13
** TODO [#B] use scandir(3) instead of readdir(3)
 
14
** TODO [#B] Prefix all debug output with "Mandos plugin " + argv[0]
 
15
 
 
16
* usplash
 
17
** TODO [#A] Re-raise signal received when exiting due to handled signal.
 
18
** TODO [#B] use scandir(3) instead of readdir(3)
 
19
** TODO [#B] Prefix all debug output with "Mandos plugin " + argv[0]
 
20
 
 
21
* askpass-fifo
 
22
** TODO [#B] Prefix all debug output with "Mandos plugin " + argv[0]
 
23
** TODO [#B] Drop privileges after opening FIFO.
 
24
 
 
25
* password-prompt
 
26
** TODO [#B] Prefix all debug output with "Mandos plugin " + argv[0]
 
27
 
 
28
* plugin-runner
 
29
** TODO [#B] use scandir(3) instead of readdir(3)
 
30
** TODO [#C] use same file name rules as run-parts(8)
 
31
 
 
32
* mandos (server)
 
33
** TODO [#B] Log level                          :BUGS:
 
34
** TODO /etc/mandos/clients.d/*.conf
39
35
   Watch this directory and add/remove/update clients?
40
 
** config for TXT record
41
 
** Run-time communication with server
 
36
** TODO config for TXT record
 
37
** TODO [#B] Run-time communication with server :BUGS:
42
38
   Probably using D-Bus
43
 
   See also [[*Mandos-tools]]
44
 
** Implement --foreground
45
 
   [[info:standards:Option%20Table][Table of Long Options]]
46
 
** Implement --socket
47
 
   [[info:standards:Option%20Table][Table of Long Options]]
48
 
 
49
 
* Mandos-tools/utilities
50
 
  All of this probably using D-Bus
51
 
** List clients
52
 
** Disable client
53
 
** Enable client
54
 
 
55
 
* Installer
56
 
** [#A] Change initrd.img file to not be publically readable
57
 
** [#A] Create /etc/initramfs-tools/hooks/mandos
58
 
   [[file:/usr/share/doc/initramfs-tools/examples/example_hook][Example initramfs-tools hook script]]
59
 
** [#A] Create GPG key ring files in initrd
60
 
** [#A] Create mandos user and group for server
61
 
** [#A] Create /var/run/mandos directory with perm and ownership
62
 
 
63
 
* [[http://en.tldp.org/HOWTO/Software-Release-Practice-HOWTO/][Software Release Practice HOWTO]]
 
39
*** Client class
 
40
*** Main server
 
41
    + SetLogLevel
 
42
      syslogger.setLevel(logging.WARNING)
 
43
    + [[http://log.ometer.com/2007-05.html][Best D-Bus practices]]
 
44
** TODO Implement --foreground                  :BUGS:
 
45
   [[info:standards:Option%20Table][Table of Long Options]]
 
46
** TODO Implement --socket
 
47
   [[info:standards:Option%20Table][Table of Long Options]]
 
48
** TODO Date+time on console log messages       :BUGS:
 
49
   Is this the default?
 
50
** TODO Split IPv6_TCPServer into a generic and Mandos-specific class
 
51
** TODO move handle_ipc out of IPv6_TCPServer
 
52
** TODO DBusServiceObjectUsingSuper
 
53
** Global enable/disable flag
 
54
** By-client countdown on secrets given
 
55
** Fix problem with fsck taking a really long time
 
56
   Whenever a client successfully gets a secret it could get a
 
57
   one-time timeout boost to allow for an fsck-incurred delay
 
58
 
 
59
* mandos.xml
 
60
** [[file:mandos.xml::XXX][Document D-Bus interface]]
 
61
 
 
62
* Provide and install /etc/dbus-1/system.d/mandos.conf
 
63
 
 
64
* mandos-ctl
 
65
*** Handle "no D-Bus server" and/or "no Mandos server found" better
 
66
*** [#B] --dump option
 
67
 
 
68
* mandos-name
 
69
** D-Bus mail loop w/ signal receiver
 
70
** Urwid/Newt client data displayer
 
71
*** Urwid scaffolding
 
72
*** Client Widgets
 
73
*** Properties popup
 
74
 
 
75
* mandos-keygen
 
76
** TODO Loop until passwords match when run interactively
 
77
** TODO "--secfile" option
 
78
   Using the "secfile" option instead of "secret"
 
79
** TODO [#B] "--test" option
 
80
   For testing decryption before rebooting.
 
81
 
 
82
* Package
 
83
** /usr/share/initramfs-tools/hooks/mandos
 
84
*** TODO [#C] use same file name rules as run-parts(8)
 
85
*** TODO [#C] Do not install in initrd.img if configured not to.
 
86
    Use "/etc/initramfs-tools/hooksconf.d/mandos"?
 
87
** TODO [#C] /etc/bash_completion.d/mandos
 
88
   From XML sources directly?
64
89
 
65
90
 
66
91
#+STARTUP: showall