/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-2010 Teddy Hogeborn
6
 
# Copyright © 2008-2010 Björn Påhlsson
 
5
# Copyright © 2008,2009 Teddy Hogeborn
 
6
# Copyright © 2008,2009 Björn Påhlsson
7
7
8
8
# This program is free software: you can redistribute it and/or modify
9
9
# it under the terms of the GNU General Public License as published by
21
21
# Contact the authors at <mandos@fukt.bsnet.se>.
22
22
23
23
 
24
 
VERSION="1.0.14"
 
24
VERSION="1.0.5"
25
25
 
26
26
KEYDIR="/etc/keys/mandos"
27
27
KEYTYPE=DSA
217
217
        %commit
218
218
        EOF
219
219
    
220
 
    if tty --quiet; then
221
 
        cat <<-EOF
222
 
        Note: Due to entropy requirements, key generation could take
223
 
        anything from a few minutes to SEVERAL HOURS.  Please be
224
 
        patient and/or supply the system with more entropy if needed.
225
 
        EOF
226
 
        echo -n "Started: "
227
 
        date
228
 
    fi
229
 
    
230
220
    # Generate a new key in the key rings
231
221
    gpg --quiet --batch --no-tty --no-options --enable-dsa2 \
232
222
        --homedir "$RINGDIR" --trust-model always \
233
223
        --gen-key "$BATCHFILE"
234
224
    rm --force "$BATCHFILE"
235
225
    
236
 
    if tty --quiet; then
237
 
        echo -n "Finished: "
238
 
        date
239
 
    fi
240
 
    
241
226
    # Backup any old key files
242
227
    if cp --backup=numbered --force "$SECKEYFILE" "$SECKEYFILE" \
243
228
        2>/dev/null; then
293
278
        stty -echo
294
279
        echo -n "Enter passphrase: " >&2
295
280
        first="$(head --lines=1 | tr --delete '\n')"
296
 
        echo >&2
297
 
        echo -n "Repeat passphrase: " >&2
 
281
        echo -n -e "\nRepeat passphrase: " >&2
298
282
        second="$(head --lines=1 | tr --delete '\n')"
299
283
        echo >&2
300
284
        stty echo
301
285
        if [ "$first" != "$second" ]; then
302
 
            echo "Passphrase mismatch" >&2
 
286
            echo -e "Passphrase mismatch" >&2
303
287
            touch "$RINGDIR"/mismatch
304
288
        else
305
289
            echo -n "$first"