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

  • Committer: Teddy Hogeborn
  • Date: 2015-03-10 18:52:09 UTC
  • mto: (237.7.304 trunk)
  • mto: This revision was merged to the branch mainline in revision 325.
  • Revision ID: teddy@recompile.se-20150310185209-lxuovbu09zwyk9bx
Automatically determine the number of DH bits in the TLS handshake.

Instead of using a default value of 1024, check the OpenPGP key and
determine an appropriate number of DH bits to use, (using GnuTLS
functions made for this).  Document this new default behavior.

* plugins.d/mandos-client.c (safe_string): New function.
  (init_gnutls_global): If not specified, determine the number of DH
                        bits to use, based on the OpenPGP key.
* plugins.d/mandos-client.xml (OPTIONS): Document this new default of
                                         the --dh-bits option.

Thanks to Andreas Fischer <af@bantuX.org> for reporting this issue.

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-2016 Teddy Hogeborn
6
 
# Copyright © 2008-2016 Björn Påhlsson
 
5
# Copyright © 2008-2014 Teddy Hogeborn
 
6
# Copyright © 2008-2014 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@recompile.se>.
22
22
23
23
 
24
 
VERSION="1.7.13"
 
24
VERSION="1.6.9"
25
25
 
26
26
KEYDIR="/etc/keys/mandos"
27
27
KEYTYPE=RSA
218
218
        #Handle: <no-spaces>
219
219
        #%pubring pubring.gpg
220
220
        #%secring secring.gpg
221
 
        %no-protection
222
221
        %commit
223
222
        EOF
224
223
    
286
285
    esac
287
286
    
288
287
    if [ $SSH -eq 1 ]; then
289
 
        for ssh_keytype in ecdsa-sha2-nistp256 ed25519 rsa; do
290
 
            set +e
291
 
            ssh_fingerprint="`ssh-keyscan -t $ssh_keytype localhost 2>/dev/null`"
292
 
            set -e
293
 
            if [ $? -ne 0 ]; then
294
 
                ssh_fingerprint=""
295
 
                continue
296
 
            fi
297
 
            if [ -n "$ssh_fingerprint" ]; then
298
 
                ssh_fingerprint="${ssh_fingerprint#localhost }"
299
 
                break
300
 
            fi
301
 
        done
 
288
        set +e
 
289
        ssh_fingerprint="`ssh-keyscan localhost 2>/dev/null`"
 
290
        if [ $? -ne 0 ]; then
 
291
            ssh_fingerprint=""
 
292
        fi
 
293
        set -e
 
294
        ssh_fingerprint="${ssh_fingerprint#localhost }"
302
295
    fi
303
296
    
304
297
    # Import key into temporary key rings
325
318
            cat "$PASSFILE"
326
319
        else
327
320
            tty --quiet && stty -echo
328
 
            echo -n "Enter passphrase: " >/dev/tty
 
321
            echo -n "Enter passphrase: " >&2
329
322
            read first
330
323
            tty --quiet && echo >&2
331
 
            echo -n "Repeat passphrase: " >/dev/tty
 
324
            echo -n "Repeat passphrase: " >&2
332
325
            read second
333
326
            if tty --quiet; then
334
327
                echo >&2
370
363
            }
371
364
        }' < "$SECFILE"
372
365
    if [ -n "$ssh_fingerprint" ]; then
373
 
        echo 'checker = ssh-keyscan -t '"$ssh_keytype"' %%(host)s 2>/dev/null | grep --fixed-strings --line-regexp --quiet --regexp=%%(host)s" %(ssh_fingerprint)s"'
 
366
        echo 'checker = ssh-keyscan %%(host)s 2>/dev/null | grep --fixed-strings --line-regexp --quiet --regexp=%%(host)s" %(ssh_fingerprint)s"'
374
367
        echo "ssh_fingerprint = ${ssh_fingerprint}"
375
368
    fi
376
369
fi