/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 debian/mandos-client.postinst

  • Committer: Teddy Hogeborn
  • Date: 2015-07-09 20:32:52 UTC
  • Revision ID: teddy@recompile.se-20150709203252-u10p7trfsxc1a9yp
Install client Diffie-Hellman parameters into initramfs.

* debian/control (Package: mandos-client/Recommends): Added
  "gnutls-bin | openssl" (to generate DH parameters).
* debian/mandos-client.postinst (create_dh_params): New function
                                                    called on package
                                                    configure.
* plugins.d/mandos-client.c (main): Bug fix: Work around Debian bug
                                    #633582 also for the
                                    "client-dhparams.pem" file.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#!/bin/sh -e
 
1
#!/bin/sh
2
2
# This script can be called in the following ways:
3
3
#
4
4
# After the package was installed:
15
15
# If prerm fails during replacement due to conflict:
16
16
#       <postinst> abort-remove in-favour <new-package> <version>
17
17
 
 
18
set -e
 
19
 
18
20
# Update the initial RAM file system image
19
21
update_initramfs()
20
22
{
61
63
    fi
62
64
}
63
65
 
 
66
create_dh_params(){
 
67
    if [ -r /etc/keys/mandos/client-dhparams.pem ]; then
 
68
        return 0
 
69
    fi
 
70
    # Create a Diffe-Hellman parameters file
 
71
    DHFILE="`mktemp -t mandos-client-dh-parameters.XXXXXXXXXX.pem`"
 
72
    # First try certtool from GnuTLS
 
73
    if ! certtool --generate-dh-params --sec-param high \
 
74
         --outfile "$DHFILE"; then
 
75
        # Otherwise try OpenSSL
 
76
        if ! openssl genpkey -genparam -algorithm DH -out "$DHFILE" \
 
77
             -pkeyopt dh_paramgen_prime_len:3072; then
 
78
            # None of the commands succeded; give up
 
79
            rm -- "$DHFILE"
 
80
            return 1
 
81
        fi
 
82
    fi
 
83
    sed --in-place --expression='0,/^-----BEGIN DH PARAMETERS-----$/d' \
 
84
        "$DHFILE"
 
85
    sed --in-place --expression='1i-----BEGIN DH PARAMETERS-----' \
 
86
            "$DHFILE"
 
87
    cp --archive "$DHFILE" /etc/keys/mandos/client-dhparams.pem
 
88
    rm -- "$DHFILE"
 
89
}
 
90
 
64
91
case "$1" in
65
92
    configure)
66
93
        add_mandos_user "$@"
67
94
        create_key "$@"
 
95
        create_dh_params "$@" || :
68
96
        update_initramfs "$@"
69
97
        ;;
70
98
    abort-upgrade|abort-deconfigure|abort-remove)