/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 mandos-keygen

  • Committer: Teddy Hogeborn
  • Date: 2009-02-09 02:01:13 UTC
  • Revision ID: teddy@fukt.bsnet.se-20090209020113-726hq380zvp8zt97
Four new interrelated features:

1. Support using a different network interface via both initramfs.conf
   (the DEVICE setting) and the kernel command line (sixth field of
   the "ip=" option as in Linux' Documentation/nfsroot.txt).

2. Support connecting to a specified Mandos server directly using a
   kernel command line option ("mandos=connect:<ADDRESS>:<PORT>").

3. Support connecting directly to an IPv4 address (and port) using the
   "--connect" option of mandos-client.

4. Support an empty string to the --interface option to mandos-client.

* Makefile (WARN): Increase strictness by changing to
                   "-Wstrict-aliasing=1".

* debian/mandos-client.README.Debian (Use the Correct Network
  Interface): Changed to refer to initramfs.conf and nfsroot.txt.
  (Test the Server): Improve wording.
  (Non-local Connection): New section.
* initramfs-tools-script: Obey DEVICE environment variable and setting
                          from "/conf/initramfs.conf".  Also let any
                          "ip=" kernel command line option override
                          it.  Support new "mandos=connect" option.
                          Call "configure_networking" to set up IP
                          address on interface if necessary.
* plugin-runner.conf: Change example.
* plugins.d/mandos-client.c: Some whitespace and comment changes.
  (start_mandos_communication): Take an additional argument for
                                address family, all callers changed.
                                Connect to an IPv4 address if address
                                family is AF_INET.  Only set IPv6
                                scope_id for link-local addresses.
  (main): Accept empty interface name; this will not bring up any
         interface and leave the interface as unspecified.  Also do
         not restore kernel log level if lowering it failed.
* plugins.d/mandos-client.xml (OPTIONS): Document that the
                                         "--interface" option accepts
                                         an empty string.
  (EXAMPLE): Change example IPv6 address to a link-local address.

Show diffs side-by-side

added added

removed removed

Lines of Context:
2
2
3
3
# Mandos key generator - create a new OpenPGP key for a Mandos client
4
4
5
 
# Copyright © 2008 Teddy Hogeborn & Björn Påhlsson
 
5
# Copyright © 2008,2009 Teddy Hogeborn
 
6
# Copyright © 2008,2009 Björn Påhlsson
6
7
7
8
# This program is free software: you can redistribute it and/or modify
8
9
# it under the terms of the GNU General Public License as published by
20
21
# Contact the authors at <mandos@fukt.bsnet.se>.
21
22
22
23
 
23
 
VERSION="1.0"
 
24
VERSION="1.0.5"
24
25
 
25
26
KEYDIR="/etc/keys/mandos"
26
27
KEYTYPE=DSA
146
147
        echo "Invalid key length" >&2
147
148
        exit 1
148
149
    fi
149
 
 
 
150
    
150
151
    if [ -z "$KEYEXPIRE" ]; then
151
152
        echo "Empty key expiration" >&2
152
153
        exit 1
171
172
    if [ -n "$KEYEMAIL" ]; then
172
173
        KEYEMAILLINE="Name-Email: $KEYEMAIL"
173
174
    fi
174
 
 
 
175
    
175
176
    # Create temporary gpg batch file
176
177
    BATCHFILE="`mktemp -t mandos-keygen-batch.XXXXXXXXXX`"
177
178
fi
283
284
        stty echo
284
285
        if [ "$first" != "$second" ]; then
285
286
            echo -e "Passphrase mismatch" >&2
286
 
            false
 
287
            touch "$RINGDIR"/mismatch
287
288
        else
288
289
            echo -n "$first"
289
290
        fi
290
291
    fi | gpg --quiet --batch --no-tty --no-options --enable-dsa2 \
291
292
        --homedir "$RINGDIR" --trust-model always --armor --encrypt \
292
 
        --recipient "$FINGERPRINT" --comment "$FILECOMMENT" \
 
293
        --sign --recipient "$FINGERPRINT" --comment "$FILECOMMENT" \
293
294
        > "$SECFILE"
294
 
    status="${PIPESTATUS[0]}"
295
 
    if [ "$status" -ne 0 ]; then
296
 
        exit "$status"
 
295
    if [ -e "$RINGDIR"/mismatch ]; then
 
296
        rm --force "$RINGDIR"/mismatch
 
297
        exit 1
297
298
    fi
298
299
    
299
300
    cat <<-EOF