/mandos/release

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

« back to all changes in this revision

Viewing changes to dracut-module/cmdline-mandos.sh

* DBUS-API: Document new "Expires" and "ExtendedTimeout" properties.
* README: Refer to the installed manual page more simply.
* mandos (Client.extended_timeout, Client.expires): New attributes.
  (Client.extended_timeout_milliseconds): New.
  (Client.__init__, Client.enable, Client.disable): Set new attributes.
  (Client.checked_ok): Take new "timeout" argument.
  (ClientDBus.expires): Transform into a property which sends a D-Bus
                        signal when changed.
  (ClientDBus._datetime_to_dbus): Return empty D-Bus string on None.
                                  All callers changed to use this.

  (ClientDBus.ApprovedByDefault_dbus_property,
  ClientDBus.ApprovalDelay_dbus_property,
  ClientDBus.ApprovalDuration_dbus_property,
  ClientDBus.Host_dbus_property, ClientDBus.Timeout_dbus_property,
  ClientDBus.Interval_dbus_property,
  ClientDBus.Checker_dbus_property): Bug fix: Only send D-Bus signal
                                     if new value is different.
  (ClientDBus.Timeout_dbus_property): Use new "expires" attribute.
  (ClientDBus.Expires_dbus_property,
  ClientDBus.ExtendedTimeout_dbus_property): New D-Bus properties.
  (ClientHandler.handle): Bump time using extended_timeout value.
  (main.client_defaults): Change default values of "timeout" and
                          "interval", added new default value for
                          "extended_timeout".
* mandos-clients.conf.xml (OPTIONS): Changed default values of
                                     "interval" and "timeout".  Add
                                     new "extended_timeout" option.
  (EXAMPLE): Updated default values.
* mandos-ctl: Show new "ExtendedTimeout" D-Bus property and change it
              using new "--extended-timeout" option.
* mandos-ctl.xml (SYNOPSIS, OPTIONS): Document new
                                      "--extended-timeout" option.
* mandos-monitor (MandosClientWidget.update): Use new "Expires" D-Bus
                                              property.
* mandos.xml (DESCRIPTION): Add reference to intro(8mandos) manual
                            page.
  (CHECKING): Refer to the new "extended_timeout" option in
  clients.conf.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#!/bin/sh
2
 
#
3
 
# This file should be present in the root file system directory
4
 
# /usr/lib/dracut/modules.d/90mandos.  When dracut creates the
5
 
# initramfs image, dracut will run the "module-setup.sh" file in the
6
 
# same directory, which (when *not* using the "systemd" dracut module)
7
 
# will copy this file ("cmdline-mandos.sh") into the initramfs as
8
 
# "/lib/dracut/hooks/cmdline/20-cmdline-mandos.sh".
9
 
10
 
# Despite the above #!/bin/sh line and the executable flag, this file
11
 
# is not executed; this file is sourced by the /init script in the
12
 
# initramfs image created by dracut.
13
 
 
14
 
if getargbool 1 mandos && [ -e /lib/dracut-crypt-lib.sh ]; then
15
 
    cat >> /lib/dracut-crypt-lib.sh <<- "EOF"
16
 
        ask_for_password(){
17
 
            local cmd; local prompt; local tries=3
18
 
            local ply_cmd; local ply_prompt; local ply_tries=3
19
 
            local tty_cmd; local tty_prompt; local tty_tries=3
20
 
            local ret
21
 
        
22
 
            while [ $# -gt 0 ]; do
23
 
                case "$1" in
24
 
                    --cmd) ply_cmd="$2"; tty_cmd="$2"; shift;;
25
 
                    --ply-cmd) ply_cmd="$2"; shift;;
26
 
                    --tty-cmd) tty_cmd="$2"; shift;;
27
 
                    --prompt) ply_prompt="$2"; tty_prompt="$2"; shift;;
28
 
                    --ply-prompt) ply_prompt="$2"; shift;;
29
 
                    --tty-prompt) tty_prompt="$2"; shift;;
30
 
                    --tries) ply_tries="$2"; tty_tries="$2"; shift;;
31
 
                    --ply-tries) ply_tries="$2"; shift;;
32
 
                    --tty-tries) tty_tries="$2"; shift;;
33
 
                    --tty-echo-off) tty_echo_off=yes;;
34
 
                    -*) :;;
35
 
                esac
36
 
                shift
37
 
            done
38
 
            if [ -z "$ply_cmd" ]; then
39
 
                ply_cmd="$tty_cmd"
40
 
            fi
41
 
            # Extract device and luksname from $ply_cmd
42
 
            set -- $ply_cmd
43
 
            shift
44
 
            for arg in "$@"; do
45
 
                case "$arg" in
46
 
                    -*) :;;
47
 
                    *)
48
 
                        if [ -z "$device" ]; then
49
 
                            device="$arg"
50
 
                        else
51
 
                            luksname="$arg"
52
 
                            break
53
 
                        fi
54
 
                        ;;
55
 
                esac
56
 
            done
57
 
            { flock -s 9;
58
 
              if [ -z "$ply_prompt" ]; then
59
 
                  if [ -z "$tty_prompt" ]; then
60
 
                      CRYPTTAB_SOURCE="$device" cryptsource="$device" CRYPTTAB_NAME="$luksname" crypttarget="$luksname" /lib/mandos/plugin-runner --config-file=/etc/mandos/plugin-runner.conf | $ply_cmd
61
 
                  else
62
 
                      CRYPTTAB_SOURCE="$device" cryptsource="$device" CRYPTTAB_NAME="$luksname" crypttarget="$luksname" /lib/mandos/plugin-runner --options-for=password-prompt:--prompt="${tty_prompt}" --config-file=/etc/mandos/plugin-runner.conf | $ply_cmd
63
 
                  fi
64
 
              else
65
 
                  if [ -z "$tty_prompt" ]; then
66
 
                      CRYPTTAB_SOURCE="$device" cryptsource="$device" CRYPTTAB_NAME="$luksname" crypttarget="$luksname" /lib/mandos/plugin-runner --options-for=plymouth:--prompt="${ply_prompt}" --config-file=/etc/mandos/plugin-runner.conf | $ply_cmd
67
 
                  else
68
 
                      CRYPTTAB_SOURCE="$device" cryptsource="$device" CRYPTTAB_NAME="$luksname" crypttarget="$luksname" /lib/mandos/plugin-runner --options-for=password-prompt:--prompt="${tty_prompt}" --options-for=plymouth:--prompt="${ply_prompt}" --config-file=/etc/mandos/plugin-runner.conf | $ply_cmd
69
 
                  fi
70
 
              fi
71
 
            } 9>/.console_lock
72
 
        }
73
 
        EOF
74
 
fi