/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: 2008-11-09 06:40:29 UTC
  • mto: (24.1.113 mandos)
  • mto: This revision was merged to the branch mainline in revision 238.
  • Revision ID: teddy@fukt.bsnet.se-20081109064029-df71jpoce308cq3v
First steps of a D-Bus interface to the server.

* mandos: Also import "dbus.service".
  (Client): Inherit from "dbus.service.Object", which is a new-style
            class, so inheriting from "object" is no longer necessary.
  (Client.interface): New temporary variable which only exists during
                     class definition.

  (Client.getName, Client.getFingerprint): New D-Bus getter methods.
  (Client.setSecret): New D-Bus setter method.
  (Client._set_timeout): Emit D-Bus signal "TimeoutChanged".
  (Client.getTimeout): New D-Bus getter method.
  (Client.TimeoutChanged): New D-Bus signal.
  (Client._set_interval): Emit D-Bus signal "IntervalChanged".
  (Client.getInterval): New D-Bus getter method.
  (Client.intervalChanged): New D-Bus signal.
  (Client.__init__): Also call "dbus.service.Object.__init__".
  (Client.started): New boolean attribute.
  (Client.start, Client.stop): Update "self.started", and emit D-Bus
                               signal "StateChanged".
  (Client.StateChanged): New D-Bus signal.
  (Client.stop): Use "self.started" instead of misusing "self.secret".
                 Also simplify code by using "getattr" instead of
                 "hasattr".
  (Client.checker_callback): Emit D-Bus signal "CheckerCompleted".
  (Client.CheckerCompleted): New D-Bus signal.
  (Client.bumpTimeout): D-Bus method name for "bump_timeout".
  (Client.start_checker): Emit D-Bus signal "CheckerStarted".
  (Client.CheckerStarted): New D-Bus signal.
  (Client.checkerIsRunning): New D-Bus method.
  (Client.StopChecker): D-Bus method name for "stop_checker".
  (Client.still_valid): First check "self.started".
  (Client.stillValid): D-Bus method name for "still_valid".

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
-*- org -*-
2
2
 
3
 
* [#A] README file
4
 
 
5
 
* [#A] 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
 
** start_mandos_communication: loop around gnutls_handshake
19
 
   [[info:gnutls.info.gz:Core%20functions][gnutls_handshake]]
20
 
** IPv4 support
21
 
** use strsep instead of strtok?
22
 
** Do not depend on GPG key rings on disk
23
 
   This would mean creating new GPG key rings with GPGME by importing
24
 
   the key files from scratch on every program start.
25
 
 
26
 
* Password-prompt
27
 
** [#A] Man page: man8/password-prompt.8mandos
28
 
** Use getpass(3)?
29
 
   Man page says "obsolete", but [[info:libc:getpass][GNU LibC Manual: Reading Passwords]]
30
 
   does not.  See also [[http://sources.redhat.com/ml/libc-alpha/2003-05/msg00251.html][Marcus Brinkmann: Re: getpass obsolete?]] and
31
 
   [[http://article.gmane.org/gmane.comp.lib.glibc.alpha/4906][Petter Reinholdtsen: Re: getpass obsolete?]], and especially also
32
 
   [[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?]]
33
 
 
34
 
* Server
35
 
** [#A] Command man page: man8/mandos.8
36
 
** [#A] Config file man page: man5/mandos.conf (mandos.conf)
37
 
** [#A] Config file man page: man5/mandos-clients.conf (clients.conf)
38
 
** [#A] /etc/init.d/mandos-server               :teddy:
39
 
** Log level
40
 
** /etc/mandos/clients.d/*.conf
 
3
* mandos-client
 
4
** TODO [#B] Temporarily lower kernel log level
 
5
   for less printouts during sucessfull boot.
 
6
   klogctl(6, NULL, 0); klogctl(7, NULL, 0);
 
7
** TODO [#C] IPv4 support
 
8
 
 
9
* mandos (server)
 
10
** TODO [#B] Log level                          :bugs:
 
11
** TODO /etc/mandos/clients.d/*.conf
41
12
   Watch this directory and add/remove/update clients?
42
 
** config for TXT record
43
 
** Run-time communication with server
 
13
** TODO config for TXT record
 
14
** TODO [#B] Run-time communication with server :bugs:
44
15
   Probably using D-Bus
45
16
   See also [[*Mandos-tools]]
46
 
** Implement --foreground
47
 
   [[info:standards:Option%20Table][Table of Long Options]]
48
 
** Implement --socket
49
 
   [[info:standards:Option%20Table][Table of Long Options]]
 
17
*** Client class
 
18
    + getHostname
 
19
    + getChecker
 
20
    + setChecker
 
21
*** Main server
 
22
    + Clients
 
23
      out_signature="ao"
 
24
      Does this have to be "getClients" so as not to collide with the
 
25
      interface name?
 
26
    + setLogLevel
 
27
      syslogger.setLevel(logging.WARNING)
 
28
    + quit
 
29
** TODO Implement --foreground                  :bugs:
 
30
   [[info:standards:Option%20Table][Table of Long Options]]
 
31
** TODO Implement --socket
 
32
   [[info:standards:Option%20Table][Table of Long Options]]
 
33
** TODO Date+time on console log messages       :bugs:
 
34
   Is this the default?
 
35
** TODO delete hook when clients fall out by timeout
50
36
 
51
37
* Mandos-tools/utilities
52
38
  All of this probably using D-Bus
53
 
** List clients
54
 
** Disable client
55
 
** Enable client
56
 
 
57
 
* Installer
58
 
** [#A] Change initrd.img file to not be publically readable
59
 
   /etc/initramfs-tools/conf.d/mandos
60
 
   UMASK=027
61
 
** [#A] Create /etc/initramfs-tools/hooks/mandos
62
 
   [[file:/usr/share/doc/initramfs-tools/examples/example_hook][Example initramfs-tools hook script]]
63
 
** [#A] Create GPG key ring files in initrd
64
 
** [#A] Create mandos user and group for server
65
 
** [#A] Create /var/run/mandos directory with perm and ownership
66
 
 
67
 
* INSTALL file
68
 
 
69
 
* Website
70
 
 
71
 
* Mailing list
72
 
 
73
 
* Announce project on news
74
 
  news:comp.os.linux.announce
 
39
** TODO List clients
 
40
** TODO Disable client
 
41
** TODO Enable client
 
42
** TODO Reset timer
 
43
 
 
44
* mandos-keygen
 
45
** TODO "--secfile" option
 
46
   Using the "secfile" option instead of "secret"
 
47
** TODO [#B] "--test" option
 
48
   For testing decryption before rebooting.
 
49
 
 
50
* [#A] Package
 
51
** /usr/share/initramfs-tools/hooks/mandos
 
52
*** TODO Do not install in initrd.img if configured not to.
 
53
    Use "/etc/initramfs-tools/conf.d/mandos"?  Definitely a debconf
 
54
    question.
 
55
** TODO /etc/bash_completion.d/mandos
 
56
   From XML sources directly?
75
57
 
76
58
 
77
59
#+STARTUP: showall